SystemVerilog

Einführung in SystemVerilog

SystemVerilog ist sowohl eine Hardware-Beschreibungs- als auch eine Hardware-Verifikationssprache. Sie wird zum Modellieren, Entwickeln, Simulieren, Verifizieren, Testen und Implementieren von Algorithmen oder Systemen für ASICs und FPGAs/SoCs verwendet. SystemVerilog basiert auf der Sprache Verilog mit zahlreichen Erweiterungen und ist seit 2009 Teil desselben IEEE-Standards wie Verilog.

SystemVerilog wird seit Langem für die Entwicklung von RTL-Testbenches verwendet, da es eingeschränkte Zufallsverifikation, Assertions und funktionale Abdeckung sowie objektorientierte Programmierung unterstützt.

Schnellere Entwicklung mit SystemVerilog

MATLAB® und Simulink® werden häufig für die Entwicklung von Algorithmen zur Implementierung in Hardware verwendet. Die automatische Generierung von SystemVerilog HDL aus MATLAB Programmcode und Simulink-Modellen mit HDL Coder™ kann sowohl den Prozess von FPGA/SoC- und ASIC-Entwicklungen beschleunigen als auch die Generierung von RTL-Testbench-Komponenten automatisieren.

SystemVerilog für ASIC- und FPGA-Codegenerierung

HDL Coder ermöglicht High-Level-Design für FPGAs, SoCs und ASICs durch Generierung von portierbarem, synthetisierbarem SystemVerilog-Code aus MATLAB-Funktionen und Simulink-Modellen sowie Stateflow®-Diagrammen. Sie können den generierten HDL-Code für die FPGA-Programmierung, das ASIC-Prototyping und das Produktionsdesign verwenden.

HDL Coder enthält einen Workflow Advisor, der das Prototyping von generiertem SystemVerilog-Code auf ADM®-, Intel®- und Microchip-Boards automatisiert und IP-Cores für ASIC- und FPGA-Workflows generiert. Sie können Geschwindigkeit und Fläche optimieren, kritische Pfade hervorheben und vor der Synthese Schätzungen zur Ressourcennutzung erstellen. HDL Coder sorgt für die Rückverfolgbarkeit zwischen Simulink-Modellen und generiertem SystemVerilog-Code und ermöglicht so die Code-Verifikation für hochintegrierte Anwendungen gemäß DO-254 und anderen Standards.

Das Diagramm zeigt, dass HDL Coder synthetisierbare VHDL-, Verilog- oder SystemVerilog-Dateien aus MATLAB-Funktionen, Simulink-Modellen, Stateflow-Charts und Simscape-Modellen generieren kann.

HDL Coder generiert synthetisierbares SystemVerilog aus MATLAB Programmcode oder Simulink-Modellen.

ASIC- und FPGA-Verifikation mit SystemVerilog-DPI

Das SystemVerilog Direct Programming Interface (DPI) dient als Schnittstelle zwischen einem SystemVerilog-Simulator und fremden Programmiersprachen wie C und ermöglicht die Wiederverwendung von bestehendem C Code in führenden HDL-Simulatoren. Mit HDL Verifier™ können ASIC- und FPGA-Projektteams Verifikationskomponenten direkt aus MATLAB Programmcode und Simulink-Modellen in Form von SystemVerilog-DPI-Komponenten generieren, z. B. Stimulus-, Checkers- und Behavioral Design-under-Test (DUT)-Blöcke.

Aus MATLAB oder Simulink generierte SystemVerilog-DPI-Modelle können auch in bestehende Universal Verification Methodology-Umgebungen (UVM) integriert werden.

Das Diagramm zeigt, dass SystemVerilog-DPI-Dateien für Stimulus, Algorithmus und Checker aus MATLAB oder Simulink generiert werden können.

HDL Verifier generiert SystemVerilog-DPI-Dateien aus MATLAB Programmcode oder Simulink-Modellen.

Erstellung von SystemVerilog-DPI-Testbenches

  • Komponenten-Testbench: Wenn Sie eine C-Komponente aus einem Simulink-Subsystem zur Verwendung als DPI-Komponente generieren, können Sie eine SystemVerilog-Testbench erzeugen. Die Testbench verifiziert die generierte DPI-Komponente anhand von Datenvektoren aus Ihrem Simulink-Modell. (Siehe Generierung einer SystemVerilog-DPI-Komponente.)
  • Testbench für HDL Code: Wenn Sie mit HDL Coder HDL Code aus einem Simulink-Subsystem generieren, können Sie eine SystemVerilog-Testbench in Form eines Vektorensatzes erzeugen. Diese Testbench vergleicht die Ausgabe der HDL-Implementierung mit den Ergebnissen des Simulink-Modells, die bei Simulationsläufen erfasst wurden (siehe HDL-Entwurf mit SystemVerilog-DPI-Testbench verifizieren).

Siehe auch: HDL Coder, HDL Verifier, Entwicklung für FPGAs, ASICs und SoCs, Mixed-Signal-Systeme, Halbleiter, UVM-Verifikation, ASIC-Entwicklung, ASIC-Verifikation