Automatisierung mit Hilfe einer rekonfigurierbaren FPGA...

24
Automatisierung mit Hilfe Automatisierung mit Hilfe einer einer rekonfigurierbaren rekonfigurierbaren FPGA-Hardwareplattform FPGA-Hardwareplattform Prof. Prof. Dr Dr .- .- Ing Ing . Frank Kesel . Frank Kesel Fachhochschule Pforzheim Fachhochschule Pforzheim

Transcript of Automatisierung mit Hilfe einer rekonfigurierbaren FPGA...

Automatisierung mit Hilfe Automatisierung mit Hilfe einer einer rekonfigurierbarenrekonfigurierbaren

FPGA-HardwareplattformFPGA-Hardwareplattform

Prof. Prof. DrDr.-.-IngIng. Frank Kesel. Frank Kesel

Fachhochschule PforzheimFachhochschule Pforzheim

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 2 / 24

Übersicht

n Vom Algorithmus zum Chipn High-Level Synthesen Anwendungsbeispiel

Automatisierungstechnikn Zusammenfassung

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 3 / 24

Realisierung von Algorithmen

n Systementwicklung (z.B. Matlab/Simulink)n Software (µP, DSP)

– Festkomma und Gleitkomma– Programmierung in C und Assembler– begrenzte Parallelisierungsmöglichkeiten

n Hardware (ASIC, PLD)– ASIC aufwändig und unflexibel– FPGA rekonfigurierbar („Co-Prozessor“)– Entwurf mit HDLs (VHDL, SystemC)– hoher Parallelisierungsgrad möglich

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 4 / 24

Integrierte Schaltungen

(IC)

Standard IC

µProzessoren

DSP

Speicher

...

ASIC:Applikations-

Spezifische IC

Semi-Custom-ASIC: teil-vorgefertigte IC, i.d.R. Verdrahtung kundenspezifisch

("Masken-programmierung")

Full-Custom-ASIC: Alle Masken

kundenspezifisch

PLD:programmierbare Logikbausteine

(Programmable Logic Devices), vollständig vorgefertigte Logik-IC, Definition der

applikationsspezifischen Funktion erfolgt durch Programmierung

SPLD: simple PLD

PAL

GAL

...CPLD:

complex PLD

FPGA: Field-Programmable

Gate Array

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 5 / 24

FPGA

n Feine „Granularität“,vergleichbar mit ASIC

n Logikrealisierung durchLUT oder MUX

n Gut geeignet fürregister- und arithmetik-intensive Anwendungen

n Embedded RAMn Embedded µPsn Arithmetik-

Unterstützung(Multiplizierer, etc.)

n Beispiel Virtex-II FPGAvon Xilinx:– „CLB“ / „Slice“: 4-Input-

LUT, MUX, Carry, D-Flipflop (XC2V8000:93.184 LUT/DFF)

– 18kBit Block SelectRAM(XC2V8000: 168 Blöcke)

– 18x18 Bit SignedMultiplizierer (XC2V8000:168 Multiplizierer)

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 6 / 24

FPGAs als Co-Prozessoren

n Rechenintensive digitale Anwendungen:Kommunikationstechnik, Bildverarbeitung,Regelungstechnik

n Grobkörnige Parallelität: z.B. mehrereunabhängige Filterkanäle

n Feinkörnige Parallelität: z.B. „Entrollen“ derinneren Schleifen von Filtern

n Problem: Entwurf der Hardwaren Üblicher Weg: Entwurf mit VHDL auf

Register-Transfer-Ebene (RTL)

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 7 / 24

Algorithmische Beschreibungen

n Anwendung liegt alsalgorithmischeBeschreibung vor(Matlab, C/C++)

n Häufig manuelleUmsetzung in VHDL-RTL-Code (Register-Transfer-Level)

n RTL-Code wird durchLogiksynthese inFPGA/ASIC umgesetzt

int design(int a, int b, int c, int d, int e, int f){

int y;

y = a * b + c + ( d - e ) * f;

return y;}

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 8 / 24

Abstraktionsebenen

Verhalten Struktur

Geometrie

AlgorithmischeEbene

Register TransferEbene

Logikebene

Schaltungs-ebene

Systemebene

Algorithmen

Register Transfers

HLS

Y-Diagrammnach Gajski

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 9 / 24

High-Level Synthese (HLS)

n Automatische Umsetzung vonalgorithmischen Beschreibungen inASIC/FPGA-Hardware („HW-Compiler“)

n High-Level-Synthese (Behavioral Synthesis):z.B. Synopsys BehavioralCompiler, algorith.Beschreibung in VHDL oder SystemC

n Weitere Tools: z.B.Simulink/SystemGenerator(MathWorks/Xilinx), SPW (Cadence),CoCentric System Studio (Synopsys).

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 10 / 24

SystemC CompilerBehavioralCompiler

