Hardware Reference
In-Depth Information
als Bitvektor in »y.w« geschrieben, das Gültigkeitsbit »y.g« gesetzt und die
Funktion mit »y« als Rückgabewert beendet. Sonst wird der Initialwert von
»y« (alle Bits »0«) zurückgegeben. Da die Funktion auch in der Synthesebe-
schreibung verwendet werden soll, darf sie keine technisch nicht darstellbaren
Pseudo-Werte auswerten und zuweisen.
Zusätzlich zu der VHDL-Funktion für das Zielverhalten werden für den
neuen Typ »
« eine Konstante für den Pseudo-Wert »ungültig«, eine
Testfunktion auf Gültigkeit und eine Str-Funktion benötigt. Eine ungültige
Ausgabe bedeutet, dass im ungünstigsten Fall alle Ausgabebits ungültig sind:
tPEncOut
constant XX_PEncOut: tPEncOut :=(w=> "XXXX" , g=> 'X' );
Die Funktion zur Kontrolle auf Ungültigkeit, die bei der Abtastung für die
Kontrolle der Vor- und Nachhaltebedingungen gebraucht wird, soll nur den
Wert false (nicht ungültig) zurückgeben, wenn alle Bits gültig sind:
function is_x(x: tPEncOut) return boolean is
begin
return is_x(x.w) or is_x(x.g);
end function ;
)WEB-Projekt:P3.4/PEnc_pack.vhdl
Die Str-Funktion setzt den Ausgabetext aus konstanten Textbausteinen und
den Textdarstellungen der Werte der Elemente zusammen:
function str(x: tPEncOut) return string is
begin
return "(w=" & str(x.w) & ", g=" & str(x. g) & ")" ;
end function ;
)WEB-Projekt:P3.4/PEnc_pack.vhdl
Das Package muss nach seiner Entwicklung getestet werden. Das nachfol-
gende Beispiel beschreibt einen Dialogtest, bei dem in einer Endlosschleife
je ein Eingabewert angefordert wird. Die Ausgabeanweisung gibt zusätzlich
zum Eingabewert und zum Funktionswert der kombinatorischen Funktion den
Funktionswert der Testfunktion »is_x(...)« aus:
-- Vereinbarungen im Testprozess
variable x:std_logic_vector(9 downto 0);
variable y: tPEncOut;
-- Anweisungsfolge im Testprozess
loop
read( "Bitte 10-Bit-STD_LOGIC_VECTOR eingeben:" , x);
y := PrioEnc(x);
write( "x=" & str(x) & " is_x(x)=" & str(is_x(x)) & " y=" & str(y));
end loop ;
)WEB-Projekt:P3.4/Test_PEncFkt.vhdl
 
Search WWH ::




Custom Search