frage : testbench

Gast #2013417
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
Moderator (Firma: Titel) Persönliche Seite #2015326
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.
Gast #2015458
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:
1
  constant size_test_type : integer := 19;
2
  type test_type is array(0 to size_test_type-1) of std_logic_vector(31 downto 0);
3
  signal test_data: test_type := (
4
      x"F_EFF_FFE_F",
5
      x"F_FFE_FFF_E",
6
.....
7
      x"0_78F_78F_5",
8
      x"0_91D_91D_6",
9
      x"C_FFF_EFF_D"
10
  );
Jetzt kannst du mit test_data(i) in einer loop einfach drauf 
zugreifen...
Gast #2015532
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren