Hallo, ich bin gerade dabei mich in Modelsim einzuarbeiten, um VHDL-Code zu simulieren. In meinen ersten Beispielen habe ich die Signale mit Hilfe eines Do-Files erzeugt. Jetzt bin ich allerdings gerade dabei ein Beispiel aus dem Studium zu simulieren, welches aus zwei VHDL-Files besteht, bei denen eines die Signale für das andere File bereitstellt. Bei Start Simulation habe ich die Entities von beiden VHDL-Files eingebunden. Ansonsten habe ich, wie bei den Beispielen mit dem Do-File, alle interessanten Signale in das Wave-Fenster gezogen. Allerdings zeigt mit jetzt das Wave-Fenster nur no data an. Kann mir jemand sagen, was ich falsch mache bzw. vergessen habe zu tun? Zur besseren Erklärung habe ich einen Screenshot des Ganzen im Anhang. Andreas
user schrieb: > du solltest die simulation auch starten, gebe mal > > run 1ms > > ein danke für die Info. Jetzt sehe ich zumindest schon einmal Signalverläufe. Allerdings ändern sich die Signale nicht so wie es im Programm programmiert ist (Screenshot im Anhang). Ich hab mal noch zur besseren Verständlichkeit die beiden VHDL-Files auch noch beigefügt. Das Signal S sollte eigentlich nach 10 ns immer seinen Signalzustand ändern. Wie man im Wave-Fenster sieht, tut es das aber nicht. Muss ich sonst auch noch was einstellen? Gruß
Andi schrieb: > Ich hab mal noch zur besseren Verständlichkeit die beiden VHDL-Files > auch noch beigefügt. Das Signal S sollte eigentlich nach 10 ns immer > seinen Signalzustand ändern. Wie man im Wave-Fenster sieht, tut es das > aber nicht. > > Muss ich sonst auch noch was einstellen? > > Gruß Ist das stimuli auch ohne fehlermeldung übersetzt worden? IMHO ist die loop anweisung unvollständig.
1 | stimulus : process |
2 | constant td : time := 5 ns; |
3 | begin
|
4 | loop
|
5 | wait for td; S <= 'U'; |
6 | wait for td; S <= 'U'; |
7 | wait for td; S <= 'X'; |
8 | wait for td; S <= 'X'; |
9 | wait for td; S <= '0'; |
10 | ...
|
Fpga Kuechle schrieb: > IMHO ist die loop anweisung unvollständig. Nein, das passt schon. Man kann/könnte eine Schleife auch anders verlassen als über eine vorher bekannte Grenze... http://www.ics.uci.edu/~jmoorkan/vhdlref/while.html
Lothar Miller schrieb: > Fpga Kuechle schrieb: >> IMHO ist die loop anweisung unvollständig. > Nein, das passt schon. Man kann/könnte eine Schleife auch anders > verlassen als über eine vorher bekannte Grenze... > http://www.ics.uci.edu/~jmoorkan/vhdlref/while.html OK, man lernt nie aus. Nächster Punkt: Welches file simulierst du die testbench oder das design? Du musst die testbench simulieren (vsim test_signalattribute). die signalnamen sind ein bißchen kurz (was aber auch sein kann das die optionen für das wave fenster auf 2 path elemente gesetzt sind). Wenn du auf full path setzt muß als name das signal und die komplette designhierarchie angezeigt werden: also etwa: test_signalattribute/dut/signalattribute/S tipp doch mal "history" (zeigt die letzten simulaterkommandos an) in die modelsim konsole, da muß eine Zeile mit "vsim" stehen. Wie lautet diese? MfG Nachedit: das add wave kommando das man im ersten screenshot links unten sieht bestätigt mich in der Vermutung, das das design und nicht die tb simuliert wird. also Simulation beenden und neustarten mit der tb als zu simuliertes Objekt.
Fpga Kuechle schrieb: > Du musst die testbench simulieren (vsim test_signalattribute). Vielen Dank für die Info. Jetzt funktioniert es. Ich habe nämlich bisher beides, also Testbench und Programm, zusammen simuliert. Vielen Dank
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.