Xilinx FPGAs und Zynq SoCs

Modellierung, Verifikation und Programmierung Ihrer Algorithmen auf Xilinx- Geräten

Fachexperten und Hardware-Ingenieure nutzen MATLAB® und Simulink® zur Entwicklung von Prototypen- und Produktionsanwendungen und zur nachfolgenden Bereitstellung auf FPGAs und Zynq®-SoCs von Xilinx®.

Mit MATLAB und Simulink ist Folgendes möglich:

  • Modellierung der Hardware-Architektur auf Systemebene
  • Programmierung Ihrer FPGAs oder SoCs, ohne Code schreiben zu müssen
  • Simulation und Debugging von FPGAs und SoCs mit MATLAB- und Simulink-Produkten
  • Generierung von Produktionscode in HDL und C für die FPGA- oder SoC-Integration

„Wir haben zwar umfangreiche Erfahrung auf unserem Gebiet, aber nur wenig Erfahrung mit der FPGA-Integration. Mit Simulink und HDL Coder konnten wir uns voll auf den Entwurf intelligenter Algorithmen für unser Produkt konzentrieren anstatt darauf, wie diese Algorithmen auf einem bestimmten FPGA ausgeführt werden.“

Boris Van Amerongen, Orolia

Nutzung von MATLAB mit FPGAs und Zynq-SoCs von Xilinx

Modellierung und Simulation

Mit Simulink für das Model-Based Design lasst sich die Entwicklungszeit von Anwendungen für FPGAs und Zynq-SoCs von Xilinx verkürzen, indem die Hardware-Implementierung auf einer hohen Abstraktionsebene modelliert und dann im Systemkontext simuliert wird. Sie können etwa zur effizienteren Ressourcennutzung Festkomma-Quantisierungen vornehmen oder zur einfacheren Programmierung von FPGAs synthetisierbaren nativen Gleitkomma-HDL-Code generieren.

Für Anwendungen wie die Signalverarbeitung, drahtlose Kommunikation, Motorsteuerung und Leistungsregelung sowie die Bild-/Videoverarbeitung generiert der HDL Coder™ aus HDL-fähigen Simulink- und MATLAB-Funktionsblöcken direkt synthetisierbaren VHDL®- oder Verilog®-Code.

Der Xilinx System Generator for DSP und der Xilinx Model Composer ergänzen Simulink um Xilinx-spezifische Blöcke für die Simulation auf der Systemebene und die Bereitstellung auf Hardware. System Generator-Blöcke lassen sich zudem zur Generierung von HDL-Code mit nativen Simulink-Blöcken integrieren.

Mit dem SoC Blockset™ können Sie die Interaktion zwischen Hard- und Software für Zynq UltraScale+ MPSoCs und RFSoCs analysieren und beispielsweise die Speicherauslastung und durch das Scheduling oder das Betriebssystem auftretende Effekte untersuchen.

Gleitkomma- und Festkomma-Operationen nebeneinander im gleichen Entwurf. Diese trigonometrische Berechnung wurde mit den mitgelieferten Ressourcen für Xilinx-FPGAs als Gleitkomma-Operation implementiert.


Prototyp einer drahtlosen Anwendung, die auf einem Xilinx Zynq-SoC als SDR-Plattform ausgeführt und mit MATLAB und Simulink analysiert wird.

Prototyping auf FPGA- und Zynq-SoC-basierten Plattformen

Für den Einstieg in das Prototyping können Sie Support-Pakete zum Targeting vorkonfigurierter Testplattformen mit Xilinx FPGAs und Zynq-SoCs herunterladen. Die Möglichkeiten reichen von Software-Defined Radio mit Over-the-Air-Übertragung über die Steuerung von BLDC-Motoren und die Video- und Bildverarbeitung mit Live-Feeds von Kameras bis zur Inferenzverarbeitung mit Deep-Learning. Der HDL Coder führt Sie anschließend direkt in Simulink durch die einzelnen Schritte zur Programmierung Ihres FPGAs oder SoCs, ohne dass Sie dazu auch nur eine Zeile HDL-Code schreiben müssen.

Zum Debugging von FPGAs direkt aus MATLAB und Simulink heraus stehen verschiedene Techniken zur Verfügung. Sie können IP einfügen, mit dem Sie: AXI-Register lesen und schreiben sowie große Signal- oder Bilddateien zwischen MATLAB und On-Board-Speicherplätzen austauschen; Daten interner Signale des FPGA erfassen und in MATLAB analysieren; oder ihren Algorithmus auf einem Evaluierungskit testen können, das zusammen mit Ihrer MATLAB- oder Simulink-Testbench als FPGA-in-the-loop läuft.


Generierung von HDL und IP-Cores zur Produktionsintegration

Die meisten Blöcke, die eine HDL-Codegenerierung unterstützen, verfügen über HDL-Blockeigenschaften, mit denen Sie individuelle Optionen für die Hardware-Implementierung wie Pipelining, Resource Sharing und RAM Mapping festlegen können. In den Einstellungen für die HDL-Codegenerierung können Sie Optimierungen, Reset-Stile, Clock-Enables, Namenskonventionen und vieles mehr global anpassen. Zusammen mit der Fähigkeit, Implementierungs-Architekturen in Simulink zu entwerfen, haben Sie die volle Kontrolle über die Geschwindigkeits- und Flächenoptimierung für Xilinx-FPGAs und Zynq-SoCs.

Sie können lesbares, synthetisierbares RTL zur Integration mit dem nicht-algorithmischen Inhalt in Vivado® generieren. Wenn Sie das HDL Coder Support-Paket für Zynq installieren, können Sie damit einen IP-Core-Wrapper erzeugen, der verschiedene AXI-Protokolle zur Kommunikation mit dem ARM®-Prozessor und anderem Geräte-IP nutzt. Mit dem Embedded Coder® Support-Paket für Zynq können Sie die Treiber- und Anwendungssoftware für die Programmierung des ARM-Anwendungsprozessors erzeugen.

Berichte aus generiertem HDL und IP-Cores. Der IP Core Generation Report enthält das Mapping der Design-Inputs und -Outputs auf die AXI-Register und -Protokolle.


Hier wurde ein individueller Referenzentwurf mit einem Platzhalter mit I/O-Mappings definiert, in den Sie HDL-Code generieren können.

Erweiterung der unterstützten Target-Plattformen

Wenn Sie Code auf FPGA- oder SoC-basierten Plattformen bereitstellen müssen, für die es kein Support-Paket von MathWorks gibt, können Sie selbst ein Referenzdesign erstellen oder herunterladen und es in den HDL Coder laden. Solche Referenzentwürfe lassen sich mit dem SoC Blockset oder Vivado entwickeln. Im File Exchange finden Sie außerdem von Drittanbietern bereitgestellte Referenzentwürfe für FPGA- oder SoC-basierte Plattformen von Xilinx, etwa von Analog Devices®, Avnet®, Speedgoat und Trenz Electronics.