mikrocontroller.net

Forum: FPGA, VHDL & Co. Verilog-Simulatiion mit Verilator


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Vancouver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat jemand von Euch schon einmal mit Verilator gerarbeitet? Ich habe 
mich mal ein wenig mit dem Tool beschäftigt und bin recht angetan. Die 
Idee, ein synthetisierbares (System)Verilog-Modell in C++ zu 
transformieren und eine C++-Testbench zu schreiben, finde ich 
interessant. Die Autoren behaupten, dass die Simulation schneller läuft 
als jedes kommerzielle Tool. Zumindest was Modelsim/Questa angeht, kann 
ich das bestätigen für die Modelle, die ich bisher probiert habe.

Es gibt natürlich ein paar Nachteile: Jedes Modul muss als 
synthetisierbarer (System)Verilog-Code vorliegen (ja, obwohl es ein 
Simulationstool ist). Netzlisten, VHDL-Modelle oder verschlüsseltes Zeug 
funktioniert nicht. Auch viele Simulationsmodelle von Xilinx lassen sich 
nicht übersetzen, weil der Code Sprachelemente außerhalb des 
Synthesis-Subsets enthält. Da hilft nur Inference, wo immer es geht (was 
mir persönlich ohnehin lieber ist als generierte IPs aus irgendwelchen 
obskuren Generatoren).
Ich denke, man kann auch Funktionen in C++ implementieren und in die 
Simulation einbinden, falls kein synthetisierbarer Verilog-Core 
verfügbar ist.

Ein paar Klimmzüge erfordern auch Designs mit mehreren Clockdomains, 
aber das funktioniert wohl auch irgendwie, habe ich aber noch nicht 
getestet. VCD-Traces können auch erzeugt werden, ebenso wie die Ausgabe 
von internen Signalzuständen mit printf(). Alle internen Signale des 
Modells sind aus der C++-Testbench über Referenzen zugreifbar.

Verilator ist in aktiver Entwicklung (Version 4.016 ist ein paar Tage 
alt) und wird von den Opensource-HW-Leuten rege verwendet, z.B. in der 
RISC-V-Community.

Anmerkungen, Erfahrungen, Kritik dazu?

Autor: Weltbester FPGA-Pongno (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vancouver schrieb:
> Netzlisten, VHDL-Modelle oder verschlüsseltes Zeug
> funktioniert nicht.

Muss man das noch kommentieren?

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab ein paar (fast)voll Chip Simulatoren damit gemacht. Weil die 
Firmware Entwickler damit besser zu recht kommen als mit einem Verilog 
Simulation. Aber unser Codebase ist synthethisierbar weil es für einen 
ASIC benutzt wird.
Muss du ein bisschen in C oder C++ dazu programmieren und hast was 
brauchbares was nicht post-mortem ist.

Autor: Vancouver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weltbester FPGA-Pongno schrieb im Beitrag #5881192:
> Muss man das noch kommentieren?

Die gleichen Einschränkungen wie bei GHDL: Kein Verilog, keine 
Netzlisten, keine verschlüsselten Cores.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.