Hardwarebeschreibungssprachen

ZIELE

  • 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.

Überblick

  • Es gibt zwei weit verbreitete HDLs:
    1. Verilog HDL Gateway Design Automation [1985], Cadence [1989], Standardisierung durch IEEE [1995]
    2. VHSIC (Very High Speed IC) HDL IBM, Texas Instruments [1982], IEEE [1985,1987]. VHDL ist weit verbreiteter Standard im akademischen und industriellen Umfeld.

fighdlcomp1http://www.ucerd.com


Abb. 1. VHDL und Verilog decken einen Großteil der Modellierungsebenen beim Hardwarentwurf ab. VHDL bietet bessere Abstraktionsmöglichkeiten.

Überblick

fighdlcomp2


Abb. 2. Syntaktischer und semantischer Vergleich von VHDL und Verilog am Beispiel eines 8-Bit Schieberegsietrs

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 atype 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.

figvhdlhier1


Abb. 3. Hierarchisch aufgebaute Struktur in VHDL

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)