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