7.2 VHDL - Eingebettete Systeme

Werbung
Lehrstuhl für
Eingebettete Systeme
Hardwarearchitekturen und Rechensysteme
7. Hardwareentwurf mit VHDL
Folien zur Vorlesung Hardwarearchitekturen und Rechensysteme von
Prof. Dr. rer. nat. U. Brinkschulte
Prof. Dr.-Ing. L. Hedrich
(basierend auf Materialien von Prof. Dr.-Ing. K. Waldschmidt)
Gliederung
7.1 Hardwareentwurf
7.2 VHDL
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:2
7.1 Hardwareentwurf
Durch die steigenden Integrationsdichten und die anwachsende
Schaltungskomplexität ist der Entwurf integrierter Schaltungen heute nur
schwer beherrschbar. Um die Komplexität heutiger Hardwareentwürfe in
den Griff zu bekommen, werden die folgenden Prinzipien und Strategien
verfolgt:
Hierarchische Strukturierung:
Bei der hierarchischen Strukturierung wird ein komplexes Problem in lösbare
Teilprobleme zerlegt.
Lokalität:
Die Lokalität fordert, dass Module untereinander möglichst wenig Seiteneffekte
aufweisen, d.h. Änderungen innerhalb eines Moduls sollten sich nicht auf andere
Schaltungsteile auswirken.
Regularität:
Durch die Verwendung regulärer Strukturen wird das Design überschaubarer und daher
einfacher zu beschreiben und zu überprüfen. Auf Gatterebene bedeutet Regularität, daß
möglichst wenig verschiedene Gatter- und Registertypen verwendet werden.
Testbarkeit:
Der Test einer integrierten Schaltung dient der Qualitätssicherung. Fatale Folgen einer
Fehlfunktion, insbesondere bei sicherheitskritischen Anwendungen, sollen verhindert
werden.
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:3
7.1 Hardwareentwurf
Hierarchische Strukturierung
Eine hierarchische Strukturierung beim Schaltungsentwurf führt zu einer
Zerlegung in Module (Teilschaltungen), die exakt festgelegte Teilfunktionen
ausführen und über eine definierte Schnittstelle verfügen. Jedes Modul wird
weiter zerlegt, bis es entworfen, validiert und in seinem zeitlichen und
logischen Verhalten dokumentiert werden kann.
Eine sinnvolle Strukturierung von Schaltungsentwürfen führt zu einer
Zerlegung in Module, die in ihrer Funktion so allgemein gehalten sind, dass
sie als universell einsetzbare, überprüfte Einheiten vielfach wieder
verwendet werden können (design reuse).
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:4
7.1 Hardwareentwurf
Hierarchische Strukturierung
c
in
a
s
VA
b
c
c
out
in
VA
a
f
1
s
1
c
in
b
f
f
f
&
VA
a
s
s
s
c
c
c
1
&
out
b
&
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
1
c
out
HWR · K7
Nr.:5
7.1 Hardwareentwurf
Idealisierter Entwurfsablauf
Informelle Spezifikation
?
Entwurfseingabe
automatisierbare Entwurfsschritte
ArchitekturBeschreibung
Simulation
Architektursynthese
Simulationsergebnisse
?
Register-TransferBeschreibung
Simulation
Logiksynthese
Simulationsergebnisse
?
GatterBeschreibung
Simulation
Technologieabbildung
Layout
Simulationsergebnisse
?
Simulation
Simulationsergebnisse
Validierung
Fertigung
Chip
Vermeidung von
Entwurfsfehlern
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:6
7.1 Hardwareentwurf
7.2 VHDL
Die Sprache VHDL
VHDL:
VHSIC Hardware Description Language
VHSIC:
Very High Speed Integrated Circuit
wurde 1983 vom amerikanischen Department of Defense initiiert und ist seit
1987 als IEEE Standard 1076 genormt.
VHDL ermöglicht die Beschreibung und Simulation digitaler Systeme und
deren Umgebung. Die Sprache ist an höhere Programmiersprachen wie C
und Pascal angelehnt und ermöglicht die Beschreibung von Verhalten und
Struktur auf unterschiedlichen Abstraktionsebenen.
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:7
7.2 VHDL
VHDL
Eine VHDL-Beschreibung besteht aus:
package:
Fasst Gruppen verwandter, globaler Deklarationen zusammen.
entity:
Beschreibt die Schnittstelle einer Komponente zur Umwelt.
architecture:
Beschreibt die Implementierung einer Entity.
configuration:
Beschreibt die Zuordnung einer Architecture zu einer Entity.
Weiterhin unterstützt VHDL die Verwaltung von VHDL-Komponenten in
Bibliotheken und somit die Wiederverwendung von Entwürfen (design
reuse).
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:8
7.2 VHDL
Package
In einer Package werden Gruppen verwandter Deklarationen
zusammengefasst. Hierzu gehören:
 Unterprogramm
Zu den Unterprogrammen zählen Funktionen, die einen einzigen Wert zurückliefern, und
Prozeduren, die mehrere Werte Zurückliefern.

Typdeklaration
Zu den wesentlichen Typdeklarationen zählen Enumerated Typ (z.B. Boolean, Bit,…),
Array, Record und File.



