Variablen in der Simulation

Gast #252322
Moin!

Ich hatte schon vor längerer Zeit mal einen Thread eröffnet, weil ich
nicht wusste, wie man Signale in Modelsim anzeigt. Gut, inzwischen kein
Problem mehr.

Aber, wie ist das mit Variablen, die nur innerhalb eines Prozesses
gültig sind? Ich finde in Modelsim keine Möglichkeit, die Dinger
anzuzeigen.

Hat jemand eine Idee?

Grüße
   Andy
Gast
Hallo Andreas,

seit dem Studium arbeite ich nicht mehr mit Modelsim, aber ich erinnere
mich, dass man sich schon irgendwie die Variablen anschauen konnte.
Allerdings nicht so schön als Signalverlauf, wie eben bei den Signalen,
sondern immer nur einen Wert - ich glaube den Wert zu dem Zeitpunkt an
dem der Zeit-Cursor steht.
Prinzipiell stellen sich aber die meisten Tools - und alle, mit denen
ich bisher gearbeitet habe - bei der Darstellung von Variablenwerten
doof an!

Wenn ich mir Variablen anzeigen lassen will, dann erzeuge ich mir daher
ein Signal, dem ich dann in der parallelen Umgebung den Wert der
Variablen zuweise. Ungefähr so:

  ...
  signal s_irgendeine : std_logic;
  ...

  process (Clk, Reset)
    variable v_irgendwie : std_logic;
  begin
    ...
    v_irgendeine := ...;
    ...
  end process;

  s_irgendwie <= v_irgendeine;

Wenn dann alles funktioniert, nehme ich das Signal wieder raus, damit
der Code nicht unnötig aufgebläht ist.

Ich hoffe, ich konnte Dir weiterhelfen.

Gruß
Ines
Gast
Hi,

>Hallo Andreas,
>seit dem Studium arbeite ich nicht mehr mit Modelsim, ....

Ines mit was arbeitest du den jetzt oder brauchst du deine Programme
nicht mehr simulieren?

Gruß,
Dirk
Gast
Hallo Ines,

danke für Deine Idee, aber die Variable ist doch außerhalb des
Prozesses gar nicht gültig, so dass ich keine direkte Zuweisung machen
kann?

Gruß
   Andy
Gast
Sorry!!! Da war ich mal wieder etwas voreilig. So sollte es besser
funktionieren:

  ...
  signal s_irgendeine : std_logic;
  ...

  process (Clk, Reset)
    variable v_irgendwie : std_logic;
  begin

    if(Reset ...) then
      ...
    elsif(Clk ...) then
      v_irgendeine := ...;
      ...
    end if;

    s_irgendwie <= v_irgendeine;

  end process;

Gruß
Ines

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.