Matlab FPGA: Modellbasierte Lösungen

FPGA Verifizierung in MATLAB-Umgebung

Mit dem System in the Loop-Tool von Intel können Sie Ihr FPGA-Design in Echtzeit aus einer MATLAB-Umgebung ausführen. Die Fähigkeit, in Echtzeit zu arbeiten, kann für Algorithmen mit hohen Verarbeitungsraten entscheidend sein. Herkömmliche MATLAB-Simulationen für solche Algorithmen können zu langen Rechenverzögerungen führen. Das System in the Loop-Tool, das mit dem DSP Builder für Intel® FPGAs-Tools geliefert wird, ermöglicht Ihnen die Beschleunigung komplexer, hochratiger digitaler Fest- oder Gleitkomma-Signalverarbeitung (DSP) in FPGA-Hardware. Mit diesem Tool können Sie auch Ihre FPGA-Designs steuern, debuggen, visualisieren und verifizieren – alles innerhalb der MATLAB-Umgebung.

Eine Anwendungsprogrammierschnittstelle (API), die von der auf Ihrem Computer ausgeführten MATLAB-Software zur Kommunikation mit dem FPGA-Board verwendet wird, ermöglicht die Verarbeitung von Daten in Echtzeit durch die FPGA-Hardware und nicht durch die MATLAB-Software. Die Parameter- und Stimuli-Daten werden vom MATLAB-Workspace an das FPGA übergeben und die FPGA-Hardware-Ergebnisse werden von der MATLAB-Software zur weiteren Analyse und Anzeige zurückgelesen.

Abbildung 1 zeigt ein Beispiel für die MATLAB-Visualisierung in der Radar- und Beamforming-Verarbeitung.

Abbildung 1. MATLAB-Visualisierung in der Radar- und Beamforming-Verarbeitung

FPGA-Verifizierung in MATLAB mit Intels Debugging-Tools auf Systemebene

System in the Loop ist Teil von Intels Debugging-Tool-Portfolio auf Systemebene, das das Transceiver Toolkit, das External Memory Interface Toolkit sowie allgemeinere Tools wie die Systemkonsole und den Platform Designer (ehemals Qsys) umfasst. Der Platform Designer (ehemals Qsys) verwendet die Avalon® Memory-mapped (Avalon-MM) oder Avalon Streaming (Avalon-ST) Schnittstellen, um Netzwerke in einer Vielzahl von Topologien und Hierarchien aufzubauen.

Die Systemkonsole ist ein Tool, mit dem ein FPGA-Design überwacht und instrumentiert werden kann. Es kann verwendet werden, um Taktvorgänge zu überprüfen oder Netzwerke zurückzusetzen. Es kann auch komplexere Aufgaben ausführen, wie z. B. das Ansteuern spezifischer speicherabgebildeter Zugriffsmuster und das Überprüfen von Antworten. Es ist sowohl für das Heraufholen von Platinen als auch für die Automatisierung von Produktionstests nützlich. Sie können interaktive Dashboards für eine bestimmte Aufgabe erstellen, wie in Abbildung 2 gezeigt.

Abbildung 2. Dashboard der Systemkonsole

Die Systemkonsole kann auch Low-Level-Hardware-Debugging für jeden Platform Designer (früher Qsys) durchführen. Die MATLAB-API ermöglicht den Zugriff auf Funktionsaufrufe über die Systemkonsole, die wiederum den Zugriff auf die FPGA-Hardware ermöglicht. Fünf einfache MATLAB-Befehle werden verwendet, um einen Kommunikationskanal zwischen dem MATLAB-Design und der FPGA-Hardware zu aktualisieren, zu öffnen, zu lesen, zu schreiben und zu schließen.

Die Hardware-Schnittstelle zum FPGA kann über eine Legacy-JTAG-Schnittstelle oder eine USB 2.0-Schnittstelle angeschlossen werden, wie in Abbildung 3 gezeigt. Der USB Debug Master bietet Geschwindigkeiten von bis zu 480 Mbit/s und ermöglicht damit hohe Geschwindigkeiten der beschleunigten Verarbeitung in FPGA-Hardware. Abbildung 4 zeigt, dass Sie die JTAG- oder USB-Signale einfach mit dem Platform Designer (ehemals Qsys) an das zu testende Gerät (DUT) anschließen können.

Abbildung 3: MATLAB zu FPGA Hardware-Protokollstack

Abbildung 4: JTAG- und USB-Debug-Master-Zugriff

In Abbildung 5 wird der DSP Builder für Intel FPGAs (Advanced Blockset) verwendet, um das FPGA-Design zu erstellen. Dieses Tool erstellt hochwertige RTL-Codes (Fest- und Fließkommaregister) mit fMAX und Ressourcennutzung auf Augenhöhe mit der hochoptimierten handcodierten Hardwarebeschreibungssprache (HDL). Sie können auch in traditionellem Verilog oder VHDL entwerfen und dann die Avalon®-Schnittstellen-Ports zu den Schnittstellen hinzufügen, um Ihr Design über den Platform Designer (ehemals Qsys) zu verbinden.

Abbildung 5: Anbindung von FPGA-Design an JTAG oder USB-Debug-Master

Alle FPGA-Ressourcen können mit dem Platform Designer (früher Qsys) verbunden werden und das FPGA-Design wird als Platform Designer (früher Qsys) Komponente hinzugefügt. Siehe Abbildung 6.

Abbildung 6: Design-Plattformdiagramm

Sowohl die Eingangs- als auch die Ausgangsdaten werden auf dem Chip gepuffert, sodass die FPGA-Hardware mit voller Systemgeschwindigkeit über die gepufferten Daten laufen kann. Die in Abbildung 7 dargestellten Schnittstellen sind Avalon-ST Schnittstellen.

Abbildung 7: FPGA-DUT der Spitzenklasse

Das Eingangspuffersystem ist in Abbildung 8 dargestellt. Beachten Sie, dass das Register Trigger verwendet, um Adressen zu schreiben, wenn die Daten mit dem MATLAB-Schreibbefehl geladen werden. Das Ausgabepuffersystem ist dem Eingabepuffersystem ähnlich.

Abbildung 8: System in the Loop-Eingangsdatenpuffer

Danach wird die Designplattform zum Intel® Quartus® Prime Softwareprojekt hinzugefügt und das Design wird kompiliert, wie in Abbildung 9 gezeigt.

Abbildung 9. Hinzufügen von Platform Designer zu Quartus Prime Software Project

Schließlich wird das FPGA mit dem kompilierten Design programmiert. Sie können nun das gesamte System über MATLAB-Befehle steuern, wie in Abbildung 10 gezeigt:

Abbildung 10. Steuerung des FPGA-Systems über MATLAB

Damit Sie Ihre FPGA-Designs noch einfacher überprüfen können, sind einsatzbereite System-in-the-Loop-Designvorlagen für verschiedene Intel FPGA-Entwicklungsboards verfügbar, z. B. für solche mit Stratix® IV-, Stratix® V- und Cyclone® V-FPGAs.