DesignCompilerFPGACompiler

Hersteller FPGA

Bibliothek

FPGA Netzliste

Place & Route (herstellerspezifisch)

Bitstream-Generierung und Programmierung

ENTITY design IS PORT ( a, b, c, d, e, f : IN integer; y : OUT integer);END DESIGN;

ARCHITECTURE beh OF design ISBEGIN PROCESS ( a, b, c, d, e, f) BEGIN y <= a * b + c + ( d - e ) * f; END PROCESS;END beh;

int design(int a, int b, int c, int d, int e, int f){ int y;

y = a * b + c + ( d - e ) * f;

return y;}

C/SystemC VHDL

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 11 / 24

High-Level Synthese vs. RT-Synthese

ENTITY design IS PORT ( a, b, c, d, e, f : IN integer;

y : OUT integer);END DESIGN;

ARCHITECTURE beh OF design ISBEGIN PROCESS ( a, b, c, d, e, f) BEGIN y <= a * b + c + ( d - e ) * f; END PROCESS;END beh;

RT-Synthese:kombinatorischeLogik mit2 Multiplizierern,2 Addierern und1 Subtrahierer

* +

-

+

*

a

b

d

e

y

c

f

v1

v2

v3

v4

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 12 / 24

Exploration des Entwurfsraums mit HLS

n Untersuchung von Architekturvariantenwelche aus einer algorithmischenBeschreibung erzeugt werden.

n Parallele Architekturen <-> sequentielleArchitekturen

n Kriterien: Ressourcenverbrauch -Rechenleistung - Energieverbrauch

n HLS generiert Datenpfad sowie evtl.benötigtes Steuerwerk und(Zwischen)Speicher

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 13 / 24

HLS (1)

n Extraktion der Datenabhängigkeiten ineinem Datenflussgraphen (DFG).

n Vorgabe von Art und Anzahl derRessourcen („Resource Allocation“).

* +

-+

*

a

b

d

e

y

c

f

v1

v2

v3

v4

int design(int a, int b, int c, int d, int e, int f){

int y;

y = a * b + c + ( d - e ) * f;

return y;}

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 14 / 24

HLS (2)

n Ablaufplanung, in welchem Taktzyklus wirdwelche Operation ausgeführt („Scheduling“).

n Einführen von Registern zur Speicherung vonZwischenergebnissen („Register Allocation“).

* +

-

+

*

a

b

d

e

y

c

f

v1

v2

v3

v4

Taktzyklus 1 2 3

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 15 / 24

HLS (3)

n Bindung der Operationen aus dem DFG zuden Hardwarekomponenten („Binding“).

n Implementierung des Steuerwerks.

s1

s2REG

MUX

MUL

s1

s2

MUX

a

v2

f

b

v1 / v4

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 16 / 24

Beispiel: FIR-Filter

Entwurfmit Matlab

Datenwortbreite 16 Bit, 16 Stufen (Taps)

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 17 / 24

Entwurf mit SystemC / VisualC++

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 18 / 24

FPGA Realisierungen des FIR-Filters

FPGA: Xilinx VirtexII, XC2V250, 3.072 LUTs/1.536 Slices, 24 Multiplizierer

Anzahl der Gatteräquivalente in Abhängigkeit vom Datendurchsatz

0

10000

20000

30000

40000

50000

60000

70000

80000

0 20 40 60 80 100 120 140Datendurchsatz / MSPS

# G

E

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 19 / 24

Anwendung Automatisierungstechnik

n Implementierung von regelungstechnischenAlgorithmen üblicherweise auf SPS

n Sehr schnelle dezentrale Regler auf FPGA-Basis

n Entwurf auf algorithmischer Ebene in VHDLoder SystemC

n „Vorkompilieren“ von Blöcken (z.B. PID-Regler) mit HLS und Verschaltung in einemSchema-Editor

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 20 / 24

BehavioralCompilerDesignCompilerFPGACompiler

Hersteller FPGA

Bibliothek

Blockbibliothek

Place & Route (herstellerspezifisch)

Bitstream-Generierung und Programmierung

Schaltplaneditor

VHDL/SystemCBlockbeschreibung

Matlab

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 21 / 24

FPGA Hardwareplattform

Altera Flex10k70FPGA

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 22 / 24

Beispiel: Dampfmaschinenregelung

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 23 / 24

Projektierung des Reglers

Altera MAX+plusII Schaltplaneditor

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform 24 / 24

Zusammenfassung

n FPGAs können als schnelle(Co-)Prozessoren in der Signalverarbeitungoder Regelungstechnik verwendet werden

n Kurze Entwicklungszeiten durch algorith.Beschreibung in SystemC/VHDL

n Untersuchung verschiedenerRealisierungsvarianten mit Hilfe der High-Level Synthese bezüglichResourcenverbrauch, Rechenleistung undEnergieverbrauch