www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Modelsim - signal_force()


Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte innerhalb eines Designs aus der Testbench heraus ein internes 
Signal (Bus) forcen.

Das Signal im Design sein mal:
signal b : std_logic_vector(7 downto 0);

...

Das Signal, welches als Referenz dient sei:
signal a : std_logic_vector(7 downto 0);

...

Nun möchte ich a einen Wert zuweisen und ihn auch an b übergeben. 
Folgendes Konstrukt funktioniert schonmal:
a <= Wertzuweisung;

if a(0)  = '1' then signal_force("/tb/b(0)", "1" , 0 ns, freeze, open, 
0);
               else signal_force("/tb/b(0)", "0" , 0 ns, freeze, open, 
0); end if;
if a(1)  = '1' then signal_force("/tb/b(1)", "1" , 0 ns, freeze, open, 
0);
               else signal_force("/tb/b(1)", "0" , 0 ns, freeze, open, 
0); end if;
...
if a(7)  = '1' then signal_force("/tb/b(7)", "1" , 0 ns, freeze, open, 
0);
               else signal_force("/tb/b(7)", "0" , 0 ns, freeze, open, 
0); end if;

Ist mir aber irgendwie zu umständlich.
Mit einer Schleife habe ich es auch schon probiert, was aber nicht zum 
Erfolg führte.
Ich suche nun nach einer eleganteren Beschreibung die in etwa so 
aussieht:

signal_force("/tb/b", a , 0 ns, freeze, open, 0);

Hat jemand eine Idee, wie man Modelsim dazu überreden kann?

Der Besucher

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suche immer noch nach einer eleganten Lösung.

Der Besucher

Autor: Ottmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du spiegelst das Signal aus dem Design in die Testbench. Dazu benutzt du 
zu dem signal_force verwandte signal_spy's.
Nun kannst du das Spiegel Signal in der TB beliebig mittels vhdl 
schreiben und lesen.

Aus der Doku:
The init_signal_spy() utility mirrors the value of a VHDL signal or 
Verilog register/net onto an existing VHDL signal or Verilog register. 
This allows you to reference signals, registers, or nets at any level of 
hierarchy from within a VHDL architecture (such as a test bench).

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ottmar schrieb:
> Nun kannst du das Spiegel Signal in der TB beliebig mittels vhdl
> schreiben und lesen.

Schreiben klappt bei mir leider nicht. Auf jeden Fall sehe ich keine 
Auswirkungen auf das Signal, welches sich im Design befindet.

Der Besucher

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.