www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Variablen in der Simulation


Autor: Andreas Ehret (Gast)
Datum:

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

Autor: Ines (Gast)
Datum:

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

Autor: Dirk (Gast)
Datum:

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

Autor: Ines (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dirk
Mit dem VHDL (ChipSim) von Mentor.

Autor: Andreas Ehret (Gast)
Datum:

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

Autor: Ines (Gast)
Datum:

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

Autor: Ines (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und bevor's ein anderer anmeckert: irgendwie und irgendeine sollten
natürlich nicht unterschiedlich sein. Nochmals Entschuldigung!

:-( Ines

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.