Befehl für keine Signalzuweisung

Gast #2986865
Lesenswert?

Hey,

wisst ihr ob es in VHDL einen Befehl gibt, ein Signal nicht zu verändern 
?
Also ich habe eine Case - Schleife und weise einem Signal nur in einem 
Fall einen Wert zu. In den anderen Cases wird diese Variable nicht 
verändert.

case state is

when a =>
variable_a <= "0001";
when b =>
variable_a <= variable_a;
when others =>
variable_a <= variable_a;

end case;

Also ich suche nach etwas wie :

variable_a <= null;

Also was vom Hintergrund her so aussehen sollte.
Habt ihr ne Ahnung oder muss ich dem Signal immer dasselbe Signal 
zuweisen, was ja eigentlich nicht gut ist.

Grüße,

Helmut
Moderator (Firma: Titel) Persönliche Seite #2987001
Lesenswert?

Helmut schrieb:
> variable_a <= null;
Soso, Variable also. Da wären wir mal wieder bei dem C-Programmierer, 
der VHDL machen will/soll/muss/darf...
Siehe zum Thema den Beitrag "Variable vs Signal"

Seis drum. Wenn dir das nicht gefällt:
variable_a <= variable_a;
Dann lass die Zuweisung einfach komplett weg. Wenn keiner an einem 
Signal was ändert, bleibt der alte Wert erhalten. Und du hast 
höchstwahrscheinlich ein Latch an der Backe, weil/wenn du das in einem 
kombinatorischen Prozess machst...
Moderator (Firma: Titel) Persönliche Seite #2987018
Lesenswert?

hiall schrieb:
> Und wie macht man das in einem kombinatorischen Prozess ohne latch
> Erzeugung?
Gar nicht.
Wenn in einem kombinatorischen Prozess etwas gespeichert werden 
soll, dann geht das nur mit einem Latch. Und das ist in diesem Fall hier 
extrem gefährlich, wei die FSM beim Umschalten von state Glitches 
erzeugen wird und deshalb irgendwelche kurzen Spikes auf den 
Latch-Enable Eingang des Latches kommen werden, und dann natürlich genau 
der Müll gespeichert werden wird, der zu dem Zeitpunkt gerade zufällig 
anliegt.

Sinnvollerweise speichert man aber in einem getakteten Prozess, dann 
bekommst du nämlich ein hübsches und gewünschtes Flipflop.


BTW: wo ein Latch ist, ist auch die legendäre kombinatorische Schleife 
nicht weit. Zur Vertiefung:
http://www.lothar-miller.de/s9y/archives/42-Kombinatorische-Schleifen.html

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren