mikrocontroller.net

Forum: FPGA, VHDL & Co. State Machine: undefinierter Zustand.


Autor: metallman (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: metallman (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und hier die testbench dafür...

Autor: metallman (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hier ist nochmal der Code..

in dem anderen habe ich was falsches auskommentiert...

Autor: Mathi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welches Signal ist undefiniert?
Ich habe noch NIE gesehen das man ne State-machine mit Variablen 
realisiert... Geht das überhaupt? Ich denke nicht.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht, trägt aber nicht unbedingt zur Übersichtlichkeit bei.

Autor: E. P. (metallman)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: E. P. (metallman)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: E. P. (metallman)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.