Hallo Leute, gibt es eine Möglichkeit in ModelSim sich direkt Variablen im Wavefenster anzeigen zu lassen? Danke für eure Unterstützung im voraus... Carsten
Nein. Ist auch mir nicht bekannt. Was Du machen kannst ist die Variable einem Signal zuweisen und dieses dann anzeigen lassen.
Ja, das mit der Signalzuweisung ist mir auch bekannt, geschieht aber leider nicht sofort, so wie sich die Variable ändert.
@ Carsten (Gast) >Ja, das mit der Signalzuweisung ist mir auch bekannt, geschieht aber >leider nicht sofort, so wie sich die Variable ändert. Das kann auch nicht funktionieren. Das ist ja der Unterschied zwischen Variablen und Signalen in VHDL. MfG Falk
Und es geht doch... In Modelsim benötigt man als "Debug Window" neben dem "Workspace", "Objekts" und "wave" View auch den "Locals" View (Unter: View->Debug Windows->Locals). Wählt man jetzt im Workspace View in der Hierarchie des Designs einen Prozess mit einer Variable, so erscheint diese im Locals View. Von hier aus kann diese dann per Drag'n'Drop in das wave Window hinzugefügt werden. Speichert man dieses ab, so hat man auch den Variablen-Pfad in der wave.do Datei. Soweit ich weiß, sieht man aber nur die Änderungen, zwischen denen Simulationszeit vergeht. Möchte man jede Änderung einer Variablen verfolgen, so bleibt wohl nichts anderes übrig, all schrittweise den Quellcode in der Simulation zu durchlaufen. Setzt man sich ein paar breakpoints geht das auch ganz gut. Es gibt dann noch die Möglichkeit ein Debugging für Arme durchzuführen: "printf Debugging" ;-) bzw. hier mit Hilfe von asserts. Gruß DaMicha.
Bitte nicht als Nachplapperer beschimpfen, aber IMHO hat da Micha das ganze ein wenig zu kompakt beschrieben. (1) Variablen kann man im Wave anzeigen (2) die auswahl dafür ist anders als für signale (3) man öffnet View process zusätzlich (und view variables) (4) jetzt wählt man im Library browser wie bei signalen die interessante Komponente (5) wenn der richtige "Scope" eingestellte wurde (wie v. Micha beschrieben) zeigt das Processfenster Zeilennummer und process (6)im processfenster wählt man den entsprechenden Prozess/Zeile (line) aus (7)jetzt werden im variblaes fenster die vorhandenen Variablen angezeigt (8)von dort kann man die variablen per Maus oder add to wave ins wave bugsieren. Wahrscheinlich ist es im modelsim-PDF oder online - help ebenfalls beschrieben.
Ich mache das mit den Variablen immer so: Den Prozess auswählen, in dem die Variablen sind. Und dann Add All to Wave oder so ählnich drücken. Dann hat man zwar alle Variablen und etliche Signale doppelt, aber alles nicht benötigte wird dann halt wieder von mir gelöscht.
Besten Dank für die Ratschläge, damit kann ich was anfangen. Super!
Aus irgend einem Grund erscheinen meine Variablen nicht im locals Fenster. Mein Vorgehen: 1. View locals aktivieren 2. Im workspace die entsprechende Komponenete auswaehlen 3. das Plus vor der Komponente aufklappen und den entsprechenden Prozess [bzw. die prozessgruppe, siehe Zusatzinfo weiter unten] auswaehlen (ja der Prozess hat einen Namen) 4. ich erwarte die in diesem Prozess verwendeten Variablen im locals view ABER sie erscheinen da nicht. Was koennte der Grund dafuer sein das meine Variablen nicht im locals view (von wo aus ich sie einfach ins wave-Fenster ziehen koennte) erscheinen?? Zusatzinfo: Im locals view erscheint folgendes: --------structure-------------- --------#MERGED#prozessname_1,prozessname_2 das heisst ich kann nicht jeden Prozess einzeln auswaehlen sondern das ist irgendwie kombiniert. Was koennte der Grund dafuer sein? Danke schonmal fuer Eure Hilfe
Tom wrote: > Im locals view erscheint folgendes: > --------structure-------------- > --------#MERGED#prozessname_1,prozessname_2 > > das heisst ich kann nicht jeden Prozess einzeln auswaehlen sondern das > ist irgendwie kombiniert. Was koennte der Grund dafuer sein? Deine entity wurde mit Optimierungen compiled. Im context menu Properties->VHDL->Disable_all_optimizations ticken dann werden die processes nicht mehr gemerged. btw, einen neuen thread aufmachen kostet nix, warum immer die Alten hervorkramen? Cheers, Roger
Es gehört doch zusammen! Kein Problem denke ich. Allerdings gab es vor Wochen schon einmal jemanden, der die locals nicht gesehen hat. Gruezi!
Ich wollte erst einen neuen Thread aufmachen aber da kamen dann vorschlaege zu bereits existierenden Beitraegen und da dachte ich ich erweiter den hier einfach weil es ja genau darum geht. Also der Tipp klingt erstmal super. Leider mache ich noch irgendetwas falsch. Ich habe das entsprechende Haekchen gesetzt, alles neu compiliert und die Simulation neu gestartet, dennoch erscheint das merged und ich sehe keine Variablen. Muss ich noch etwas tun?
Ups sorry hatte es fuer die falsche Datei eingestellt. Man muss also im workspace unter project die Datei mit dem entsprechenden Prozess rechts klicken und dort unter properties die genannte Einstellung vornehmen. Super! Vielen Dank fuer die Hilfe!!
@ Schweizer (Gast) Die haelfte der Diskussionspartner ist vermutlich gar nicht mehr present. Es ist nicht dasselbe Problem. Tom ist nicht der OP dieses Threads. Das Problem des OP wurde vor ueber einem halben Jahr geloest. Wenn das Ziel eine Sammlung von Tips zu Variablen in ModelSim sein soll, dann gehoert das in einen Artikel. Cheers, Roger
Ja das geht unter ModelSim. Im Tab View, unter Local ein häckchen machen und es erschein ein Fenster mit allen Variablen. Diese können dann ins Wave Fenster gezogen werden. Gilt für ModelSIm 6.4.a Viel Spaß
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.