Forum: FPGA, VHDL & Co. Testumgebung ModelSim/SimulationWaveform Editor


von BastianCpunkt (Gast)


Lesenswert?

Hallo Zusammen,
ich habe mal eine allgemeine Frage zu Testbench-Entwicklung bzw. zum 
testen von Schaltungen bzw. Funktionsüberprüfungen usw.


Ich stelle mir bzw. euch die Frage.
-Gibt es bei den oben genannten Simulationsverfahren Vor-Nachteile?
-Reicht der WaveformEditor in QuartusII aus?
-Muss ich bei komplexen Schaltungen mit ModelSim arbeiten?
-Warum Modelsim wenn ich hervorragende Schaltungssimulationen erzeugen 
kann   mit dem WaveFormEditor in QuartusII?

Vielen Dank,
Bastian Cpunkt

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

BastianCpunkt schrieb:
> -Reicht der WaveformEditor in QuartusII aus?
So macht man keine Testbench.

> -Muss ich bei komplexen Schaltungen mit ModelSim arbeiten?
Wenn alle deine Beschreibungen auf Anhieb laufen, dann musst du nie 
eine Testbench schreiben.

> -Warum Modelsim wenn ich hervorragende Schaltungssimulationen erzeugen
> kann mit dem WaveFormEditor in QuartusII?
Weil eine Waveform eben eine Waveform ist und bei weitem KEINE 
Testbench. Eine Testbench ist die Beschreibung der Umwelt eines 
Moduls. Die Testbench stimuliert die Eingänge des Moduls und prüft die 
Reaktionen des Moduls und gibt einen Fehler aus, wenn irgendwas nicht 
passt.

Das hier ist z.B. eine richtige Testbench: die generiert Zufallszahlen, 
gibt sie an den Sortierer und kontrolliert hinterher, ob die Reihenfolge 
passt.
http://www.lothar-miller.de/s9y/archives/78-Bubblesort.html

: Bearbeitet durch Moderator
von Michael W. (Gast)


Lesenswert?

Gibt es für sowas nicht eigentlich Standardisierungen, was man zu 
applizieren hat? Sind Zufallstest diesbezüglich akzeptabel / etabliert?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Markus Wagner schrieb:
> Sind Zufallstest diesbezüglich akzeptabel / etabliert?
Wofür?

Prinzipiell gibt es üblicherweise eine Beschreibung, was wie mit wem zu 
funktionieren hat. Und mit etwas Glück eine Testbench, gegen die das zu 
entwickelnde Design fehlerfrei zu laufen hat.
Und zum Testen eines Sortierers ist die dynamische Erzeugung von 
Zufallsmustern eine praktikable Methode.

von greg (Gast)


Lesenswert?

BastianCpunkt schrieb:
> Ich stelle mir bzw. euch die Frage.
> -Gibt es bei den oben genannten Simulationsverfahren Vor-Nachteile?

Ich weiß nicht so recht, was du meinst...

> -Reicht der WaveformEditor in QuartusII aus?

Wenn man Waveforms angucken will, braucht man keine besonderen Gimmicks. 
:) Aber wenn du nur damit testen möchtest, ist das eine schlechte Idee.

> -Muss ich bei komplexen Schaltungen mit ModelSim arbeiten?

Nein.

> -Warum Modelsim wenn ich hervorragende Schaltungssimulationen erzeugen
> kann   mit dem WaveFormEditor in QuartusII?

Eine Waveform ist keine sinnvolle Testumgebung. Du kannst keine 
komplexen Designs damit testen, das skaliert nicht. Und macht dich zudem 
abhängig von dieser Umgebung.

Du solltest richtige Testbenches verwenden. VHDL ist für sowas gut 
geeignet. Im einfachsten Fall setzt du einige wenige Stimuli und prüfst 
mit Asserts, ob das Resultat stimmt. Das ist vergleichbar mit Unit Tests 
aus der Softwarewelt. Ansatzweise ist das auch mit dem Waveform Editor 
vergleichbar, aber Testbenches sind flexibler und übersichtlicher. Am 
besten du gestaltest dein Design modular und testest jede Komponente 
einzeln, soweit möglich.

Komplexere Testbenches können bspw. Stimuli generieren oder aus Dateien 
auslesen und die Ausgaben deines Designs algorithmisch verifizieren oder 
einfach ausgeben.

Ich habe einige Testbenches, die intensiv externe Programme nutzen: ein 
Programm generiert Stimuli, die Testbench liest diese und "füttert" sie 
an das Design. Die Ausgaben werden von der Testbench ausgegeben und mit 
einem weiteren externen Programm analysiert.

Die meiste Zeit habe ich beim Testen daher mit GHDL und Python 
gearbeitet.

von J. S. (engineer) Benutzerseite


Lesenswert?

greg schrieb:
> Ich habe einige Testbenches, die intensiv externe Programme nutzen: ein
> Programm generiert Stimuli, die Testbench liest diese und "füttert" sie
> an das Design.

Klingt interessant, Hättest Du dafür ein Beispiel?

von Strubi (Gast)


Lesenswert?

Moin,

ich würde - wie auch schon anderswo erwähnt - auch mal MyHDL anschauen.
Mit VHDL kann man schon eine Menge wildes Zeug machen, aber man schreibt 
sich halt einen Wolf, und die Simulation läuft nicht unbedingt schneller 
als die deutlich weniger aufwendige Python-Variante, deren 
Wiederverwertbarkeit bei schön modularem Design recht hoch ist.
Interessant scheint mir auch der Cocotb-Ansatz (ebenfalls Python).
Scheint so, als ob die Fachwelt sich etwas einschwingt :-)

Grüsse,

- Strubi

von Michael W. (Gast)


Lesenswert?

Strubi schrieb:
> Cocotb-Ansatz

noch nie von gehört ...

> dich Fachwelt etwas einschwingt
Dein Wort in Gottes Gehörgang. Ich sehe da eigentlich eher eine 
Entstandardisierung: Jeder kocht sein eigenes Süppchen.

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.