fpga-entwurf mit vhdl - · pdf file1 fpga-entwurf mit vhdl manfred schimmler institut...

56
1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

Upload: leque

Post on 06-Feb-2018

238 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

1

FPGA-Entwurfmit VHDL

Manfred SchimmlerInstitut für InformatikLehrstuhl Technische InformatikChristian-Albrechts-Universität zu Kiel

Page 2: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-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

Page 3: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu 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

Page 4: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 5: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 6: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 7: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 8: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 9: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 10: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 11: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 12: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

12

Full Custom Entwurf

Page 13: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

13

Full-customASIC-Entwurfsprozess

Funktionale Beschreibung

Floorplanning

Design und Layout

Design Rule Check

Extraktion der Netzliste

Simulation

Maskengenerierung

Fertigung

Test

Electrical Rule Check

Page 14: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 15: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

15

Semi-Custom Entwurf

Page 16: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 17: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 18: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 19: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 20: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 21: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 22: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 23: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 24: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 25: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 26: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 27: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 28: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

28

Realisierung eines Schaltnetzes als PLA mit AND- und OR-Plane

OR-planeAND-Plane&

&

&

Eingaben Ausgaben

Minterme≥1 ≥1 ≥1

Page 29: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

29

Beispiel: Volladdierer als PLA mit AND- und OR-Plane

OR-planeAND-Plane

Minterme1 1 1

x0x1x2

s c

Page 30: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 31: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 32: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

32Beispiel für einen CLB eines XilinX XC3000 FPGAs

Page 33: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

33

Beispiel: Floorplan eines FPGA

CLB

RAM

Pad-Cellen für dieVerbindung nach außen

Verdrahtungskanäle

Page 34: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 35: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 36: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 37: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 38: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

38

Speicher

Multiplizierer

ALU

Befehls-Dekodierung

OP-Muxe

FPUClk

DatenDaten

Daten, Befehle, Selektoren

Daten, Befehle, Selektoren

Page 39: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 40: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

40

VA

≥1

1x

s_mult

ybar

VA

≥1

r_mult

Page 41: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

41

Page 42: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

42

Page 43: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

43

Page 44: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 45: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 46: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 47: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 48: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 49: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

49

Definition

Unter einer Verhaltensbeschreibung eines Bausteins versteht die funktionale Modellierung seines Ein-/Ausgabeverhaltens.

Page 50: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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;

Page 51: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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;

Page 52: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 53: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 54: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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

Page 55: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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.

Page 56: FPGA-Entwurf mit VHDL -   · PDF file1 FPGA-Entwurf mit VHDL Manfred Schimmler Institut für Informatik Lehrstuhl Technische Informatik Christian-Albrechts-Universität zu Kiel

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