fpga-entwurf mit vhdl - · pdf file1 fpga-entwurf mit vhdl manfred schimmler institut...
TRANSCRIPT
1
FPGA-Entwurfmit VHDL
Manfred SchimmlerInstitut für InformatikLehrstuhl Technische InformatikChristian-Albrechts-Universität zu Kiel
2
Prof. Dr. Manfred Schimmler
..... may I introducemyself ......
1980-1981 Siemens AG Berlin1981-1989 Wiss. Mitarbeiter, CAU Kiel1985-1985 Research Fellow University Aarhus1987-1987 Research Fellow ANU Canberra1989-1996 Geschäftsführer, ISATEC GmbH, Kiel1996-1997 Fachhochschulprofessor, Fachhochschule Stralsund1997-2004 Professor, TU-BraunschweigSeit 01.03.2004 Professor, CAU Kiel
3
Inhalt der Vorlesung
1. Motivation und Einleitung2. Einführung in VHDL 3. Sprachkonstrukte von VHDL4. Automatenmodellierung mit VHDL5. Synthesefähiger Entwurf eines Mikroprozessors in VHDL6. FPGA Technologie7. Taktung8. Parallele Hardware-Algorithmen 19. Parallele Hardware-Algorithmen 210. Core-Generator11. Der FPGA-basierte Parallelrechner Rivyera12. Rivyera API
4
Was erwartet sie heute?
1. MotivationArten digitaler integrierter SchaltkreiseWelche Zielarchitektur passt für welche Anwendung?Taxonomie der ICsTypen konfigurierbarer und rekonfigurierbarer LogikEbenen beim Entwurf digitaler SchaltungenEntwurfsprozessFunktion der Hardwarebeschreibungssprache
5
Arten digitaler integrierter Schaltungen
• Diskrete Bauteile mit einer kleinen Anzahl einzelner Gattern zumAuflöten oder Aufstecken auf Platinen (z.B. in TTL, 7400)
• Einfache fest konfigurierte Funktionsblöcke auf einem Chip ohne oder mit sehr begrenzter Möglichkeit der Programmierung (z.B. einfache Speicherchips, Zähler, Taschenrechner, Uhren)
• Komplexe fest konfigurierte programmierbare Einheiten auf einem Chip (z.B. Mikroprozessoren, Mikrocontroller, Digitale Signal Prozessoren (DSPs), Massenspeicher mit integrierter Logik)
• Kundenspezifisch konfigurierbare einfache Bausteine, z.B. PLA, FPLA (Programmable Logic Array, Field Programmable Logic Array)
• Kundenspezifisch konfigurierbare komplexe Bausteine, z.B. FPGA (Field Programmable Gate Array)
• Anwenderspezifische Integrierte Schaltkreise, ASICs
6
Welche Zielarchitektur für welche Anforderung?
Hauptkriterium: Datendominanz oder Kontrolldominanz?
1. Beispiel: Die Steuerung der Einspritzung von Kraftstoff in einemVerbrennungsmotor
2. Beispiel: Eine Grafikkarte
3. Beispiel: Gesucht ist eine Hardwarelösung zum Angriff auf ein symmetrisches Verschlüsselungsverfahren, z.B. DES (Data Encryption Standard).
4. Beispiel: Warum leisten Mikroprozessoren in datendominanten Anwendungen weniger als DSPs?
5. Beispiel: Vektorprozessoren
7
Welche Zielarchitektur für welche Anforderung?
Hauptkriterium: Datendominanz oder Kontrolldominanz?
1. Beispiel: Die Steuerung der Einspritzung von Kraftstoff in einem Verbrennungsmotor erfordert nicht viele (numerische) Berechnungen. Andererseits muss aber echtzeitig und zuverlässig reagiert werden. Es sind eine Reihe von Sondersituationen denkbar, die über spezielle Programme behandelt werden müssen. Die Art der Berechnung ist weitgehend ereignisgesteuert. Hier überwiegt die Kontrolle gegenüber der Datenverarbeitung, die Anwendung ist „kontrolldominant“.Für eine solche Anwendung verwendet man einen Mikrocontroller (wasnichts anderes ist als ein auf Kosten optimierter Mikroprozessor).
2. Beispiel: Eine Grafikkarte muss für Millionen von Pixeln dieselben Operationen durchführen, um einen Frame auf dem Bildschirm zu berechnen. Die Folge der Operationen ist fest vorgegeben, es gibt keine oder fast keine Sondersituationen und Interrupts. Der Datendurchsatz soll optimal sein, d.h. in einer festen Zeit sollen soviele (gleichartige) Berechnungen wie möglich gemacht werden. Eine solche Anwendung ist „datendominant“. Typische Zielarchitekturen hier sind DSPs oder Spezialprozessoren.
8
Welche Zielarchitektur für welche Anforderung?
3. Beispiel: Gesucht ist eine Hardwarelösung zum Angriff auf ein symmetrisches Verschlüsselungsverfahren, z.B. DES (Data EncryptionStandard). Diese muss 256 mögliche Schlüssel einer Chiffre durchprobieren, um einen chiffrierten Text in den zugehörigen Klartext zurück zu übersetzen. Selbst schnellste Mikroprozessoren und sogar schnellste DSPs würden Jahrzehnte rechnen, um diese Aufgabe zu erfüllen. Dieses (ganz klar datendominierte) Anwendung erfordert eine individuelle Lösung, die speziell für diese Anwendung entwickelt wird. Man nennt eine solche Lösung „kundenspezifisch“, „application specific“oder „custom solution“. In diesem Falle könnte die Lösung eine Parallelarchitektur aus mehreren speziell für DES konfigurierten FPGAssein, die mit deutlich höherem Durchsatz die möglichen Schlüssel durchprobieren können, als jeder Standardrechner. Oft werden mit solchen kundenspezifischen Lösungen Geschwindigkeiten erreicht, die sogar deutlich über denen von Superrechnern liegen.
9
Welche Zielarchitektur für welche Anforderung?
4. Beispiel: Warum leisten Mikroprozessoren in datendominanten Anwendungen weniger als DSPs? Mikroprozessoren sind „Alleskönner“, die für den Universaleinsatz optimiert sind. Sie haben aufwendige Pipelines, Branch-Prediction-Einheiten, Interrupt-Einheiten usw. die darauf ausgelegt sind, Unregelmäßigkeiten im Kontrollfluss effizient bearbeiten zu können. DSPs sind im Gegensatz dazu Rechenknechte. Sie haben (oft) viele Recheneinheiten, die parallel arbeiten können. Oft sind diese auch kombiniert, um spezielle Funktionen besonders schnell oder mit besonders hohem Durchsatz berechnen zu können. Ein Beispiel dafür ist eine Multiply-Add-Einheit, die viele Anwendungen in der linearen Algebra beschleunigen kann, z.B. Matrix-Multiplikation oder –Inversion. DSPs haben breite Datenleitungen (für Ein- und Ausgabe). Ein anderes Extrem in dieser Richtung sind die Netzwerkprozessoren, die darauf zugeschneidert sind, Anwendungen aus der modernen Digitalen Nachrichtenvermittlung zu beschleunigen.
10
Welche Zielarchitektur für welche Anforderung?
5. Beispiel: Vektorprozessoren verfügen über spezielle Einheiten, mit denen Vektoren verarbeitet werden können. Diese zeichnen sich durch eine besonders tiefe Pipeline aus. Ferner gibt es Register mit Vektorbreite und einen schnellen vektoriellen Speicherzugriff. Aufeinanderfolgende Operationen werden durch das sogenannte Chaining (Forewarding zwischen Operationen) beschleunigt. Vektorprozessoren waren in den 70-er und 80-er Jahren die ersten Superrechner. Heute verfügen viele Standardprozessoren über assoziierte Vektoreinheiten.
11
Ein ASIC (Application Specific Integrated Circuit) ist ein anwendungsspezifischer integrierter Schaltkreis.
Wenn es sich um einen Chip handelt, dessen sämtliche Transistoren und Leitungen frei vom Anwender entworfen, positioniert und dimensioniert werden, spricht man von einem Full-custom ASIC.
Beim Full-Custom ASIC stehen dem Entwerfer alle Möglichkeiten zur Verfügung, die auch die Entwerfer von Mikroprozessoren (z.B. bei Intel oder Texas Instruments) benutzen (allerdings haben die kleineren Entwurfshäuser in der Regel nicht Zugang zu den jeweils besten Fabrikationsstätten, die in der Hand der großen Chiphersteller sind).
Ein Beispiel für einen ASIC sehen wir auf der folgenden Folie. Die farbigen Striche und Rechtecke sind Leitungen in unterschiedlichen Materialien aus denen die Transistoren und Verbindungen aufgebaut werden.
12
Full Custom Entwurf
13
Full-customASIC-Entwurfsprozess
Funktionale Beschreibung
Floorplanning
Design und Layout
Design Rule Check
Extraktion der Netzliste
Simulation
Maskengenerierung
Fertigung
Test
Electrical Rule Check
14
Wenn der Anwender sich beim Entwurf auf eine Menge von vorgegebenen Standardzellen beschränken kann und das Plazieren auf dem Chip (Placement) sowie das Verdrahten der Standardzellen untereinander (Routing) durch ein Programm durchgeführt wird, spricht man von einem Semi-Custom ASIC. Ein solcher Entwurf ist oft signifikant preisgünstiger als ein Full-Custom Entwurf, erreicht aber nicht die Integrationsdichte eines solchen.
Die folgende Folie zeigt das Bild eines Semi-Custom Chips. Man erkennt deutlich die Zeilen, in denen die Standardzellen nebeneinander andgeordnet sind, und zwischen denen sich so genannte Routing-Kanäle für die Verbindung der Standardzellen untereinander befinden.
Zur Semi-Custom-Klasse zählen auch Gate-Arrays. Dies sind Chips, bei denen in einem ersten Fabbrikationsschritt eine große Menge von Gattern auf dem Chip integriert wurde, aber zunächst ohne Routing. In einem zweiten, vom Kunden gesteuerten Fertigungsprozess, werden die Verbindungsleitungen entsprechend der kundenspezifischen Schaltung hinzugefügt. Diese Technologie hat aber in den letzten Jahren an Bedeutung verloren.
15
Semi-Custom Entwurf
16
Wenn die Strukturen auf dem Silizium weitgehend anwendungsunspezifisch vorgegeben sind und der Anwender seine Schaltung durch nachträgliche Manipulation eines solchen Chips implementiert, spricht man von Field Programmable Logic. Sie wird also quasi erst im Anwendungsfeld programmiert.
Diese gibt es in zwei grundsätzlich verschiedenen Ausprägungen:• Einmalig programmierbar • Reprogrammierbar
Einmalig programmierbare Schaltungen sind in der Regel schnellerund flächeneffizienter aufgebaut. Diese Vorteile stehen dem Nachteil gegenüber, dass der Entwurfsprozess wesentlich komfortabler mit reprogrammierbarer Logik gestaltet werden kann. Beispiele dafür werden wir später kennen lernen.
17
Digitale integrierte SchaltkreiseDigitale integrierte Schaltkreise
Standard ICsStandard ICs ASICsASICs
Full CustomFull
Custom
SemiCustomSemi
Custom
Field pro-grammableField pro-
grammable
LogikFamilienLogik
Familien
SpeicherSpeicher
Mikropro-zessoren
Mikropro-zessoren
Standard-Cell
Standard-Cell
Gate-Array
Gate-Array
SpeicherSpeicher LogikLogik
PROMEPROM
EEPROM
PROMEPROM
EEPROM
PLDsPLDs FPGAsFPGAs
Taxonomie der ICs
18
Full-CustomIC
Standard-Cell IC
Gate Array FPGA
Anzahl Gatter 500.000.000 10.000.000 1.000.000 1.000.000
Entw.-Zeit 1-2 Jahre 2-4 Monate 3-6 Wochen 1-30 Tage
Entw.-Kostenhoch
ab ca. 200.000mittel
ca. 80.000mittel
ca. 50.000niedrig
ca. 10.000Witschaftl.Stückzahl
ab 100.000 ab 5000 ab 1000 ab 1
PLD
2.000
1 Tag
niedrigca. 300
ab 1
19
Rechenleistung vs. FlexibilitätRechenleistung vs. Flexibilität
Rechenleistung
Größe desAnwendungsspektrums
ASIC
Mikroprozessoren
Spezialrechner FPGA
ASIC: application specific integrated circuitFPGA: field programmable gate array
20
Höchstintegration vs. schneller EntwurfHöchstintegration vs. schneller Entwurf
Integrations-dichte
Designgeschwindigkeit
ASIC
PCB
FPGA
ASIC: Application Specific Integrated CircuitFPGA: Field Programmable Gate ArrayPLA: Programmable Logic ArrayPCB: Printed Circuit Board
PLA
angepassterMikroprozessor
21
Typen konfigurierbarer und rekonfigurierbarer Logik
Üblich sind zwei Arten der Implementierung:Schaltnetzrealisierung durch SpeicherSchaltnetzrealisierung mit AND- und OR-Plane
Wir sehen Beispiele für die beiden Techniken auf den folgenden Folien.Die Realisierung kann unveränderlich oder reprogrammierbar sein. Bei unveränderlicher Realisierung werden im Moment des Erzeugens der individuellen Schaltung bestimmte Verbindungen durchtrennt (man bezeichnet diesen Vorgang häufig als „Brennen“). Die Stellen, an denen Verbindungen so durchtrennt werden können, werden als Fuses (Sicherungen) bezeichnet. Durch das Brennen wird die Ein-Ausgabe-Funktion der Schaltung festgelegt. Bei reprogrammierbarer Realisierung werden Speicher beschrieben, die danach den Betrieb der Schaltung steuern. Im Allgemeinen ist der Speicher selbst schon die Realisierung der Schaltung, d.h. die Eingaben sind die Adressen und die Ausgaben sind die gespeicherten Werte.
22
Beispiel: Realisierung eines Schaltnetzes als ROM (Read OnlyMemory)
Ein ROM wird zur Generierung des Schaltnetzes mit der Wertetabelle der zu entwerfenden Funktion beschrieben.
Im Betrieb wird dieses ROM danach benutzt, indem die Eingaben indas Schaltnetz an die Addresseingänge des ROM gelegt werden, und die Ausgaben des Schaltnetzes durch die Ausgaben des ROM geliefert werden.
Eingaben
Ausgaben
23
Beispiel: Ein Volladdierer, realisiert mit einem 8x2-Bit ROM
1
Eingabenx2,x1,x0
0
0 1
1 0
0 1
0 1
1 1
1 0
0 0x2 x1 x0 s c
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1c
s
Wertetabelle ROM
000
001
010
011
100
101
110
111
24
Beispiel: Ein 8x2-Bit ROM (Fuse-Technik, d.h. nicht reprogrammierbar), bisher noch nicht „gebrannt“
Eingabenx2,x1,x0
000
001
010
011
100
101
110
111
1 0 1
1
1
25
Beispiel: Ein Volladdierer, realisiert mit einem 8x2-Bit ROM. Das „Brennen“ erfolgt durch herausnehmen von Source-Verbindungen der MOSFETs (Fuses).
Eingabenx2,x1,x0
000
001
010
011
100
101
110
111
1 0 1
1
1
s
c
26
Die letzte Folie hat gezeigt: Ein Bit der Wertetabelle einer booleschen Funktion benötigt in einer Fuse-Technik einen Transistor (der durch den Prozess des Brennens aktiviert oder deaktiviert sein kann).
Natürlich können wir auch dieselbe Wertetabelle in einem wiederbeschreibbaren Speicher, z.B. einem SRAM unterbringen. Der Unterschied ist der Schaltungsaufwand. Für ein Bit in einer SRAM Zelle benötigen wir 6 Transistoren. D.h. wir haben ungefähr einen um einen Faktor 6 höheren Flächenaufwand. Entsprechend sind logisch gleichgroße Speicher in Antifuse-ROM-Technologie kleiner und schneller.
Dieses Merkmal zieht sich durch alle Schaltkreisfamilien, in denen wir reprogrammierbare oder einmalig brennbare Bausteine vorfinden. Wir bezahlen die Reprogrammierbarkeit mit einer geringeren Integrations-Dichte und einer geringeren Schaltgeschwindigkeit.
27
Der Vorteil von Reprogrammierbarkeit soll aber hier auch nicht verschwiegen werden: Im Prozess des Entwurfs einer Schaltung istdie Bearbeitung von Designfehlern und der Test erheblich kostengünstiger. Dies macht die reprogrammierbaren Bausteine besonders für den Einsatz in Forschung und Entwicklung besonders attraktiv.
Tatsächlich machen die beiden größten Firmen im Bereich der FPGAs(Xilinx und Altera) gegenwärtig mehr als 90% ihres Geschäfts mit reprogrammierbaren Bausteinen.
28
Realisierung eines Schaltnetzes als PLA mit AND- und OR-Plane
OR-planeAND-Plane&
&
&
Eingaben Ausgaben
Minterme≥1 ≥1 ≥1
29
Beispiel: Volladdierer als PLA mit AND- und OR-Plane
OR-planeAND-Plane
Minterme1 1 1
x0x1x2
s c
30
Beispiel: Funktionen y1 = x0x1x2 + x0x1x2 und y0 = x0x1x2realisiert als PLA mit AND- und OR-Plane
1 1 1
0
0
1
0
Eingänge Ausgänge
x0x1x2
y0y1
0
1
31
FPGA (Field Programmable Gate Arrays)
FPGAs sind heute die leistungsfähigsten anwenderprogrammierbaren Bausteine. Es gibt weltweit etwa 10 Hersteller, von denen Xilinx, Altera, Quicklogic, Actel die wichtigsten sind. Das Konzept des FPGAs ist die Bereitstellung einer Vielzahl von identischen konfigurierbaren Zellen, so genannten Configurable LogicalBlocks (CLBs). Diese können Boolesche Schaltnetze mit zwischen 4 und 16 Eingängen realisieren und haben in der Regel ein bis vier Flipflops zur Speicherung der Ergebnisse zur Verfügung. XilinX: Configurable Logic Block (CLB)Altera: Logic Element (LE)Actel: Logic Tile (LT)QuickLogic: Logic Cell (LC)In modernen FPGAs wird häufig als zusätzliche Funktionalität ein oder mehrere Blöcke RAM vorgehalten. Auch das integrieren von einfachen Prozessorkernen wird unterstützt.FPGAs gibt es sowohl als einmalig brennbare Bauteile als auch als reprogrammierbare Einheiten.Auf der nächsten Folie ist der Floorplan eines typischen FPGAsabgebildet.
32Beispiel für einen CLB eines XilinX XC3000 FPGAs
33
Beispiel: Floorplan eines FPGA
CLB
RAM
Pad-Cellen für dieVerbindung nach außen
Verdrahtungskanäle
34
Ebenen beim Entwurf digitaler Schaltungen
Die Ebenen, die bei dem Entwurf einer Schaltung durchlaufen werden,definieren die Anforderungen an ein Softwaresystem, das den Entwurfprozess unterstützen soll. Wir wollen diese Ebenen zunächst kennen lernen, um danach beurteilen zu können, an welcher Stelle des Entwurfs wir uns Unterstützung durch Software erhoffen können.
Die oberste Ebene ist die Verhaltensebene. Auf dieser wird die Schaltung durch Leistungsanforderungen an ihr Ein-Ausgabe-Verhalten beschrieben. Die Verhaltens-Beschreibung macht keine Festlegung über die Strukturierung, Implementierung, Technologie usw.
Darunter liegt die Architektur-Ebene. Hier wird festgelegt, aus welchen Komponenten die Schaltung aufgebaut werden soll, mit welchen Hardware-Bausteinen also die Funktion erfüllt werden kann. Beispiele für solche Bausteine können für ein komplexes System wie z.B. das Motherboard eines Computers die beteiligten Prozessoren, Speicherchips, Controller, usw. Zwischen diesen Bauteilen bestehen Schnittstellen, die ebenso wie die Bauteile selbst wiederum funktional beschrieben werden müssen. Ein Beispiel für ein weniger komplexes
35
Abstraktionsebenen beim Entwurf digitaler Systeme
Verhaltens-Ebene
RT-Ebene
Logik-Ebene
Transistor-Ebene
Physikalische Ebene
Speicher CPU I/O
Control
A B
MuxALU
&
≥1
J Q
K
Architektur-Ebene
36
System ist ein zu entwerfender Mikrocontroller. Hier könnten die Bausteine eine ALU, ein Multiplizierer, ein On-Chip-Cache, ein Registersatz, eine Befehls-Dekodierungs-Einheit usw. sein. Wiederum sind diese Komponenten und ihre Schnittstellen funktional zu beschreiben.
Die Ebene darunter ist die Register-Transfer-Ebene (RT-Ebene). Bausteine sind hier Register, Multiplexer, Addierer, Schaltnetze, Shifter, usw. Die Schnittstellen zwischen diesen Einheiten sind Datenpfade, auf denen Registerinhalte ausgetauscht werden. Das Verhalten der Einheiten ist durch die Operationen bestimmt, für deren Ausführung sie erforderlich sind.
Unter der Register-Transfer-Ebene liegt die Logik-Ebene. Hier sind die Einheiten Gatter, Flipflops, Transmissionsgatter. Ihr Verhalten kann durch boolsche Ausdrücke beschrieben werden.
Unter der Logik-Ebene kommt die Transistor-Ebene. Diese ist aus Transistoren und passiven Elementen wie Leitungen aufgebaut. Diephysikalischen Ebenen unterhalb der Transistor-Ebene sollen uns in dieser Vorlesung nicht interessieren.
37
Verhaltens-beschreibung
Struktur
Verhaltens-Ebene
Leistungsanforderungen keine
ArchitekturEbene
Ein-Ausgabeverhaltender Architektur
Blockschaltbild
Register TransferEbene
Datenfluss, State Machines
RT-Diagramme
Logik-Ebene Boolesche Gleichungen Netzliste
Elemente
Prozessoren, SpeicherBusse, Controller
Register, Multiplexer,Dekodierer
Flipflops, Gatter
Transistor-Ebene Differenzialgleichungen el. SchaltbildTransistoren, Dioden
Kondensatoren
38
Speicher
Multiplizierer
ALU
Befehls-Dekodierung
OP-Muxe
FPUClk
DatenDaten
Daten, Befehle, Selektoren
Daten, Befehle, Selektoren
39
DatalinkOstenDatalink
Westen
ZeilenselektorOut
ZeilenselektorIn
SpaltenselektorIn
InstructionIn
DatalinkNorden
DatalinkSüden
SpaltenselektorOut
InstructionOut
2
2
Clock
RAM-Registerfile Read-Port
Writeport
Shifter
Multipizierer
Bedingt-LogischeEinheit
Clock-Verteiler
R0 R1
R31
rs cs
Flag-Manager
Floating Point Einheit (FPU)
Befehlsdekoder
ALU
Op 1
-MU
X
Op 0
-MU
X
12
Vom CW
Vom CN
Vom CE
Vom CS
Kommunikationsregister
Op0-Indexreg. Res-Indexreg.Op1-Indexreg.6
40
VA
≥1
1x
s_mult
ybar
VA
≥1
r_mult
41
42
43
44
Beim Entwurf eines digitalen Systems durchläuft man die hier angesprochenen Ebenen der Abstraktion.
In bestimmten Entwurfsprozessen ist die Detailkenntnis aller Ebenen nicht erforderlich. Z.B. braucht ein Standard-Cell-Designer nur sehr wenig über die Transistor-Ebene zu wissen, da sein Entwurfziel auf der Logik-Ebene bereits erreicht ist. Die Umsetzung seiner bis dahin entworfenen Schaltung in ein physikalisches Layout ist Aufgabe des Semi-Custom-Entwurfssystems (also eines Programms).
Wir favorisieren hier einen Top-Down-Entwurfsprozess. Wir wollen bei unseren Entwürfen bei der Verhaltens-Ebene beginnen, und nach und nach auf dem Weg hinunter zur Logik-Ebene das Verhalten der Schaltung durch eine Strukturierung ihrer Bauteile sicherstellen. Man implementiert also auf diesem Weg „Verhalten“ durch „Struktur“. Begleitend soll der Entwurf in jeder Phase überprüfbar korrekt sein. Dies geschieht durch Simulation.
45
Simulation erfordert die Modellierung der Schaltung auf der jeweiligen Entwurfsebene und die Kontrolle der Funktion dieses Modells bei der Eingabe von aussagefähigen Simulationsstimuli (Eingabewerten).
46
Am wünschenswertesten ist eine Simulationsumgebung, die unabhängig vom Stadium des Entwurfs (dem Anteil von Verhaltensmodell und Strukturmodell) ist. Man möchte also einen Satz von Simulationsstimuli benutzen, mit dem dieselbe Funktionalität in allen Ebenen des Entwurfs verifiziert werden kann.
47
Strukturelle vs. Verhaltensbeschreibung von Schalt ungen
Man kann Schaltungen mit Ihrer Struktur oder mit ihrem Verhaltenbeschreiben. Bei der Beschreibung mittels der Struktur beziehen wir uns auf den Aufbau der Schaltung aus einzelnen Komponenten, die wiederum ihrerseits beschrieben werden können. Bei einer Verhaltensbeschreibung wird angegeben, welche datenverarbeitendenProzesse die Schaltung realisiert. Wir beschreiben also ihr Verarbeitungsverhalten der Eingangsdaten und geben auf diese Weise algorithmisch an, wie die Ausgangsdaten aus den Eingangsdaten berechnet werden.
Man kann Strukturbeschreibung und Verhaltensbeschreibung mischen. Z.B. könnten die Komponenten einer Strukturbeschreibung eines Bausteins in ihrem Verhalten beschrieben werden. Im Hardwareentwurf beginnen wir in der Regel mit Verhaltensbeschreibungen. Diese werden dann nach und nach durch Strukturbeschreibungen ersetzt.
Der Prozess des Hardwareentwurfs kann also im weitesten Sinne als kontinuierliche Ersetzung von Verhalten durch Struktur verstanden werden.
48
Definition
Unter einer strukturellen Beschreibung eines Bausteins versteht man die Beschreibung einer Skizze, die angibt, welche Komponenten (und wie viele Instanzen der Komponenten) zur Realisierung des Bausteinsgenutzt werden und wie diese Komponenten mit den Ein- und Ausgängen des Bausteins verdrahtet sind.
49
Definition
Unter einer Verhaltensbeschreibung eines Bausteins versteht die funktionale Modellierung seines Ein-/Ausgabeverhaltens.
50
Beispiel: Verhaltensbeschreibung eines Volladdierer s
architecture Behavioral of VA is
Begins <= ‘1’ when (b=cin and a=‘1’) else
‘1’ when (not b=cin and a=‘0’) else‘0’;
cout <= ‘1’ when (b=‘1’ or cin=‘1’) and a=‘1’ else‘1’ when (b=‘1’ and cin=‘1’ and a=‘0’) else‘0’;
End Behavioral;
51
Beispiel: Strukturbeschreibung eines Volladdierers
architecture Structural of VA isBEGIN
HA1: HA PORT MAP(A => A,B => B,S => S1HA,Cout => C1HA
);HA2: HA PORT MAP(
A => S1HA,B => Cin,S => S2HA,Cout => C2HA
);Cout <= (C1HA or C2HA);S <= S2HA;END;
52
Beispiel: Der FPGA-Entwurfsablauf ab der RT-Ebene
Eingabe
Synthese
Implementation
Chip Programmierung
VHDL Verilog
Netzliste
Bitfile
Verhaltenssimulation
Funktionale Simulation
Statische Timing Analyse
Timing Simulation
In-Circuit Verification
Verifikation
53
Synthese
VHDLVHDL
Syntax Check
grafische RTL Darstellung
Technology Mapping
Netzliste
VHDL
NetzlisteNetzliste
Überprüfung des VHDL Codesauf Syntax und Semantik
Abbildung der Logik von RTLEbene auf Gatter-Ebene
54
Impl
emen
tatio
n
Translate
Place & Route (PAR)
Netzliste
Bitfile
MapLogischer „Design Rule Check“ undAbbildung der Logik auf Komponententypen der Zielarchitektur
Generiert aus mehreren Netzlisten und Constraints eine einzige Netzliste
Abbildung der Komponenten auf definierte physikalische Einheiten derZielarchitektur und erstellen der Verbindungen
NetzlisteNetzliste
Constraints
55
Funktion der Hardwarebeschreibungssprache
Die Hardware Description Language (HDL) hat die Aufgabe, den Entstehungsprozess eines Hardwareentwurfs durch die verschiedenen Ebenen zu unterstützen. Die Sprachen Verilog HDL und VHLD sind weltweit etwa gleichstark vertreten. In Europa gibt es ein Übergewicht von VHDL, in Amerika von Verilog HDL.
HDLs unterstützen den Top-Down-Entwurf. In der HDL kann eine Schaltung auf der Verhaltensebene modelliert und simuliert werden. Sodann kann sie durch schrittweise Ersetzung von Verhalten durchStruktur in eine synthetisierbare Form gebracht werden. Jeder dieser Schritte kann wiederum durch Simulation verifiziert werden.
Die finale strukturierte HDL-Beschreibung ist schließlich die Eingabe in das zur Verfügung stehende Synthese-Tool.
Gegenstand dieser Vorlesung ist das Erlernen von VHDL in der Anwendung, einfache Schaltungen auf eine FPGA-Zielarchitektur zu bringen.
56
Funktion der Hardwarebeschreibungssprache
• Macht die Komplexität heutiger Systeme beherrschbar• Manueller Entwurf fehleranfällig• Simulation des Gesamtsystems zu rechenaufwendig• Entwurfsaufgaben können auf meherere Personen verteilt werden• Wiederverwendung von bestehenden Entwürfen wird unterstützt
• Kann zum Datenaustausch dienen• Auftraggeber und –nehmer• Entwickler im selben Entwurfsteam• Zwischen verschiedenen Ebenen des Entwurfs• Zwischen unterschiedlichen Tools verschiedener Hersteller
• Kann der Dokumentation dienen• Lebensdauer des Systems höher als Zugriffszeit auf Entwickler• Erleichtert Wiederverwendung bei Modifikationen im Entwurf• Erleichtert Wiederverwendung bei Technologiewechsel• Garantiert Konsistenz in der Dolumentation