Sebastian schrieb:
> Eigentlich ging ich davon aus, dass die letzte gültige Zuweisung eines
> Signals gewinnt.
Ja, das ist so.
> Hat jemand eine Idee? Ist bestimmt was ganz simples... :(
Was da steht, ist: das Signal ist immer '0', ausser während einer
Taktflanke. Wie lange dauert ein Takt bzw. eine Taktflanke? Richtig:
in der Theorie genau 0ps. Wie lange ist also dein Signal '1'? Richtig:
genau 0ps!
Probiers mal wie der Rest der Welt:
1 | -- reset
|
2 | if pSysRstN = '0' then
|
3 | NextSampleAddrReq <= '0';
|
4 | ...
|
5 |
|
6 | -- execute statemachine
|
7 | elsif rising_edge(MemUiCLK) then
|
8 | -- default assignment
|
9 | + NextSampleAddrReq <= '0';
|
10 |
|
11 | case (MemFsmState) is
|
12 | when fsmIdle =>
|
13 | ...
|
14 | when fsmWrite =>
|
15 | * NextSampleAddrReq <= '1';
|
Sebastian schrieb:
> Ach, was ganz Dummes wars: ich hatte den MemFsmState mit in der
> Sensitivylist.
Das Proble ist, dass du dir zwar die Simulation hintricksen kannst, der
Synthese so etwas aber trozdem "einbaut". Also wird er in deinem obigen
Fall eher sagen, dass der ganze Prozess unnötig ist, weil das Signal
sowieso immer '0' sei.