Verständnis der Sematik von Sprachen zur Modellierung des Verhaltens von digitalen Schlatkreisen
Verständnis und Anwendung der Grundelemente von VHDL
Unterscheidung von Struktur- und Verhaltensbeschreibung
Überblick
Hardwarebeschreibungssprachen (HDL)
HDLs führen keinen Übergang von VB zu RTL durch, d.h. die Systembeschreibung unter Verwendung einer HDL erfordert explizite Formulierung der RTL, anders als bei prozessororientierten Programmiersprachen wie C.
HDLs ermöglichen sowohl SB als auch VB des Systems, häufig gemischt und hierarchisch.
Eine HDL sollte technologieunabhängig sein, d.h. eine VB muß für FPGAs genauso wie für ASICs verwendbar sein, und muss die gleiche Funktionalität ergeben.
Die Abstraktionsebene einer HDL ist durch VB höher als reine SB, was kürzere Entwicklungszeiten und eine höhere Entwurfssicherheit bedeutet.
VHSIC (Very High Speed IC) HDL → IBM, Texas Instruments [1982], IEEE [1985,1987]. VHDL ist weit verbreiteter Standard im akademischen und industriellen Umfeld.
Überblick
VHDL
VHDL bietet im Gegensatz zu Verilog HDL ein universelles und nutzerdefinierbares Typensystem. VHDL ist semantisch streng typisiert.
VHDL bietet ein
universelles [konkrete und abstrakte Datentypen],
umfangreiches [bit, signed, float, string, …],
erweiterbares [type defintion],
strenges [type a ≠ type b]
Typsystem. Strenge Typisierung reduziert Entwurfsfehler, erhöht aber den syntaktischen und semantischen Programmieraufwand.
VHDL unterstützt statische Funktionen, die mit unterschiedlichen Funktionstypen überladen werden können.
VHDL
Beispiel einer überladenen Funktion in VHDL.
function ”+” (std_logic_vector;std_logic_vector)
return std_logic_vector;
function ”+” (std_logic_vector;integer)
return std_logic_vector;
function ”+” (signed;signed)
return signed;
Eine Funktion beschreibt in VHDL eine Abbildungsvorschrift (i.A. kombinatorische Logik) von Eingangs- auf Ausgangssignale! Rein funktional ohne Speicher und sequenziellen Ablauf!
VHDL ist modulorientiert und hierarchisch strukturiert.
VHDL - Aufbau
Die Beschreibung einer Digitallogikschaltung, Komponente genannt, benötigt wenig-
stens zwei Strukturelemente. Ein Modul (≡eine VHDL Quelldatei) ist daher unterteilt
in:
Schnittstellenbeschreibung → Entity
In der Entity wird die extern sichtbare Schnittstelle der zu modellierenden Komponente beschrieben:
Ein- und Ausgänge (Ports)
Konstanten
Funktionen und Prozeduren
Architektur → Architecture
Eine Architektur enthält die Beschreibung der Funktionalität und/oder der Struktur eines Moduls.
Verhaltenbeschreibung VB, Strukturbeschreibung SB in Form einer Netzliste und Komponentent, die auch verschiedene VHDL-Module verbinden kann.
Eine Entity bzw. ein Modul kann durch verschiedene Architekturen beschrieben werden. Die Zuordnung einer Architektur zu einer Entity findet in der sog. Konfiguration statt.
VHDL - Aufbau
Ein Modul (≡eine VHDL Quelldatei) ist unterteilt in (Forts.):
Package [optional]
Ein Paket enthält Anweisungen wie Typ- und Objektdeklarationen sowie statische Funktionen und Prozeduren, die von mehreren Modulen verwendet werden können. Vordefiniert sind bei VHDL die Pakete STANDARD und TEXTIO.
VHDL - Aufbau
Definition eines VHDL Moduls und Analogie zur einer IC-Komponente
Ein VHDL Modul beschreibt die äussere Schnittstelle einer Komponente (Black Box) in der Entity und deren Aufbau oder Funktion (Architecture)