Hardware Reference
In-Depth Information
Tabelle 1.1. Signalattribute
Attribut Ergebnistyp Ergebnis
s 'event boolean true, wenn der Prozess durch eine Änderung
von s geweckt wurde
s'stable(t) boolean true, wenn seit einer Zeit t keine
Signaländerung stattgefunden hat
s 'last_event delay_length Zeit seit der letzten Änderung von s
s 'last_value tTyp
Wert vor der letzten Änderung von s
s 'delayed( t )
tTyp
das um t verzögerte Signal zu s
::: :::
(s - Signal mit dem Datentyp tTyp; t - Variable oder Konstante vom Typ de-
lay_length)
function falling_edge( signal s:std_logic) return boolean is
begin
return s'event and s= '0' and last_value(s)= '1' ;
end function ;
Bei einer steigenden Flanke ist der Wert des Signals s, das den Prozess geweckt
hat, vor der Änderung »0« und nach der Änderung »1«. Bei einer fallenden
Flanke sind die beiden Werte vertauscht. Ein Prozess, der nur den Takt in
der Weckliste hat, wird bei der Simulation immer genau einmal geweckt, ohne
dass eine Taktflanke aufgetreten ist, und zwar zum Simulationsbeginn. Da-
mit beim Simulationsbeginn keine Datenübernahme simuliert wird, sind die
Flankenbedingungen zusätzlich mit »T'event« UND-verknüpft.
Binäre Fallunterscheidungen im Kontrollfluss werden mit der If-Anweisung
beschrieben:
if b then
Anweisung {Anweisung}
end if ;
Die Bedingung
ist dabei ein Ausdruck oder eine Funktion vom Typ boo-
lean, z.B. der Rückgabewert der Funktion rising_edge(...) für »steigende
Flanke«. Die Kontrolle zugesicherter Bedingungen erfolgt vorzugsweise mit
der Assert-Anweisung
b
[assert b] report m [severity sl] ;
(b - zugesicherte Bedingung; m - Text für die Fehlermeldung; sl - Fehler-
schwere). Die Fehlerschwere klassifiziert die Bildschirmausgabe nach ihrer Be-
deutung für die Simulation und hat den im Package std.standard vordefi-
nierten Typ
type severity_level is (
note,
-- Kontrollausgabe
 
Search WWH ::




Custom Search