Hardware Reference
In-Depth Information
HalloWelt.vhdl:7:5:@0ms:(report note): Hallo Welt
aus und beendet sich.
Außer Entwurfseinheiten gibt es in VHDL eine zweite Art von Beschrei-
bungen. Das sind die Packages. Ein Package besteht aus einem Kopf mit
Vereinbarungen von Datentypen, Konstanten, Unterprogrammen etc. und ei-
nem Körper mit den Beschreibungen der Unterprogramme. Im Package in
Abb. 1.11 sind im Kopf eine Textkonstante und eine Funktion vereinbart. Die
Funktion bildet aus einem Eingabetext einen Ausgabetext. Aus der Beschrei-
bung im Package-Körper ist abzulesen, dass der übergebene Text einfach nur
unverändert zurückgegeben wird.
1: package HalloWelt_pack is
2: constant c:string:= "Hallo Zeichenkette" ;
3: function SchreibeText(s:string) return string;
4: end package;
5: package body HalloWelt_pack is
6: function SchreibeText(s:string) return string is
7: begin
8: return s;
9: end function;
10: end package body;
)WEB-Projekt:P1.1/HalloWelt_pack.vhdl
Abb. 1.11. Package für das Projekt »Hallo Welt«; Zeile 1-4: Kopf; Zeile 5-10:
Körper; Zeile 2: Konstantenvereinbarung; Zeile 3: Funktionsvereinbarung; Zeile 6-9:
Funktionsbeschreibung
Zur Nutzung des Packages muss es zuerst analysiert und in eine Bibliothek
- standardmäßig die Arbeitsbibliothek work - abgelegt werden. Von dort
aus können die Vereinbarungen - im Beispiel die der Konstanten »c« und der
Funktion »SchreibeText(...)« - von jeder Entwurfseinheit und jedem anderen
Package importiert werden.
Abbildung 1.12 zeigt ein erweitertes Hallo-Welt-Programm, das die beiden
Package-Vereinbarungen nutzt. Der Bibliotheksbezeichner work für die Ar-
beitsbibliothek ist vordefiniert. Der Vorspann beginnt deshalb gleich mit der
Use-Anweisung (Zeile 1). Die Schnittstellenbeschreibung (Zeile 2 und 3) ist
wieder leer. Die beiden ersten Warteanweisungen (Zeile 9 und 11) haben eine
Wartezeit als Weckbedingung und legen den Prozess für 1 ms Simulationszeit
6
schlafen. Nach dem Aufwachen gibt der Prozess jeweils die nächste Meldung
aus. Die erste Meldung (Zeile 8) erscheint zur Simulationszeit »@0ms«. Die
zweite Meldung mit der Textkonstante »c« (Zeile 10) wird zur Simulationszeit
»@1ms« und die dritte Meldung mit dem Rückgabewert der Funktion (Zeile
6 Die Simulationszeit ist eine Rechengröße im Simulator, die im Beispiel von den
beiden ersten Warteanweisungen jeweils um die Wartezeit weitergestellt wird.
 
Search WWH ::




Custom Search