Guten Tag Zusammen, es steht viel darüber geschrieben, aber um ehrlich zu sein verstehe ich es nicht so ganz. Darum bitte ich an Hand meines Bsp. um Untersützung. Syntax sieht wie folgt aus: P1: process variable PAR: boolean; begin wait until (CLK='1' and CLK'event); if STARTBIT then PAR:= false; while not STOPBIT loop D_OUT <= D_IN; if D_IN = '1' then par:=not PAR; end if; wait until (CLK='1' and CLK'event); end loop; end if; if PAR then D_OUT <= '1'; else D_OUT <= '0'; end if; end process P1; Erhalte folgende Fehlermeldung: Error (10398): VHDL Process Statement error at PARITSER.vhd(22): Process Statement must contain only one Wait Statement (bezieht sich auf die zweite wait-Anweisung) Habe die Syntax aus einem Lehrbuch, daher macht es mich etwas stutzig und hoffe auf die Hilfe von Experten ;-) Vielen Dank, Bastian
Hmmm.. ich glaube du kannst nur eine "wait until..." in einem Prozess rein nehmen. Nimm mal probehalber eine andere Abfrage rein in der Mitte. Gruss
:
Bearbeitet durch User
Bastian Czichon schrieb: > Habe die Syntax aus einem Lehrbuch, daher macht es mich etwas stutzig Die Syntax stimmt schon, aber es gibt synthetisierbares VHDL und nicht synthetisierbar. Synthetisierbar heißt, dass man die VHDL Beschreibung in Hardware umsetzen kann. Das wäre bei Dir eventuell auch noch möglich, aber der Compiler ist "dumm" und erkennt/erlaubt nur bestimmte Konstrukte. Zwar werden die Compiler immer besser, aber es gibt Standards, wie man synthetisierbares VHDL schreiben sollte, und dabei ist nur ein wait Statement erlaubt. Du solltest das Handbuch deines Compilers lesen, und/oder Dir andere Beispiele mit nur einem Wait pro Prozess suchen.
Klaus Falser schrieb: > Bastian Czichon schrieb: >> Habe die Syntax aus einem Lehrbuch, daher macht es mich etwas stutzig > > Die Syntax stimmt schon, aber es gibt synthetisierbares VHDL und nicht > synthetisierbar. Sehe das auch so wie Klaus. Dein Beispiel Code würde in einem VHDL Simulator wunderbar funktionieren. Klaus Falser schrieb: > Synthetisierbar heißt, dass man die VHDL Beschreibung in Hardware > umsetzen kann. > Das wäre bei Dir eventuell auch noch möglich, @Klaus: Ich bin beim Lesen als erstes über die "while not STOPBIT loop" Schlaufe gestolpert. Denkst du die könnte der Synthesizer umsetzen? Ich hätte gesagt nein, aber ich lerne gerne dazu.
Das Code-Schnipsel sieht für aus, als wenn er Teil einer Testbench ist. Dem Simulator kannst du deutlich mehr servieren als dem "compiler". Mehrere "wait until" und/oder "wait for" in einem Process sind bei einer Testbench keine Seltenheit.
Bastian Czichon schrieb: > Habe die Syntax aus einem Lehrbuch Das dürfte das Beispiel aus Reichardt&Schwarz sein, von den behauptet wird, das wäre gerade noch synthetisierbar. Die Wahrheit ist: es ist nicht synthetisierbar. Zum Thema "mehrere wait im Prozess" siehe dort: http://www.lothar-miller.de/s9y/archives/47-wait-im-Prozess.html
:
Bearbeitet durch Moderator
Ich würde die beiden Prozesse trennen und den einen durch den zweiten steuern. Dann gibt es in jedem Prozess einmal einen wait for clock.
Super, vielen Dank. Alle Antworten haben mich ein Stück weitergebracht. Bei meinem nächsten Anliegen wende ich mich erneut an diese Community. Mit freundlichen Gruß, Bastian Czichon
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.