HDL Coder


Hauptmerkmale

  • Zielunabhängiger, synthetisierbarer VHDL- und Verilog-Code
  • Codegenerierungs-Unterstützung für MATLAB-Funktionen, System Objects und Simulink-Blöcke
  • Endliche Mealy- und Moore-Zustandsautomaten und Steuerung logischer Implementierungen mithilfe von Stateflow
  • Workflow Advisor für die Programmierung von Xilinx und Intel FPGAs und Entwicklungsplatinen
  • Gemeinsame Nutzung von Ressourcen und Retiming bei Area-Speed-Kompromissen
  • Code-to-Model- und Model-to-Code-Rückverfolgbarkeit für DO-254
  • Integration von Legacy-Code
Generieren von HDL-Code aus MATLAB oder Simulink mit HDL Coder. Sie können synthetisierbaren VHDL- und Verilog-Code aus MATLAB-Funktionen, Simulink-Modellen oder einer Kombination der beiden generieren.

HDL-Codegenerierung

Mit HDL Coder können Sie synthetisierbaren HDL-Code für FPGA- und ASIC-Implementierungen in nur wenigen Schritten generieren:

  • Modellieren Ihres Entwurfs mithilfe einer Kombination von MATLAB-Code, Simulink-Blöcken und Stateflow-Diagrammen.
  • Optimieren von Modellen, um Area-Speed-Entwicklungsziele zu erfüllen.
  • Generieren von HDL-Code mithilfe des integrierten HDL Workflow Advisor für MATLAB und Simulink.
  • Verifizieren des generierten Programmcodes mit HDL Verifier™.

HDL Coder generiert lesbaren, rückverfolgbaren und synthetisierbaren VDHL- oder Verilog HDL-Code.


Rückverfolgen und Dokumentieren von HDL-Code

HDL Coder generiert lesbaren VHDL- und Verilog-Code unter Wiederverwendung der Namenskonventionen Ihrer MATLAB- und Simulink-Funktionen und -Blöcke. Bei der Generierung von HDL-Code können Sie einen Rückverfolgbarkeitsbericht erstellen. Bei diesem handelt es sich um einen HTML-Bericht, der vom generierten HDL-Code zurück auf die ursprüngliche MATLAB- oder Simulink-Quelle verweist.

Für Workflows mit hoher Integrität, wie etwa DO-254, können Sie den Rückverfolgbarkeitsbericht des HDL Coder mit Simulink-Requirements kombinieren, um von Ihrem HDL-Code auf die Systemanforderungen, aus denen dieser entstanden ist, rückzuschließen.

HDL Coder generiert VHDL- und Verilog-Code, der in der Industrie gebräuchliche Programmierrichtlinien erfüllt, wie etwa RMM oder STARC. Er generiert Skripte zur Code-Analyse anhand von Lint-Tools von Drittanbietern. Sie können den Simulink Model Advisor während der Entwurfsphase nutzen und bei der HDL-Codegenerierung Berichte erstellen, um ungeeignete Konstrukte in Ihrem Entwurf zu identifizieren, sodass Sie Ihre Modelle an diese Richtlinien anpassen können.


Entwurf für die HDL-Codegenerierung ausrichten

Bei der Übertragung von Algorithmen auf Hardware müssen Sie die Algorithmen so ändern, dass diese Bitströme anstatt von Datenblöcken verarbeiten. Zu den typischen Schritten gehören das Verwalten von Datenströmen, das Parallelisieren von Operationen, das Verwalten des Timings von Parallelpfaden und die Vergewisserung, dass die Implementierung die verfügbaren Ressourcen des Bauteils nicht übersteigt.


HDL-optimierte Blöcke und System Objects

HDL Coder unterstützt mehr als 200 Simulink-Blöcke und ermöglicht das Erstellen von HDL-spezifischen Implementierungseigenschaften. Sie können zusätzliche anwendungsspezifische, HDL-optimierte Blöcke verwenden, darunter:


Gleit- und Festkomma-Datentypen

FPGA- und ASIC-Hardware besteht aus festen Ressourcen, sodass Sie die Datenwortlänge anpassen müssen, um den Leistungsanforderungen zu entsprechen und Ressourcen effizient zu nutzen. Dies ist jedoch schwierig, wenn Sie Algorithmen, die unter Verwendung von doppeltgenauer Gleitkomma-Arithmetik entwickelt wurden, in Festkomma-Implementierungen konvertieren und gleichzeitig eine ausreichende mathematische Genauigkeit gewährleisten müssen.

