Forum: FPGA, VHDL & Co. Coole kombination: Verilator + SDL2


von Oliver D. (unixconf)


Lesenswert?

Hab mal mit Verilator in verbindung mit SDL2 experimentiert:

https://www.youtube.com/watch?v=9ieoWYvkH-g

Die Verbindung zwischen Verilator und dem QT-Testgui wird per 
simulierter SPI-Schnittstelle hergestellt.

Ist alles noch ausbau fähig aber ein schöner weg seinen verilog code zu 
testen :)
von Martin S. (strubi)


Lesenswert?

Wenn du das weiter ausbauen willst (es gibt ja schon einige 
Co-Simulation Frameworks): Elegante Setups per Browser, wie React Flow 
oder NodeRED waeren spannend, auch im Sinne eines klassischen 
SCADA-Designs, wo man in der SVG-Datei die Elemente nur noch mit einer 
Property-ID kennzeichnen muss, damit die virtuelle Hardware sie 
animieren kann. LabVIEW-Anbindung kommt ab und an noch beim Kunden an, 
da ist nur die event-driven Geschichte etwas aufwaendiger, mal abgesehen 
vom 90er-Jahre-Design.

Ansonsten koenntest du noch die CXXRTL-Option evaluieren, damit du 
Verilog und VHDL per yosys unter einen Hut kriegst. Damit habe ich 
einige bewaehrte Setups hinbekommen, um generative RTL wie auch Ausgabe 
auf virtuelle Komponenten (UART, Display, usw.) elegant per Python zu 
verifizieren. Und per Renode-Machine-Frontend laesst sich die HW in der 
Co-Simulation debuggen und das Robot-Framework damit nutzen.
von Oliver D. (unixconf)


Angehängte Dateien:

Lesenswert?

Danke, ist ja im moment nur ne spielerei, hab nun noch eine art bitscope 
mit eingebaut
und ein export für .vcd daten um mir alles genauer in gtkwave 
anzuschauen.

Da die bilder und positionen zu den boards/pins schon vorhanden sind,
muss ich da auch nichts mehr machen, ich kann mir alles generieren 
lassen :)

Aber ja, das mit den 'virtuellen Komponenten' komponenten und so sollte 
ich mir mal anschauen, man muss ja nicht immer das rad neu erfinden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.