Forum: FPGA, VHDL & Co. loop mit clk event Abfrage in Prozedur


von Volker Racho (Gast)


Lesenswert?

Kann man einen clk'event Anweisung in einer loop einer Prozedur 
verwenden?
Das ganze soll lediglich in einer Testbench verwendet werden.
Es werden nämlich KEINE Werte an DATAIN übergeben.
DATAIN ist permanent XXXX!



1
    for Z in 0 to row-1 loop
2
      report "..stimulate DATAIN";
3
         for S in 0 to column-1 loop
4
         if CLK = '1' and CLK'event then    
5
           next_pixel := image(Z)(S);
6
           DATAIN <= next_pixel;
7
           DVLIN <= not DVLIN;
8
        end if;
9
        end loop;       
10
   end loop;

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


Lesenswert?

> Das ganze soll lediglich in einer Testbench verwendet werden.
Das mit der Loop geht schon.
Was nicht geht ist die Abfrage auf die steigende Flanke...
Als Tipp: sieh dir mal die Indices (Z und S) im Simulator genauer an.
Was passiert mit denen?

Abhilfe:  Nimm ein
wait until rising_edge(clk);
oder ein
wait until clk='1';
1
    for Z in 0 to row-1 loop
2
      report "..stimulate DATAIN";
3
      for S in 0 to column-1 loop
4
        wait until rising_edge(CLK);
5
        next_pixel := image(Z)(S);
6
        DATAIN <= next_pixel;
7
        DVLIN <= not DVLIN;
8
     end loop;       
9
   end loop;

von Volker Racho (Gast)


Lesenswert?

Vielen herzlichen Dank!

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.