Hardware Reference
In-Depth Information
zu übertragenden Daten bereitgestellt und auf die Deaktivierung des Busy-
Signals gewartet. Anschließend terminiert der Prozess mit einer Warteanwei-
sung ohne Weckbedingung:
Eingabe: process
begin
Start <= '0' after 2 ns , '1' after 20 ns , '0' after 30 ns ;
x <= XX after 15 ns , x"3f" after 18 ns ;
wait until falling_edge(busy);
Start <= '1' after 28 ns , '0' after 73 ns ;
x <= XX after 7 ns , x"79" after 9 ns ;
wait until falling_edge(busy);
wait ;
end process ;
)WEB-Projekt:P3.4/Test_UART1.vhdl
Als Debug-Hilfe soll der Testrahmen zusätzlich einen Ausgabeprozess erhal-
ten, der alle Signaländerungen in Tabellenform protokolliert:
Ausgabe: postponed process (Start,x,busy,TxD,RxD,y,ready,Err)
variable TabKopf:boolean:=true;
begin
-- Ausgabe Tabellenkopf
if TabKopf then
write( " Zeit
|Start|
... |Err" ); TabKopf :=false;
end if ;
-- Ausgabe einer Tabellenzeile
write(rechts(str(now), 9 ) & "| " & str( Start) & " |" & ... );
end process ;
) WEB-Projekt:P3.4/Test_UART1.vhdl
Zum Simulationsbeginn gibt der Prozess zusätzlich einen Tabellenkopf mit den
Signalbezeichnungen aus. Der Funktionsaufruf »rechts(
9)« bettet die
Zeichenkette der Zeitangabe rechtsbündig in eine Zeichenkette der Länge neun
mit führenden Leerzeichen ein:
str(now),
Zeit |Start| x |Busy|TxD|RxD| y |Ready|Err
0 fs| U |UUUUUUUU| U | U | U |UUUUUUUU| U | U (1)
0 fs| U |UUUUUUUU| 0 | 1 | U |UUUUUUUU| 0 | 0 (2)
2.00 ns| 0 |UUUUUUUU| 0 | 1 | U |UUUUUUUU| 0 | 0
5.00 ns| 0 |UUUUUUUU| 0 | 1 | 1 |UUUUUUUU| 0 | 0
15.00 ns| 0 |XXXXXXXX| 0 | 1 | 1 |UUUUUUUU| 0 | 0
18.00 ns| 0 |00111111| 0 | 1 | 1 |UUUUUUUU| 0 | 0
...
237.05 ns| 0 |01111001| 0 | 1 | 1 |01111001| 1 | 0
( (1) - Ausgabe des zur Initialisierung geweckten Prozesses; (2) - Ausgabe nach
allen Signaländerungen für den Simulationszeitpunkt null). Der Ausgabepro-
zess ist ein sog. Postponed-Prozess
Ein Postponed-Prozess wird für jeden
Simulationszeitpunkt erst geweckt, wenn alle Nicht-Postponed-Prozesse und
.
 
Search WWH ::




Custom Search