mikrocontroller.net

Forum: FPGA, VHDL & Co. frage : testbench


Autor: cony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ich möchte gerne mein Testbench optimieren bzw. verständlicher machen. 
Und daher möchte ich meine eingegebene Daten(data) nicht direkt mit Hand 
eingeben (so wie ich es tue). Wie kann ich so was realisieren?

process
begin
   data <= (others => '0');
   wait for 500 ns;
   data <= (others => '1');
   wait for 20 ns;
   data <= "10101000";
   wait for 20 ns;
   data <= "01010110";
     .
     .
     .
     .
    usw
end process;

Schönen Dank im Voraus.

Viele Grüße,
cony

Autor: SimpleSIM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Indem du z.B. aus einer Textdatei den Stimulus einliest
(siehe TEXTIO.VHDL). Der Vorteil dabei ist auch, dass zur
Änderung der Stimulusdatei der Simulator idR nicht neu
gestartet werden muss.

Autor: cony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SimpleSIM schrieb:
> Indem du z.B. aus einer Textdatei den Stimulus einliest
> (siehe TEXTIO.VHDL). Der Vorteil dabei ist auch, dass zur
> Änderung der Stimulusdatei der Simulator idR nicht neu
> gestartet werden muss.

danke fürs antworten..

kannst Du mir bitte ein Beispiel zeigen?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Eat this... ;-)

Autor: cony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Eat this... ;-)

ich wollte ganz einfach paar verschieden 8 bit daten eingeben. einfacher 
sollte es doch gehen??? ich bin neue in VHDL, daher weisse ich nicht 
alles was man bei vhdl machen kann...
ich habe eigntlich in Richtung for-loop und eine Variable oder so was 
gedacht..

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cony schrieb:
> ich wollte ganz einfach paar verschieden 8 bit daten eingeben. einfacher
> sollte es doch gehen???
Dann lass von meinem Beispiel alles weg, was du nicht brauchst.

> ich bin neue in VHDL, daher weisse ich nicht
> alles was man bei vhdl machen kann...
Dann probiers aus, was du davonbrauchst. Ein wenig darfst du schon auch 
selber denken...

> ich habe eigntlich in Richtung for-loop und eine Variable oder so was
> gedacht..
Aber bitte nur zur Simulation.

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du es so einfach haben willst:

Einfach ein array mit 8-bit Werten (constant) definieren und die dann in 
einer loop auf deinen Design loslassen.

Beispiel:
  constant size_test_type : integer := 19;
  type test_type is array(0 to size_test_type-1) of std_logic_vector(31 downto 0);
  signal test_data: test_type := (
      x"F_EFF_FFE_F",
      x"F_FFE_FFF_E",
.....
      x"0_78F_78F_5",
      x"0_91D_91D_6",
      x"C_FFF_EFF_D"
  );
Jetzt kannst du mit test_data(i) in einer loop einfach drauf 
zugreifen...

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: Der Vektor ist bei mir als 'signal' definiert, weil ich in der 
Testbench spaeter noch mit pseudo-random Daten arbeite und den Vektor 
damit ueberschreibe...

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cony schrieb:
> data <= "10101000";
>    wait for 20 ns;
>    data <= "01010110";
>      .

PPS: Du kannst uebrigens auch anstatt "10101000" sowas schreiben:
* b"1010_1000"
* x"A8"   -- allerdings nur bei vielfachen von 4-bit
Macht die Sache deutlich uebersichtlicher und leichter verstaendlich 
finde ich...

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.