Aufrufe
vor 5 Jahren

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik 2.8.3 Sequentielle Anweisungen Sequentielle Anweisungen („sequential statements“) können sein: - Nichtbedingte Signalzuweisungen in Prozessen, - Assertions in Prozessen, - WAIT-Anweisungen, - Variablenzuweisungen, - IF-Anweisung, - CASE-Anweisung, - LOOP-Anweisungen, - EXIT-Anweisungen, - NEXT-Anweisungen, - NULL-Anweisungen. • Nichtbedingte Signalzuweisungen in Prozessen: - In Prozessen dürfen keine bedingten Signalzuweisungen stehen, nur nichtbedingte Signalzuweisungen. Bedingte Signalzuweisungen können aber durch IF- oder durch CASE-Konstrukte nachgebildet werden. - Zu beachten ist, daß Signale immer erst am Prozessende oder bei der nächsten WAIT-Anweisung aktualisiert werden. Daher können nichtbedingte Signalzuweisungen, wenn sie nicht selbst Teil einer sequentiellen Anweisung sind, an beliebiger Stelle in Prozessen mit Sensitivitätsliste stehen. • Assertions in Prozessen: - Wenn Assertions in Prozessen stehen, dann sind sie sequentiell. - Assertions dienen in Testbenches häufig zur Ergebniskontrolle. • WAIT-Anweisungen: - WAIT-Anweisungen dürfen nur in Prozessen ohne „sensitivity list“ und in Prozeduren stehen, die von Prozessen ohne „sensitivity list“ aufgerufen werden. - Argumente einer WAIT-Anweisung können Signale, Bedingungen oder Zeiten sein. VHDL-GRUNDLAGEN 73

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik - Syntax: WAIT [ON signal_name_1 {, signal_name_n} ] [UNTIL condition] [FOR time_expression] ; - WAIT-Anweisungen können über die Schlüsselwörter ON, UNTIL und FOR gesteuert werden. - Beispiele: WAIT ON signal_1, signal_2; -- Prozess wartet bis sich eines der beiden Signale ändert WAIT UNTIL (signal_1 = ’1’) AND (signal_2 = ’1’); -- Prozess wartet bis die Bedingung erfüllt ist, d.h. bis beide Signale ’1’ sind WAIT FOR 122 ns; -- Prozess wartet bis die angegebene Zeit abgelaufen ist WAIT ON signal_1 UNTIL clk’EVENT AND clk = ’1’; -- Prozess wartet bis sich signal_1 ändert und die aktive Taktflanke auftritt WAIT; -- unendlich langes Warten (sinnvoll z.B. in Testbenches zum Beenden einer Simulation) • Auswirkungen der einzelnen Argumente einer WAIT-Anweisung: 1. Eine Liste von Signalen bewirkt, daß solange gewartet wird, bis sich mindestens eines der Signale ändert, d.h. bis ein Ereignis auftritt. Eine WAIT-Anweisung mit Signalen am Ende eines Prozesses entspricht einem Prozess mit einer „sensitivity list“, die die gleichen Signale beinhaltet wie die WAIT-Anweisung. 2. Ist ein Signal der Liste ein Vektor oder ein höherdimensionales Feld, so erfüllt bereits die Änderung eines einzigen Elementes die WAIT-Bedingung. 3. Eine Bedingung unterbricht die Abarbeitung solange, bis die Bedingung erfüllt ist. 4. Wird sowohl eine Bedingung, als auch ein Signal angegeben, muß die Bedingung erfüllt sein und der Signalwechsel auftreten. 5. Die Angabe eines Ausdrucks, der als Ergebnis eine Zeit liefert (time_expression), stoppt die Abarbeitung für die angegebene Zeit. VHDL-GRUNDLAGEN 74

Verification.pdf
VHDL Kompakt - CES
Schaltungsdesign mit VHDL
VHDL Einführung
VHDL Design Guidelines