Die native Gleitkommaunterstützung des HDL Coder ermöglicht Ihnen, synthetisierbaren VDHL- oder Verilog-Code direkt aus Simulink-Modellen mit einfacher Genauigkeit zu generieren. So werden Sie schneller zur Übertragung auf FPGAs übergehen können. Auch wenn Sie einen Großteil Ihres Entwurfs in Festkomma-Arithmetik konvertieren, um diesen effizienter einsetzen zu können, können Sie die als native Gleitkommazahlen zu implementierenden Operationen isolieren. Dies ist im Allgemeinen der effizienteste Ansatz für mathematische Gleichungen, die einen hochdynamischen Bereich wie Flussgleichungen, kumulative Verteilungsfunktionen und Zustandsraum-Gleichungen erfordern.

Fixed-Point Designer automatisiert und verwaltet den Festkomma-Konvertierungsprozess.

Er verwendet Simulationsdaten, um Wortlängen und Präzisionsanforderungen für jede Operation in Ihrem Entwurf vorzuschlagen. Die vorgeschlagenen Einstellungen können übernommen oder mit benutzerdefinierten Einstellungen überschrieben werden.

HDL Coder enthält Optionen, die sich optimal für die von Ihnen benötigten Datentypen eignen. Fixed-Point Designer automatisiert den Festkomma-Konvertierungsprozess. HDL Coder generiert anbieterunabhängigen HDL-Code mit nativem Gleitkomma und wendet diesen auf anbieterspezifische harte oder weiche Gleitkomma-IP-Blöcke an.


Ressourcen zum Einstieg

Um mit der Anpassung Ihres Algorithmus an die HDL-Codegenerierung zu beginnen, laden Sie den HDL Coder Evaluation Reference Guide herunter.

Wenn Sie keine Erfahrung mit FPGA-Design haben, erfahren Sie im Kurs DSP for FPGAs (DSP für FPGAs) alle Vorteile, die sich in Bezug auf die Hardware-Implementierung ergeben, wenn verschiedene Signalverarbeitungsalgorithmen auf FPGA-Bausteinen bereitgestellt werden. Außerdem können Sie aus einer Vielzahl von Angeboten unseres Consulting Service wählen – von der Implementierung HDL-kompatibler Entwürfe bis hin zur Hilfestellung bei der Vorgehensweise..


HDL-Code-Optimierung

Unabhängig davon, ob Sie Ihren Code auf Hardware für die Prototypenentwicklung oder für die Serienfertigung übertragen möchten, hilft Ihnen HDL Coder dabei, diesen zu optimieren. Seine verschiedenen Optimierungsoptionen arbeiten automatisch oder unter Ihrer Aufsicht. Um die Taktfrequenz Ihres Entwurfs zu erhöhen und dessen Funktionalität zu bewahren, fügt HDL Coder Pipelinestufen ein und verteilt diese, während er Parallelpfade ausgleicht. Zur Reduzierung des Platzbedarfs und Energieverbrauchs Ihres Entwurfs kann HDL Coder parallele Strukturen in serielle Strukturen konvertieren und Ressourcen freigeben. Viele der HDL-kompatiblen Blöcke und System Objects, wie etwa Filter und mathematische Operationen, verfügen über Anpassungsoptionen.

Durch die Anpassung Ihres Entwurfs auf der Architekturebene können Sie die Auswirkungen, die bestimmte Vorgehensweisen wie etwa Vektorenverarbeitung, Überabtastung und Region-of-Interest-Verarbeitungen auf die Geschwindigkeit und Größe Ihres Entwurfs haben, genauer erfassen. Das bedeutet, dass sie Code generieren können, der qualitativ hochwertiger als der manuell erstellte HDL-Code ist, da Sie die Möglichkeit haben, ein breiteres Spektrum an Lösungen zu untersuchen.

Nokia verbessert die FPGA- und ASIC-Qualität durch diese Art der Erkundung und Optimierung.

Optimizing at the architectural level allows you to more broadly explore implementation options.


FPGA-Prototyping

Entwickler verwenden HDL Coder häufig, um Anwendungen auf FPGA-Hardware für deren Validierung unter realen Echtzeit-Bedingungen zu testen. Die Übertragung eines FPGA- oder SoC-Bausteins auf eine Platine setzt voraus, dass die Inputs und Outputs des Modells den bauteil- und platinenspezifischen Schnittstellen zugeordnet sind. HDL Coder verfügt über integrierte Targets, um gebräuchliche FPGA-Prototypen-Systeme automatisch zu konfigurieren.

Prototype on a Xilinx Zynq-7000 All Programmable SoC board with an RF FMC card or PicoZed SDR to test your design using live over-the-air signals.


Hardware-Supportpakete

Um das Setup und die Übertragung gebräuchlicher Entwicklungskits von Xilinx® und Intel® (früher Altera) zu automatisieren, können Sie für Ihre Bauteilfamilie das HDL Coder Hardware Support Package herunterladen.

Sie können ebenfalls anwendungsspezifische Hardware-Supportpakete herunterladen, die Sie beim Einsatz von FPGAs in Software-defined Radio (SDR), Motorsteuerung sowie Bildverarbeitung unterstützen.


