Forum: FPGA, VHDL & Co. Variablen in ModelSim anzeigen


von Carsten (Gast)


Lesenswert?

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

von Hatschi (Gast)


Lesenswert?

Leider nicht.

von Heinrich H. (Firma: Ich.AG) (hhanff)


Lesenswert?

Nein. Ist auch mir nicht bekannt.
Was Du machen kannst ist die Variable einem Signal zuweisen und dieses 
dann anzeigen lassen.

von Carsten (Gast)


Lesenswert?

Ja, das mit der Signalzuweisung ist mir auch bekannt, geschieht aber 
leider nicht sofort, so wie sich die Variable ändert.

von Falk B. (falk)


Lesenswert?

@ 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

von Da M. (damicha)


Lesenswert?

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.

von fpgaküchle (Gast)


Lesenswert?

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.

von Matthias (Gast)


Lesenswert?

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.

von Carsten (Gast)


Lesenswert?

Besten Dank für die Ratschläge, damit kann ich was anfangen. Super!

von Tom (Gast)


Lesenswert?

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

von Roger S. (edge)


Lesenswert?

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

von Schweizer (Gast)


Lesenswert?

Es gehört doch zusammen! Kein Problem denke ich. Allerdings gab es vor 
Wochen schon einmal jemanden, der die locals nicht gesehen hat.

Gruezi!

von Tom (Gast)


Lesenswert?

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?

von Tom (Gast)


Lesenswert?

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!!

von Roger S. (edge)


Lesenswert?

@  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

von Tom (Gast)


Lesenswert?

Ok werde in Zukunft lieber einen neuen Thread eroeffnen. Sorry.

von Tim (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.