Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
www.tu-ilmenau.deTechnische Universität Ilmenau
Technische Universität IlmenauFakultät für Informatik und AutomatisierungFachgebiet Rechnerarchitektur und Eingebettete Systeme www.tu-ilmenau.de/ra
Msc. Dipl.-Ing. Irina Gushchina, Dr.-Ing. Bernd Däne, Dipl.-Ing. Alexey Moskalev, Prof. Dr.-Ing. habil. Wolfgang Fengler
{irina.guschtschina, bernd.daene,wolfgang.fengler}@tu-ilmenau.de
Untersuchung zur FPGA-Implementierung
von Mess- und Regelungsalgorithmen
Abstract: Dieser Beitrag präsentiert verschiedene Varianten des Entwurfs und der Implementierung eines Algorithmus unter
Berücksichtigung einer aufgrund der Anwendung notwendigen hohen Leistungsfähigkeit und des geforderten Echtzeitverhaltens. Reine
Software-Realisierungen (z.B. auf einem Universalprozessor) können häufig die erforderlichen Leistungsparameter nicht erzielen.
Deswegen werden Varianten zur Implementierung auf einem FPGA betrachtet, die mit Fließkomma-Arithmetik realisiert sind und auch eine
struktur- und steuerflussorientierte Optimierung benötigen.
Motivation
Schnittstelle zuMesswerterfassung
Schnittstelle zuBedienrechner
Schnittstelle zuBildbasierter Sensorik
Schnittstelle zuAntrieben
integrierteAblaufsteuerung
Messwert-vorverarbeitung
Regelung
Sensordaten-verdichtung
Komplexes Regelungssystem für ein hochpräzises Mehrkoordinaten-
Positionierungssystem
Projekt des DFG-Sonderforschungsbereichs „Nanopositionier- und Nanomessmaschinen“
Der aufwendigste Teil des Regelungsalgorithmus ist ein modifizierter Kalman-Filter, der als nichtmodellbasierter Reibungsschätzer dient und über den die Reibungskompensation für den geregelten Bewegungsvorgang realisiert wird.
Industrielle Informationsverarbeitungssysteme
mit eingebetteten Universalprozessoren und mehreren FPGA-Modulen (PXI-Systeme von National
Instruments)
Untersuchung zur FPGA-Implementierung
Der Kalman-Filter-Algorithmus enthält zahlreiche Matrixoperationen und einige Vektoroperationen in Fließkomma-Arithmetik. Insgesamt ergeben sich 208
Additionen, 280 Multiplikationen, 17 Subtraktionen und eine Division.
Implementierung von Fließkomma-Arithmetik auf FPGAs Optimierte FPGA-Implementierung
ŸVerwendung von kommerziellen Komplettlösungen ( )
ŸLösungen auf Basis von IP-Cores der FPGA-Hersteller
Ÿmit zusätzlichen freien VHDL-Bibliotheken
hohe Kosten
IP-Core von Xilinx
VHDL-Bibliothek
kombinatorisch
VHDL-Bibliothek
pipelined Slices F/F LUTs DSP Ticks Slices F/F LUTs DSP Ticks Slices F/F LUTs DSP Ticks
Addition 4,7% 4% 3% 0% 6 4,8% 1,9% 4,1% 0% 2 4,5% 2,9% 3,7% 0% 4
Multipl.:
ohne DSP 7,3% 6,7% 6% 0% 6 - - - - - - - - - -
mit DSP 3,3% 2,6% 2% 19% 8 * 3,1% 1,9% 2,3% 32% 2 3,1% 2,2% 2,2% 32% 4
Subtrak. 4,4% 3,1% 3,5% 0% 6 4,9% 1,9% 4,1% 0% 2 4,6% 2,9% 3,7% 0% 4
Division 8,6% 6,1% 7,5% 0% 14 * - - - - - 12% 11% 8,3% 0% 30
Testergebnisse aus zahlreichen LabVIEW-Realisierungen der benötigten Operationen (doppelte Genauigkeit). Dargestellt sind der relative Ressourcenverbrauch im FPGA (bezogen auf Virtex-5-LX85) und die Latenzen bei der Ausführung (in „Ticks“-Takten). Die Taktfrequenz betrug jeweils 80 MHz, außer für die beiden mit * gekennzeichneten Fälle (hier 120 MHz)
Die Untersuchung von unterschiedlichen Optimierungsvarianten wurde mit Hilfe des
modellbasierten Entwurfes durchgeführt:
1) Strukturoptimierung des Algorithmus: Eliminieren von Multiplikationen mit
Null oder Eins und von Additionen mit Null (für Kalman-Filter auf 90 Mul, 85 Add,
1 Sub, 1 Div)
2) Effizienter Ressourcenverbrauch: mehrfache Verwendung von gleichen
Ressourcen. Deswegen muss man lokale Steuerflüsse erzeugen, die jeweils
Sequenzen für die Verwendung des gleichen Hardware-Elements an
unterschiedlichen Stellen des Berechnungsweges realisieren, ohne dass die
Parallelisierung von Teilen des Algorithmus dabei ausgeschlossen wird.
inte
rne
K
om
mu
nik
ati
on
&
Syn
ch
ron
isati
on
Elementweise Realisierung ohne Hardware-Scheduling (jede Instanz des Knotens wird durch eigene Ressourcen implementiert)
Optimierte elementweise Realisierung mit Hardware-Scheduling (jede Instanz kann
dieselben Ressourcen benutzen)
Im Fall der betrachteten Kalman-Filter-Implementierung ist eine weitere Optimierung
nötig (mit Hardware-Scheduling, nicht elementweise sondern mit Schleifen): 17 Add (5 auf FPGA platziert), 17 Mul (2 mit DSP und
2 ohne platziert), 2 Sub (1 platziert), 1 Div. Alle Operationen auf Basis von IP-Cores
von Xilinx.
Performance/Vergleich von unterschiedlichen Varianten des Entwurfs und der Implementierung
Ÿ
Ÿ
Bei der Berechnung durch einen Universalprozessor (RT-Controller) ist die Ausführungszeit jitterbehaftet und die Kommunikation zum FPGA-Modul erfordert
.
Platzoptimierte Umsetzung benötigt etwa 70% und zeitoptimierte Umsetzung etwa 90% von FPGA-Ressourcen
(etwa 30 µs)
Zusammenfassung und Ausblick: Auf Grund des Fehlens von nativer Fließkomma-Arithmetik erwies sich die Entwicklung auf FPGAs als komplexes Problem. Die FPGA-Implementierungen benötigen eine steuerflussorientierte Optimierung und eine Betrachtung des Ressourcenverbrauchs. Die Realisierung und Weiterentwicklung verschiedener Varianten ermöglichte eine vergleichende Betrachtung bei unterschiedlicher Ausführung der Optimierung. Ein wichtiges Ergebnis ist die Anwendung von Softcore-Prozessoren, die auch mit Hardware-Implementierungen kombiniert werden können.