Echtzeit-Simulation und -Tests mit Simulink Real-Time und Speedgoat-FPGA-Technologie

Für eine rasche Prototypenentwicklung von Steuerungen, DSP, Vision-Systemen und Anlagensimulationsprojekten mit HIL-Simulation (Hardware-in-the-Loop) benötigen Sie häufig FPGAs, um kurze Latenzzeiten und schnelle Berechnungen zu erzielen. Simulink Real-Time, stellt – gemeinsam mit programmierbaren FPGA-I/O-Modulen von Speedgoat – eine Plattform mit kurzer Latenzzeit für Anwendungen, die mehrere hundert I/O-Leitungen benötigen, bereit. Durch die Nutzung der integrierten Eigenschaften in HDL Workflow Advisor können Sie die Übertragung von FPGA-I/O-Modulen automatisieren. HDL-Codegenerierung mit nativer Gleitkommaunterstützung vereinfacht die Übertragung von FPGA, besonders bei Operationen mit hochdynamischem Bereich. Dank der integrierten Protokollierung, Überwachung und Echtzeitoptimierung der Daten können Sie schnell Iterationen an Ihren Entwürfen durchführen und diese debuggen.


Übertragung auf serienmäßige FPGA, SoC oder ASIC

Wenn Sie bereit für die Übertragung Ihres Entwurfs auf ein serienmäßiges Bauteil sind, bietet HDL Coder vielseitige Optionen zur Zuordnung des Inputs und Outputs (I/O) auf Chip-Ebene. Sie können ebenfalls „System-on-Chip“-Schnittstellen zuordnen, die häufig für Hardware-Software-Implementierungen verwendet werden.

Sie können mit Ihren Schnittstellen auf Platinenebene einen benutzerdefinierten Referenzentwurf festlegen und diesen mit HDL Coder registrieren. Während der HDL-Codegenerierung können Sie diesen als Ziel auswählen und festlegen, wie Ihre Entwurfs-I/O anderen Elementen auf und außerhalb der Platine oder AXI-Schnittstellen, wie etwa Speicher-Controllern oder Systembussen, zugeordnet wird.

Um ein Subsystem für ein FPGA oder ASIC SoC zu generieren, können Sie das Target des IP-Core-Generation-Workflows dazu verwenden, die entsprechenden Ports den I/O auf Chip-Ebene oder einer Vielzahl von AXI-Interconnect-Protokollen, einschließlich AXI4, AXI4-Lite, AXI4-Master und AXI4-Stream, zuzuordnen.

Sie können HDL Coder verwenden, um eine Vielzahl von Anwendungen für die Serienfertigung bereitzustellen. Beispiele:

Map algorithm inputs and outputs to board-level or AXI bus interfaces for production deployment.


HDL-Codeverifizierung

HDL Coder generiert VHDL- und Verilog-Testbenches für die schnelle Verifizierung des generierten HDL‑Codes. Sie können eine HDL-Testbench mithilfe einer Vielzahl von Optionen, die Impulse auf den HDL-Code anwenden, spezifisch anpassen. Außerdem können Sie Skriptdateien erstellen, um die Kompilierung und Simulation Ihres Codes in HDL-Simulatoren zu automatisieren.

HDL Coder generiert zusammen mit HDL Verifier automatisch zwei Arten von Kosimulationsmodellen:

  • HDL-Kosimulationsmodell für die Durchführung der HDL-Kosimulation mit Simulink und einem HDL-Simulator wie z. B. Cadence Incisive oder Mentor Graphics ModelSim und Questa
  • FPGA-in-the-Loop (FIL)-Kosimulationsmodell für die Verifizierung Ihrer Entwicklung mit Simulink und einer FPGA-Entwicklungsplatine

Testbench-Generierung oder Kosimulation mit einem EDA-Simulator oder FPGA-Entwicklungskit.


Integration von HDL-Codegenerierung in Model-Based Design

Model-Based Design verknüpft Anforderungen, Systementwurf, Implementierung und Tests. Dieser Ansatz ermöglicht Ihrem Entwicklungsteam eine effiziente Zusammenarbeit. Wenn Sie den auf die Hardware zu übertragenden Teil Ihres Entwurfs partitionieren, können Sie die Infrastruktur und Tests Ihrer Verifizierung auf Systemebene wiederverwenden. Sie können Ihr Modell verfeinern, um Details zur Hardware-Implementierung und Festkomma-Quantisierung hinzuzufügen. Model-Based Design bietet eine vollständige Unterstützung bei der Versionskontrolle und -rückverfolgung.

Allegro MicroSystems verwendet Model-Based Design zum Entwurf und zur Implementierung von Mixed-Signal-ASIC.

Ein Model-Based-Design-Workflow zur Verfeinerung von algorithmischen Entwürfen auf eine Festkomma-Hardware-Implementierung. Sie können aus dieser Implementierung Modelle generieren und diese für nachfolgende Abläufe verwenden.