Testumgebung ModelSim/SimulationWaveform Editor

Gast #3730187
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
Moderator (Firma: Titel) Persönliche Seite
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
Moderator (Firma: Titel) Persönliche Seite
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.
Gast
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.
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.