Hallo,
schreibe gerade an einem Simulationsmodell in VHDL (muss also nicht
synthetisierbar sein) und hänge an folgendem Problem:
Zu einem bestimmten Zeitpunkt wird ein Signal (im Code unten WIP) aus
einem Prozess heraus auf eins gesetzt. Ich will jetzt, dass dieses
Signal nach einer bestimmten Zeitspanne wieder auf 0 gesetzt wird und
zwar unabhängig von anderen Signalen und ohne den restlichen Betrieb des
Modells zu blockieren.
Versucht habe ich das so mit einem weiteren Prozess:
1 | PROCESS
|
2 | BEGIN
|
3 | IF WIP = '1' THEN
|
4 | wait for tPP;
|
5 | WIP <= '0';
|
6 | END IF;
|
7 | WAIT ON WIP;
|
8 | END PROCESS;
|
Allerdings funktioniert das nicht, anstatt dass das Signal überhaupt auf
1 geht, wird es zu X. Wenn ich den Process rausnehme, geht das Signal
korrekt auf 1, also scheinbar sorgt der Prozess dafür, dass irgendwie
gleichzeitig 0 und 1 getrieben wird (Ansonsten wird das Signal nur von
dem einem anderen Prozess getrieben, der zuvor aber nur einmal aktiviert
wird).
Jemand ne Idee wo der Fehler liegt, bzw was ich anders machen muss?