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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.