Algorithmen testen

Matlab-Prototypen für FPGA-Systeme

30. Juni 2017, 13:30 Uhr | Von Oliver Bründler
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Frühzeitige Tests von einzelnen Schaltungsteilen

Matlab-Prototypen können aber nicht nur genutzt werden, um das FPGA-System als Ganzes zu analysieren und Parameter zu optimieren. Vielmehr helfen sie dabei, Entwicklungs-, Debugging- und Qualitätssicherungsprozesse effizienter zu gestalten und den Applikationsspezialisten direkt, ohne Umweg über die FPGA-Implementierung, in diese Prozesse einzubeziehen.

Problematisch ist bei vielen FPGA-Systemen, dass kaum sinnvolle Daten aufgezeichnet werden können, bevor das Gesamtsystem fertig entwickelt ist. Selbst wenn diese Möglichkeit besteht, entpuppt sich die Aufzeichnung und Auswertung der Daten oft als relativ aufwendig und unhandlich. Ein Testlauf umfasst normalerweise das Berechnen neuer Parameter in Matlab, das Exportieren der Parameter in eine Test-Applikation, die mit dem FPGA kommuniziert (üblicherweise werden hierzu Textdateien benutzt), das Importieren der aufgezeichneten Daten in Matlab (auch hier oft über Textdateien) und letztendlich die Analyse. Dieser Vorgang ist nicht nur zeitaufwendig, sondern auch fehleranfällig, da Text-Dateien nur allzu leicht vertauscht werden können.

Frühzeitiger Test einzelner Schaltungsteile. Was bereits auf dem FPGA implementiert ist, wird auf der Hardware ausgeführt, der Rest in Matlab
Bild 3. Frühzeitiger Test einzelner Schaltungsteile. Was bereits auf dem FPGA implementiert ist, wird auf der Hardware ausgeführt, der Rest in Matlab.
© Enclustra

Ein Matlab-Prototyp erlaubt es dagegen, einzelne Schaltungsteile nach und nach auf dem FPGA in Betrieb zu nehmen und die noch nicht implementierten Teile der Verarbeitung direkt in Matlab auszuführen (Bild 3). Dadurch lassen sich Auswirkungen von implementierungsbedingten Änderungen (z.B. Quantisierung) auf das Gesamtsystem einfach und schnell analysieren und auftretende Probleme können frühzeitig erkannt und behoben werden. Auf diese Weise reduziert sich das Risiko für eine lange und aufwendige Fehlersuche am Ende des Projektes. Da der Prototyp direkt aus Matlab angesprochen wird, können auch alle Parameter wie beispielsweise Filterkoeffizienten einfach in Matlab berechnet werden. Die so eingesparte Zeit kann für mehr Testläufe und damit eine bessere Testabdeckung verwendet werden.

Eingrenzen von Fehlerquellen

Gerade in der sehr Matlab-lastigen Domäne der Signalverarbeitung sind Fehler nicht immer einfach erkennbar. Der FPGA-Implementierungsspezialist kann zwar wohl Daten an diversen Stellen innerhalb des FPGA aufzeichnen, aber ob diese korrekt sind oder vielleicht in einem bestimmten Frequenzbereich zu viel Rauschen aufweisen, ist für ihn ohne Hilfe des zuständigen Applikationsspezialisten nicht erkennbar. Der Applikationsspezialist hingegen kann üblicherweise nicht auf interne Signale des FPGA zugreifen.

FPGA-Prototypen erlauben es dem Applikationsspezialisten hingegen, mit minimalem Zusatzaufwand auf diverse interne Signale zuzugreifen. So kann er die Fehlerquelle relativ schnell eingrenzen. Als sehr angenehm erweist sich dabei der direkte Zugriff auf die umfassenden Analysefunktionen von Matlab, da diese dabei helfen können zu entscheiden, ob ein Signal sich wie erwartet verhält. Der FPGA-Spezialist wird zur exakten Lokalisierung und Behebung des Fehlers zwar nach wie vor benötigt, allerdings nur noch für einen sehr kleinen und klar eingegrenzten Teil der Schaltung.

