Hardware Reference
In-Depth Information
if pstr.Status/=ok then
write( "Lesefehler Zeile: " & str(TNr) & " Spalte: "
& str(pstr.err_pos) & " " & str(pstr.err_msg));
exit ;
end if ;
-- Takt weiterschalten
wait for tp/2; T <= '0' ; wait for tp/2; T <= '1' ;
-- Kontrolle der Vorhaltezeit
if y'last_event<ts then
write( "Schritt: " & str(TNr) & " x=" & str(vx) & " y'last_event="
& str(y'last_event));
end if ;
-- Soll-Ist-Vergleich
if not is_x(y_soll) and y/=y_soll then
write( "Schritt: " & str(TNr)& " x=" & str(vx) & " y=" & str(y)
& " Soll-Wert=" & str(y_soll));
end if ;
TNr := TNr+ 1 ;
end loop ;
wait ;
end procedure ;
x y ist
Testobjekt
T I
ProzedurSollIstTestProc(...)
Web-Projekt:P3.5/SollIstTestpack.vhdl
In der Prozedur werden die Eingabedatei geöffnet und Variablen für das Le-
sebandobjekt (vgl. Abschnitt 3.3.3), die einzulesenden Datenobjekte und die
Testschrittnummer angelegt. Zu Beginn wird ein ein Takt langer Initialisie-
rungsimpuls erzeugt. Dann werden in einer Schleife, bis das Dateiende erreicht
ist, immer eine Zeile aus der Datei gelesen, der Eingabewert und der Soll-Wert
abgeräumt, der Eingabewert an das Eingabesignal zugewiesen, der Takt wei-
tergeschaltet und der Ausgabewert des Testobjekts kontrolliert. Die Kontrolle
der Vorhaltezeit und der Soll-Ist-Vergleich sind aus der Prozedur »Verglei-
cher(...)« des Vorabschnitts übernommen. Der meiste Programmieraufwand
steckt wie üblich in der Erzeugung aussagekräftiger Fehlermeldungen.
Der nachfolgende Testrahmen, in dem der 7-Segment-Decoder mit der hier
skizzierten Testprozedur getestet wird, vereinbart das Taktsignal T, das Initia-
lisierungssignal I, das Eingabesignal
. Der Anwei-
sungsteil enthält lediglich die Instanz des Testobjekts und den nebenläufigen
Aufruf der Testprozedur:
x
und das Ausgabesignal
y
x y ist
-- Vereinbarungen im Testrahmen
signal T, I:std_logic;
signal x:std_logic_vector( 3 downto 0 );
signal y:std_logic_vector( 6 downto 0 );
-- nebenläufig Anweisungen im Testrahmen
Testobjekt: entity work.Seg7Dec(KV) port map (x, y);
Testprozedur: SollIstTestProc(T, I, x, y,
"SollIstTest.txt" , 10 ns , 1 ns );
Testobjekt
T I
ProzedurSollIstTestProc(...)
Web-Projekt:P3.5/SollIstTestpack.vhdl
 
Search WWH ::




Custom Search