www.mikrocontroller.net

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


Autor: Carsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hatschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider nicht.

Autor: Heinrich H. (Firma: Ich.AG) (hhanff)
Datum:

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

Autor: Carsten (Gast)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Da Micha (damicha)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: fpgaküchle (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Carsten (Gast)
Datum:

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

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schweizer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok werde in Zukunft lieber einen neuen Thread eroeffnen. Sorry.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.