Hardware Reference
In-Depth Information
T, einen Initialisierungseingang I, ein Bestätigungssignal für Leseoperationen
RD und ein Bestätigungssignal für Schreiboperationen WR. Das Signal für
die Lesebestätigung wird während der Lesetakte aktiviert und signalisiert der
Datenquelle, dass sie ab dem nächsten Takt den Folgewert ausgeben soll. Das
Schreibbestätigungssignal WR wird in den Ausgabetakten aktiviert und si-
gnalisiert dem Testausgabeprozess, dass im Akkumulatorregister ein gültiger
Ausgabewert steht, der an die Ausgabezeile anzuhängen ist. Der Testeingabe-
prozess soll durch eine nebenläufige Prozedur beschrieben werden:
procedure Testdatenquelle(Dateiname:string; signal RD:std_logic;
signal T, I: out std_logic; signal x: out tDaten;
tp:delay_length:= 10 ns ) is
variable pstr: tPString; variable ZNr:natural;
variable r:real;
file f:textio.text open read_mode is Dateiname;
begin
I <= '1' ; T <= '0' ; wait for tp; I <= '0' after tp/ 10 ;
loop
T <= '1' , '0' after tp/ 2 ;
if RD= '1' then
if textio.endfile(f) then wait ; end if ;
read(f, pstr); get(pstr, r, -1000.0 , 1000.0 );
if pstr.Status/=ok then
write( "Zeile " & str(znr) & ":" & str(pstr.err_msg)); wait ;
else x <= to_tSigned(integer(r*( 2.0 ** 5 )), x'length) after tp/ 3 ;
ZNr := ZNr+ 1 ;
end if ;
end if ;
wait for tp;
end loop ;
end procedure ;
RD
x
Test-
daten-
I
T
quelle
) WEB-Projekt:P5.2/FIR2_pack.vhdl
Die Eingabedatei enthält die Filtereingabedaten. Das Initialisierungssignal I,
das Taktsignal T und der Eingabevektor x werden innerhalb der Prozedur
generiert. Nebenläufig aufgerufen generiert die Prozedur zu Beginn einen Ini-
tialisierungsimpuls und erzeugt danach mit der Taktperiode T P Taktimpulse.
Nach der ersten aktiven Taktflanke wird der erste gültige Eingabewert an das
Signal
zugewiesen. Danach wird nach jeder aktiven Taktflanke, bei der das
Lesebestätigungssignal aktiv ist - d.h. bei den nachfolgenden drei und dann in
jedem vierten simulierten Takt -, der nächste Eingabewert aus der Datei gele-
sen und verzögert an
x
zugewiesen (Abb. 5.9 b). Wenn das Dateiende erreicht
ist, terminiert die Prozedur mit einer Warteanweisung ohne Weckbedingung.
Durch das Ausbleiben der Eingabeänderungen terminieren auch die anderen
Prozesse des Testrahmens und die Simulation stoppt.
Der Testausgabeprozess soll etwa dieselben Ausgaben wie in Abb. 5.8 er-
zeugen. Dazu müssen der Prozedur, die nebenläufig aufgerufen den Protokoll-
prozess nachbildet, das Taktsignal, das Schreib- und das Lesebestätigungssi-
x
 
Search WWH ::




Custom Search