Forum: FPGA, VHDL & Co. Testbench Schwierigkeit


von pferdi (Gast)


Lesenswert?

Hallo,

ich habe hier folgenden Auszug aus einer Testbench, welche nicht 
funktioniert. Es werden keine wr-Pulse erzeugt.
1
    for n in 0 to 20 loop
2
      wait for 1 ms;
3
      
4
      if n = 5 then
5
        start <= '1';
6
      else 
7
        start <= '0';
8
      end if;
9
      row <= std_logic_vector(to_unsigned(5*n, row'length)) after 100 ns;
10
      wr <= '1' after 100 ns;
11
      wr <= '0' after 100 ns;  
12
    end loop;

Ich kann mir den Fehler nicht erklären und erbitte Hilfe.

Danke

von D. I. (Gast)


Lesenswert?

ersetz mal die after durch wait for konstrukte

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

@  pferdi
> ersetz mal die after durch wait for konstrukte
Richtig, du hast das gleich nach der loop ja schon mal gemacht...
1
      row <= std_logic_vector(to_unsigned(5*n, row'length));
2
      wait for 100 ns;
3
      wr <= '1';
4
      wait for 100 ns;
5
      wr <= '0';

Sieh dir mal an, was after macht, und wie es den zeitlichen Ablauf 
beeinflusst... :-/

Ich könnte mir denken, dass sowas auch funktioniert:
1
      row <= std_logic_vector(to_unsigned(5*n, row'length));
2
      wr <= '1' after 100 ns, '0' after 200 ns;

von pferdi (Gast)


Lesenswert?

Problem gelöst ich bedanke mich.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.