FPGA-Implementierung – Make or Buy?
Da FPGAs in immer mehr Anwendungsbereiche vordringen, sind viele Entwickler gezwungen, sich mit der Materie auseinanderzusetzen. Eine Auslagerung der FPGA-Implementierung an einen Dienstleister wird oft als schwierig betrachtet, da dieser zwar vertieftes Wissen im Bereich FPGA hat, aber oftmals kaum Applikations-Know-how mitbringt. Dank Matlab-Prototypen können Kunden (Applikations-spezialisten) und Dienstleister (Implementierungsspezialisten) auch in dieser Situation effizient und risikoarm zusammenarbeiten. So wird Outsourcing in vielen Bereichen realistisch und effizient, was den Umstieg auf die neue Technologie deutlich vereinfacht.

 

Schnelle Regressionstests

Bei der Entwicklung von Embedded-Software werden Unit Tests normalerweise auf Desktop-PCs ausgeführt, da diese über mehr Rechenleistung verfügen. So laufen die Tests normalerweise sogar schneller ab als die reale Implementatierung auf dem Zielprozessor. Im Gegensatz dazu laufen Simulationen von FPGA-Designs um ein Vielfaches langsamer ab als das reale System. Die Simulation von einigen Millisekunden kann unter Umständen Stunden in Anspruch nehmen, was beispielsweise die sinnvolle Ausführung von Test-Suiten vor jedem Release unmöglich macht.

Auch hier können Matlab-Prototypen Abhilfe schaffen: In Matlab erzeugte und schon während des Algorithmus-Designs verwendete Daten können einfach an das FPGA übertragen und die Resultate aufgezeichnet werden. Die aufgezeichneten Daten können dann mit den Resultaten der Matlab-Simulation verglichen werden, um zu überprüfen, ob die Performance im erwarteten Bereich liegt (Bild 4). Dass die tatsächliche Implementierung des Algorithmus anstelle einer Simulation verwendet wird, führt neben den Vorteilen in Bezug auf die Geschwindigkeit auch dazu, dass mögliche Synthese-Fehler oder andere in der Simulation nicht abgebildete Effekte ebenfalls mitgetestet werden.

Regressions-Test-Setup für Matlab-Prototypen
Bild 4. Regressions-Test-Setup für Matlab-Prototypen.
© Enclustra

Bessere Software-Qualität dank Matlab-Prototypen

Die beschriebenen Beispiele zeigen deutlich, dass Matlab-Prototypen nicht nur die einfache Analyse eines kompletten FPGA-Designs ermöglichen, sondern auch dabei helfen, Applikationsspezialisten früher und direkter in den Entwicklungsprozess einzubeziehen. Das Risiko für Fehler, die lange Zeit unentdeckt bleiben und dadurch am Ende des Projektes hohe Kosten verursachen, kann so drastisch reduziert werden und die Erfahrung zeigt, dass die ständige Mitarbeit der Applikationsspezialisten auch zu qualitativ besseren Endergebnissen führt.

 

Der Autor

 

Oliver Bründler
schloss sein Studium in Elek¬tro- und Informations-Technologie an der FHNW in Brugg/Windisch im Jahr 2009 ab. Seitdem ist er als FPGA-Design-Ingenieur und Projektleiter bei der Enclustra GmbH tätig und beschäftigt sich schwerpunktmäßig mit digitaler Signalverarbeitung. Zusätzlich ist er seit 2014 Produktmanager für den Universal Drive Controller IP Core.

 


  1. Matlab-Prototypen für FPGA-Systeme
  2. Abgeschirmt von der Implementierung
  3. Frühzeitige Tests von einzelnen Schaltungsteilen

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Enclustra GmbH

Weitere Artikel zu Mikrocontroller

Weitere Artikel zu Entwicklungswerkzeuge

Weitere Artikel zu Programmierbare Logik-ICs