Gerne wird vorgeschlagen, für die Simulation GHDL ( ein VHDL zu exe
Compiler ) und gtkwave zum Anzeigen der Waveforms zu benutzen.
Hier gibt es ein Video für Windows:
https://www.youtube.com/watch?v=H2GyAIYwZbw
Es wird eine ältere Version 0.33 runter geladen, für die es eine exe
gibt. Die aktuelle ist aber 0.36
https://github.com/ghdl/ghdl/releases
Welche Installation ist zu empfehlen?
Carl schrieb:> Welche Installation ist zu empfehlen?
die jeweils neueste. GHDL wird aktiv weiterentwickelt und es vergeht
kaum eine Woche, in der nicht ein Bug gefixt oder sonst etwas verbessert
würde.
>die jeweils neueste.
Danke für die Antwort. Bei der neuesten scheint der Compiler nicht dabei
zu sein, so dass er getrennt installiert werden muss.
Ich habe eine Parallelinstallation von mingw in
D:\tools\mingw-w64
Wenn ich mein obiges Batchscript laufen lasse, hat er Probleme beim
"Elaborieren".
Autor: Markus F. (mfro)
>Die -mcode- Version.
Danke, das ist die Lösung.
Damit funktioniert auch die 32bit -mcode Version mit 64 bit mingw.
Jetzt ist noch die Frage, wie man die Batch-Scripte am besten zur
Automatisierung nutzt.
Für gtkwave muss man die vcd-Files nutzen, also
Wenn man mehrere VHDL-Quelldateien hat, sind die -a und -e -Optionen zum
Übersetzen nicht mehr so simpel anzuwenden (weil man die in der
richtigen Reihenfolge absetzen muß). Dann bieten sich die -i und -m
-Optionen an, die ghdl zu "selbstständigen" Übersetzen anbietet.
Damit kann man sich auch ein einfaches Makefile bauen:
Since VCD is Verilog oriented, it is not possible to dump all the VHDL types with VCD. Furthermore, there is no open waveform file format for VHDL. That is the reason why a GHDL waveform format was created.
Gerade habe ich ein Tool entdeckt, mit dem man Online-Testbenches
erzeugen kann, in dem man einfach den VHDL-Code rein postet:
https://vhdl.lapinoo.net/testbench/
Wie geht man eigentlich am besten vor, wenn man z.B. einen Zähler der 1
Sekunde zählen soll mit 50MHz SysClk zählen soll, simulieren möchte?
Die Simulation dürfte ja ewig dauern.
Danke für das Beispiel. "Pragma" habe ich in VHDL noch nicht benutzt.
Wie geht man eigentlich vor, wenn einen DSP-Block auf einem Xilinx FPGA
nutzt und diesen aber nun in GHDL einbinden will?
Carl schrieb:> Danke für das Beispiel. "Pragma" habe ich in VHDL noch nicht benutzt.
Es geht auch ohne #pragma: Z.B. mittels Generic Parameter (mit
Default-Wert), der von der Testbench auf einen einen entsprechend
kleineren Wert (z.B. Faktor 1000) "gemapped" wird.
Ich hatte mich hier auch mal ausprobiert.
Ds hatte ich auch sehr ausführlich dokumentiert. Ob alles im neueren
Vivado enthalten ist, kann ich nicht sagen.
http://www.dossmatik.de/ghdl/ghdl_unisim.pdfVHDL hat die Operation *. Xilinx setzt Multiplikation in einem DSP Block
um.
René D. schrieb:> Xilinx setzt Multiplikation in einem DSP Block> um.
Jein, kommt ganz darauf an. Haengt ganz davon ab, wie breit die Faktoren
sind, wieviele DSP Slices fuer andere und kritischere Operationen
benoetigt werden und den Synthese Settings.
Am einfachsten ist es immer, einfach mal Minimalbeispiele durchzumachen
und sich das Synthese Ergebnis anzuschauen. Dann bekommt man ganz gut
ein Gefuehl davor.
Wie ist eigentlich GHDL zu Modelsim von Mentorgraphics zu bewerten?
Ich habe jetzt nur GHDL benutzt und nach meinem Eindruck ist es rasend
schnell. Hätte man mit Modelsim irgendwelche sonstigen Vorteile?
Carl schrieb:> Wie ist eigentlich GHDL zu Modelsim von Mentorgraphics zu bewerten?>> Ich habe jetzt nur GHDL benutzt und nach meinem Eindruck ist es rasend> schnell. Hätte man mit Modelsim irgendwelche sonstigen Vorteile?
Modelsim beinhaltet deutlich mehr Features, je nachdem welche Lizenz mit
welchen Optionen du erwirbst. Da kommt GHDL natuerlich nicht ansatzweise
ran.
Hier ist mal eine alte Auflistung:
http://en.wedasoft.at/files/uploads/we_products/4/de_modelsim_comparisonfinal_pdf
Die SE Version gibt es in dem Sinne nicht mehr, das laeuft jetzt unter
Questa Series und ist dort wieder unterteilt in Questa Core, Questa
Prime und Questa Ultra:
http://www.ednc.com/wp/wp-content/uploads/2015/08/QuestaCompare-April2014.pdf
Aber ich gebe dir auf jedenfall recht. GHDL ist ein tolles Stueck
Software, ich verwende das meistens in Kombination mit VUnit und dann in
einem Docker Container. Vom Funktionsumfang kann es aber den
kommerziellen Loesungen nicht das Wasser reichen. Allerdings auch im
Preis, wenn du mal anfragst was die Mentor Produkte kosten, dann hauts
einen erstmal vom Stuhl. ;-)
>> Meine gtkwave-Version ist 3.3.100 und ich kann "waveData.waf" auch nicht> darstellen. Vielleich braucht man eine bestimmte File-Endung.
Habt Ihr schon mal das File Format GHW versucht?
Auszug der Manpage (Linux) von GTKwave:
1
GHW is the native VHDL format generated by GHDL
Die unterstützten File Formate:
1
gtkwave - Visualization tool for VCD, LXT, LXT2, VZT, FST, and GHW files
>Habt Ihr schon mal das File Format GHW versucht?
Ich hab's grad mal ausprobiert:
Mann muss bei GHDL die option
--wave=testTaden.ghw
verwenden, um das File zu erzeugen. Es ist nur 1/4 so groß wie das
vcd-File und kann mit GTKWave betrachtet werden.
René D. (Firma: www.dossmatik.de) (dose)
>Ich hatte mich hier auch mal ausprobiert.>Ds hatte ich auch sehr ausführlich dokumentiert.
Sehr übersichtlich. Danke.
http://www.dossmatik.de/vhdl.html