Hardware Reference
In-Depth Information
impure function rand(w: tWeight; px: tWeight:= 0.0 ) return
std_logic; 9
erzeugt, die aufgerufen mit den Parametern w = 0;3 und p x = 0;003 mit der
relativen Häufigkeit p x = 0; 003 den Wert »X«, mit der relativen Häufigkeit
W = 0;3 den Wert »1« und sonst »0« zurückgibt. Der Zustand des Pseudo-
Zufallsgenerators hat den Typ
type tRandState is array ( 0 to 1 ) of positive;
und wird in der globalen Variablen
shared variable shared_variable_RandStat: tRandState;
gespeichert, die zum Simulationsbeginn mit zwei positiven ganzen Zahlen in-
itialisiert wird.
In dem Testprozess werden in einer Endlosschleife immer zehn Testbei-
spiele ausgewürfelt, abgearbeitet und die Ergebnisse angezeigt. Nach der ma-
nuellen Kontrolle, dass die Ergebnisse richtig sind, ist die Eingabetaste zur
Fortsetzung zu betätigen:
-- Vereinbarungen im Testprozess
variable a, b: tDaten; variable opc: tOpcode;
variable Ergebnis: tErgebnis; variable F: tFlags;
constant px: tWeight:= 0.03 ;
-- Anweisungsfolge im Testprozess
shared_variable_RandStat:=( 1235 , 34567 );
loop
write(str(shared_variable_RandStat));
for idx in 1 to 10 loop
a := rand(a, px); b := rand(b, px);
opc := rand(opc, px); F.cy := rand( 0.3 , px);
Ergebnis := ALU(a, b, F, opc); -- eigentliche Testanweisung
write(rechts(str_Opcode(opc), 4 ) & ... (siehe Beispielausgaben)
end loop ;
read;
-- Warte auf Eingabetaste
end loop ;
) WEB-Projekt:P5.4/Test_ALU.vhdl
Zu Beginn eines jeden Zehnerblocks wird der Zustand des Pseudo-Zufalls-
generators angezeigt. Diese Ausgabe ist erforderlich, um Tests mit falschen
Ausgaben nach der Fehlerbeseitigung mit eben diesem Startwert zu wieder-
holen [29]. Die nur angedeutete Write-Anweisung für die Testergebnisse stellt
den Operationscode symbolisch und alle Zahlenwerte hexadezimal auf dem
Bildschirm in der folgenden Tabellenform dar:
9 Der Parameter w beschreibt die Wichtung. Das ist die relative Auftrittshäufigkeit
einer »1« (vgl. Abschnitt 3.5.1).
 
Search WWH ::




Custom Search