Hardware Reference
In-Depth Information
3.4 Beschreibungsschablonen für digitale Schaltungen
Eine Schaltungsbeschreibung sollte leicht verständlich, kompakt und selbst er-
klärend sein. Das spart Programmier- und Testaufwand und mindert die An-
zahl der Fehler, die bei der Modellentwicklung entstehen und die beim Testen
möglicherweise übersehen werden. Ein Mittel, dieses Ziel zu erreichen, sind
Beschreibungsschablonen. Dies sind mit Beispielinhalten dekorierte Empfeh-
lungen für die Beschreibungsstruktur und Regeln, um die empfohlenen Struk-
turen mit abgewandelten Inhalten zu füllen. Der bisher verwendete Testrah-
men, die Beschreibung von Abtastprozessen, die Strukturempfehlungen für
die Str- und Get-Funktionen etc. waren alles solche Beschreibungsschablonen.
In diesem Abschnitt werden Empfehlungen für die Strukturierung komple-
xer Entwurfsbeschreibungen mit Hilfe von Unterprogrammen, Schleifen und
Packages herausgearbeitet.
3.4.1 Auslagerung kombinatorischer Funktionen in Packages
Das Verhaltensmodell einer kombinatorischen Schaltung ist bildlich gesehen
ein schwarzer Kasten mit Ein- und Ausgabesignalen, der bei jeder Änderung
eines Eingabesignals alle Ausgabewerte neu berechnet und verzögert an die
Ausgabesignale zuweist (vgl. Abschnitt 1.2.4). Im Synthesemodell entfallen
die Angaben für die Verzögerungszeit sowie die Zuweisungen und Auswertun-
gen von Pseudo-Werten (vgl. Abschnitt 2.1.2). In einem Entwurfsprojekt ist es
zweckmäßig, den übereinstimmenden Teil im Simulations- und im Synthese-
modell - die kombinatorische Funktion ohne Zeitverhalten und ohne Pseudo-
Werte - in ein Package auszulagern. Das perfekte Beschreibungsmittel hierfür
ist eine VHDL-Funktion. Mit ihr ist es zum einen nicht möglich, versehent-
lich ein Speicherverhalten zu beschreiben (vgl. Abschnitt 2.1.6). Zum anderen
lassen sich VHDL-Funktionen sehr gut separat testen.
Eine VHDL-Funktion kann beliebig viele Eingabeparameter haben, aber
sie hat nur einen Rückgabewert. Vor der Funktionsdefinition muss deshalb oft
ein Datentyp für den Rückgabewert - ein Verbund oder ein Feld - verein-
bart werden, der alle Ausgabesignale der Schaltung zusammenfasst. Für die
hierfür zu vereinbarenden Datentypen benötigt das Simulationsmodell wieder-
um Hilfsfunktionen und weitere Vereinbarungen (Str-Funktion, Get-Funktion,
Test auf ungültig, ein Pseudo-Wert für ungültig etc.). Dafür ist ein Package zu
programmieren. Für das Package muss ein Testrahmen geschrieben werden,
der die enthaltenen Vereinbarungen und Unterprogramme vor ihrer weiteren
Verwendung gründlich testet. Die eigentliche Beschreibung der kombinatori-
schen Schaltung ist, unabhängig von ihrer Größe und Komplexität, sowohl im
Simulations- als auch im Synthesemodell ein Einzeiler (Abb. 3.17).
Beispiel Prioritäts-Encoder
Ein Beispiel für die Auslagerung der Beschreibung einer kombinatorischen
Funktion in ein Package sei ein Prioritäts-Encoder. Der Beispiel-Prioritäts-
Search WWH ::




Custom Search