State Machine: undefinierter Zustand.

Gast #766011
Lesenswert?
• ▲
▼
moin!

ich bins wieder. :)

Habe so ne schöne state-machine in vhdl geschrieben, die die Daten aus 
einem FIFO ausliest und die an Uart weiterschickt... Das Problem ist 
jetzt nur, das das Signal zum Auslesen in der Simulation irgendwie 
'undefined' bleibt..

Ich sehe meinen Fehler nicht. Kann mir jemand vielleicht helfen?
Angehängte Dateien:
#766202
Lesenswert?
• ▲
▼
ich hab den Fehler gefunden und jetzt geht!
und zwar habe ich in der Testbench ein OUT-Signal gleich 1 gesetzt. Und 
genau dieses war undefiniert.

P.S.: ich finde die state machines mit variablen viel einfacher... 
obwohl, muss ich zugeben, habe noch in keinem Buch sowas gesehen.
#766214
Lesenswert?
• ▲
▼
@ E. P. (metallman)

>P.S.: ich finde die state machines mit variablen viel einfacher...

Was ist daran bitte einfacher ? Der Unterschied im Aufwand ist Null, 
denn ob ich schreibe signal xyz oder variable xyz ist eagl. Im Synthese- 
und Simulationsegebins kann man sich mit Variablen aber fix ins Knie 
schiessen. Aber das ist wohl unausrottbar, wie UARTs mit RC-oszillator . 
. . :-(

MFG
Falk
#766257
Lesenswert?
• ▲
▼
@  Falk Brunner (falk)

Naja.. ich bin ein VHDL-Anfänger, und kenne noch nicht alle Probleme und 
Tricks zum lösen... für mich war bisher die Verwendung von Variablen  in 
meinen State Machines auf jedem Fall übersichtlicher. Wahrscheinlich 
kommt es auch drauf an, was man damit implementiert...
Gast #766381
Lesenswert?
• ▲
▼
Um es mal kraß zu sagen: Variablen sind nur zur Simulation. Sie bilden 
ein Programmiermodell nach welches im FPGA nicht umgesetzt werden kann.

Für Experten kann man das dann abschwächen. Dazu muss man sich aber gut 
auskennen was der Synthesizer aus Variablen macht. Wenn man das nicht 
weiß, dann gehts ganz schnell schief und du sitzt ewig dran einen Fehler 
zu suchen der sich über deinem (Anfänger-)Wissen bewegt (ist nicht bös 
gemeint, ich will dir nur klar machen worauf du dich einläßt).
Gast #766536
Lesenswert?
• ▲
▼
Normalerweise muss man sich nur paar Grundregeln in bezug auf Variablen 
merken, damit sie ihren "Schrecken" verlieren. Ich benutze sie trotzdem 
äusserst selten, hab hier ein Projekt mit bestimmt mehreren 10tausend 
Codezeilen und glaube nur 2 mal Variablen benutzt. Und da auch nur, um 
einen etwas komplexeren mathematischen Ausdruck in einem Takt berechnen 
zu können.
#767023
Lesenswert?
• ▲
▼
alles klar...

ich habe nun alle Variablen durch signale ersetzt. Die Folge war, dass 
ich keine Warrnungen mehr bei der Synthese bekamm! Dass ist 
wahrscheinlich seehr gut...
 Die Simulation funktioniert genauso einwandsfrei, wie vorher.   (also 
wohl kaum unterschied zwischen variablen und signalen).

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.