VHDL-Kurs

[ASICs]  [Chip Typen]  [Chip Aufbau]  [Entwicklung ]  [Schnittstellen]  [Glossar]
 
     [Modellierung]  [Strategie]  [Synthese]  [ASIC Test]  [VHDL-Kurs] [Beispiel]
 
        
[VHDL-Typen]  [VHDL-Libraries]  [VHDL-Hierarchie]  [VHDL-Struktur]

VHDL-Kurs, Bibliotheken (Libraries)

In der Behandlung von VHDL Bibliotheken sind insgesamt drei Namensebenen definiert: Der Bibliotheksname (lib_name), der Name des Packages (package_name), das in die Bibliothek kompiliert worden ist, und das spezifizierte Element innerhalb des Packages, z.B. ein Datentyp, eine Konstante oder eine Prozedur (item_name).

library lib_name;
 
oder
library lib_name1, lib_name2, ...;

Am Anfang eines VHDL-Codes müssen alle im folgenden Modell benutzten Bibliotheken bekannt gegeben werden. Aufzählungen mehrerer Bibliotheken sind möglich.
 

use lib_name.package_name.item_name;
  
oder
use lib_name.package_name.all;

Mit dem Schlüsselwort use wird der Zugriff auf ein Bibliothekselement eingeleitet. Mit der Vereinfachung
all wird auf das gesamte Package package_name referenziert und alle Elemente dieses Packages können benutzt werden.
 


Neben den Packages, in denen sich globale und für mehrere VHDL-Sources gültige Deklarationen befinden, werden auch die später aufgeführten entity-, architecture- und configuration-Teile in eine library hinein kompiliert. Die library ist so gesehen eine Zwischenstation für Designs, aus denen die kompilierten VHDL-Modelle für eine Simulation entnommen werden.

Vordefinierte Packages
Neben den selbst zusammengestellten Packages und Libraries (s.u.) gibt es bereits eine große Anzahl vordefinierter standardisierter Libraries und Packages. Hier nur einige wichtige:

std.STANDARD

Diese Bibliothek ist immer automatisch mit eingebunden und enthält eine Reihe der Grundspezifikationen wie z.B. bit, bit_vector und integer.
 

std.TEXTIO

Diese Bibliothek enthält verschiedene Textoperationen zur Texteingabe (über verschiedene Files und Tastatur) und Textausgabe (in verschiedene Files oder auf den Monitor). Sie wird überwiegend für Testbenches benutzt und stellt das Grundgerüst zur Kommunikation einer VHDL Simulation zum Anwender hin dar.
 

IEEE.std_logic_1164

Häufig verwendete Library. In dieser wird der bit-Typ auf die std_logic bzw. std_ulogic erweitert. Die Werte dieses Typs sind:

  • `U´       : Signal ist noch nicht initialisiert
  • `1´, `0´ : Standardwerte der Bits
  • `H´, `L´ : Schwach treibende `0´ bzw. `1´
  • `X´       : Treibendes Signal mit unbekanntem Wert
  • `W´       : Schwach treibendes Signal mit unbekanntem Wert
  • `-´         : Wert ist Don´t Care (z.B. bei Tabellen)

Mit std_logic_vector(range) bzw. std_ulogic_vector(range) wird das Prinzip auf Vektoren erweitert. range wird durch einen ganzzahligen Indexbereich definiert, z.B. 7 downto 0 (Byte) oder 3 to 6 . Der Zugriff auf ein einzelnes Bit innerhalb eines Vektors erfolgt durch Indizierung entsprechend bit_signal <= vector_signal(index).
 

top 

[Home] [ASICs] [Selbstmanagement] [Inselmeer] [Spiele]
[Ich über mich] [Links] [SiteMap] [Disclaimer]