Hallo zusammen,
in einer Testbench möchte ich meine Signale mit einem zeitlichen Versatz
weiterleiten. Dieser zeitliche Versatz ist nicht konstant, sondern mit
einem Jitter versehen.
'delayed kann ich desewegen ja nicht verwenden.
Also habe ich mich für die Verzögerung der Signale mit after
entschieden:
1 | process
|
2 | begin
|
3 | wait until myInputSignal'event;
|
4 | -- assign delayed signal
|
5 | myOutputSignal<= myInputSignal after myJitteredDelay;
|
6 |
|
7 | -- calculate jitter for next phase
|
8 | if myInputSignal = 0 then
|
9 | uniform(Seed1, Seed2, Random);
|
10 | myJitterDelay <= myDelay + Random*myJitter;
|
11 | end if;
|
12 | end process;
|
Hierbei habe ich leider das Problem, dass mir Events beim weiterleiten
verloren gehen, wenn diese kürzer als myJitterDelay sind, da diese ja
von der nächsten
1 | myOutputSignal<= myInputSignal after myJitteredDelay;
|
Anweisung überschrieben werden.
Habt Ihr eine andere Idee, wie ich das Problem lösen kann?
Vielen Dank,
Parcher