Hardware Reference
In-Depth Information
Aus der Spezialaufgabe eines Taktes, die Abtastzeitpunkte festzulegen,
resultieren folgende Besonderheiten. Taktsignale werden im Gegensatz zu an-
deren Signalen ohne Zeittoleranzen und unbestimmte Zwischenzustände mo-
delliert. Die physikalisch bedingten zeitlichen Unsicherheiten der Taktflanken
stecken mit in den Zeitparametern der Register. Takte müssen Glitch-frei
sein und mit geringen Verzögerungsunterschieden an die Takteingänge der
einzelnen Register und Registerzellen geführt werden. Das erfordert spezielle
Taktversorgungsschaltungen, die in der Regel manuell zu entwerfen sind (siehe
später Abschnitt 4.3.6).
Das Abtasten ist eine Grundfunktion für alle sequenziellen Abläufe in ei-
ner digitalen Schaltung. Deshalb wird eine spezielle Notation eingeführt. Das
Signal, aus dem durch Abtastung ein Signal x gebildet wird, wird mit x + be-
zeichnet, das einmal abgetastete Signal von x mit x', das zweimal abgetastete
Signal mit x” etc. In VHDL werden wir für x + »x_next«, für x' »x_del«, für
x” »x_del2« etc. schreiben.
1.4.2 VHDL-Abtastprozesse
Das Verhaltensmodell für ein Register ist ein Abtastprozess. Ein Abtastpro-
zess ist ein Prozess, der nur von Taktänderungen geweckt wird, nur bei einer
aktiven Taktflanke Signalzuweisungen ausführt und der optional die Vor- und
Nachhaltebedingungen kontrolliert. Dafür werden zusätzliche, noch nicht ein-
geführte VHDL-Beschreibungsmittel benötigt:
• Signalattribute,
• Fallunterscheidungen im Kontrollfluss und
• Anweisungen zur Kontrolle zuzusichernder Bedingungen.
Attribute sind in VHDL Beschreibungsmittel, um zusätzliche Eigenschaften
von Objekten abzufragen. Mit Signalattributen kann z.B. abgefragt werden,
ob ein bestimmtes Signal den Prozess geweckt hat, ob ein anderes Signal zum
Weckzeitpunkt bereits hinreichend lange den aktuellen Wert führt und wann
ein Signal das letzte Mal seinen Wert geändert hat (Tabelle 1.1).
Mit den Attributen 'stable(...) und 'last_event können die Vor- und
Nachhaltebedingungen kontrolliert werden. Die Abfrage, ob ein Prozess von
der steigenden oder fallenden Flanke geweckt wurde, erfolgt vorzugsweise
mit den in dem standardisierten Package ieee.std_logic_1164 definierten
Funktionen:
function rising_edge( signal s:std_logic) return boolean is
begin
return s'event and s= '1' and last_value(s)= '0' ; 10
end function ;
10 vereinfachte Beschreibung ohne Berücksichtigung schwacher Signalwerte (schwa-
che Signalwerte siehe später Abschnitt 4.1.6)
Search WWH ::




Custom Search