Konstantendeklaration
Dateideklaration
Aliasdeklaration
Beispiel:
package my_defs is
constant unit_delay := 1ns;
end my_defs;
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:9
7.2 VHDL
Entity
Die Entity beschreibt die Eingangs- und Ausgangssignale einer
Komponente (Schnittstelle zur Umwelt).
Eingangssignale
Ausgangssignale
Komponente
Für jedes Signal wird eine Richtung (in, out, inout, . . . ) und ein Datentyp
(BIT, INTEGER, . . . ) angegeben.
Beispiel:
entity COMPARE is
generic (delay: time);
port (A, B: in BIT; C: out BIT);
end COMPARE;
A
B
BIT
BIT
COMPARE
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
BIT
C
HWR · K7
Nr.:10
7.2 VHDL
Architecture
Die Architecture beschreibt die Implementierung einer Komponente. Für
eine durch eine Entity beschriebene Komponente können mehrere
Implementierungen existieren. Die Auswahl einer Implementierung erfolgt in
der Configuration. Wenn keine Configuration angegeben wird, wird jeweils
die (zeitlich) zuletzt analysierte Architecture verwendet.
Entity
Architecture 1
Architecture n
Die Architecture kann durch eine Verhaltens-, eine Datenfluß- oder eine
Strukturbeschreibung beschrieben werden.
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:11
7.2 VHDL
Architecture – Verhaltensbeschreibung
Das Verhalten von Hardwareelementen wird durch Prozesse beschrieben,
die immer und gleichzeitig aktiv sind. Die Anweisungen innerhalb eines
Prozesses werden in einer Endlosschleife ständig sequentiell abgearbeitet
und können mit einer ’wait’-Anweisung unterbrochen werden, bis die
Bedingung der ’wait’-Anweisung erfüllt ist. Alternativ zu der ’wait’Anweisung kann nach dem Schlüsselwort process eine Liste von Signalen
angegeben werden, die zur Aktivierung eines Prozesses führen (sensitivity
list). Dies entspricht einer ’wait on’-Anweisung am Ende des Prozesses.
Beispiel:
architecture BEHAVIOR of COMPARE is
begin
process ( A, B )
begin
if ( A = B ) then C <= ’1’ after delay;
else
C <= ’0’ after delay;
end if;
end process;
end BEHAVIOR;
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:12
7.2 VHDL
Architecture –Datenflussbeschreibung
Die Datenflussbeschreibung besteht aus einer strukturellen Beschreibung
von Datenpfaden in Kombination mit funktionalen Beschreibungen der
Datenpfadkomponenten. Sie beschreiben den Datenfluss und die
Modifikation der Daten durch Operationen (z.B. Addition, Vergleich, . . . ).
Beispiel:
architecture DATAFLOW of COMPARE is
begin
C <= not ( A xor B ) after delay;
end DATAFLOW;
Architecture
A
1
1
C
B
delay
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:13
7.2 VHDL
Architecture – Strukturbeschreibung
Die Strukturbeschreibung besteht aus einer Netzliste von vordefinierten
Komponenten.
Beispiel:
architecture STRUCTURE of COMPARE is
signal I: BIT;
component XOR2 port ( x, y: in BIT; z: out BIT );
end component;
component INVERTER port ( x: in BIT; z: out BIT );
end component;
begin
U0: XOR2 port map ( A, B, I );
U1: INVERTER port map ( I, C );
end STRUCTURE;
Architecture
component
A
x
XOR2
B
component
y
z
I
x
INVERTER z
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
C
HWR · K7
Nr.:14
7.2 VHDL
Beispiel – endlicher Automat
entity MEALY is
port ( X, CLK: in BIT;
Z: out BIT );
end MEALY;
S0
0/1
1/1
-/0
1/0
S1
S2
0/0
Exemplarisch wird die Modellierung der sequentiellen Logik (COMBIN) und
der Zeitglieder in den Rückkopplungspfaden (SYNCH) in getrennten
Prozessen vorgestellt:
architecture BEHAVIOR of MEALY is
type STATE_TYPE is ( S0, S1, S2 );
signal CURRENT_STATE, NEXT_STATE: STATE_TYPE;
begin
COMBIN: process ( CURRENT_STATE, X )
…
SYNCH: process
…
end BEHAVIOR;
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:15
7.2 VHDL
Beispiel - COMBIN
COMBIN: process ( CURRENT_STATE, X )
begin
case CURRENT_STATE is
when S0 =>
Z <= ’0’;
NEXT_STATE<= S1;
when S1 =>
if X = ’0’ then
Z <= ’1’;
NEXT_STATE<= S0;
else
Z <= ’0’;
NEXT_STATE<= S2;
end if;
when S2 =>
…
end case;
end process;
S0
0/1
1/1
-/0
1/0
S1
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
S2
0/0
HWR · K7
Nr.:16
7.2 VHDL
Beispiel – SYNCH
SYNCH: process
begin
wait until CLK’event and CLK = ’1’;
CURRENT_STATE <= NEXT_STATE;
end process;
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:17
7.2 VHDL
Beispiel ALU
Uwe Brinkschulte  Eingebettete Systeme  Lars Hedrich  Entwurfsmethodik
HWR · K7
Nr.:18
7.2 VHDL
Herunterladen