odczyt z pliku w testbench'a (Verilog)

P

param

Guest
Witam wszystkich,
Jak przypisać dane wejściowe zapisane w pliku do portu, w celu testbench'a pomocą Verilog HDL?
Załóżmy, że mam kilka próbek danych wejściowych napisane w pliku. dat,
i moim testbench'a chcę wprowadzić wszystkie wartości zapisane w tym pliku, jak to zrobić?
Próbowałem w sposób podany poniżej i nie mogłem znaleźć żadnych danych przypisanych do wprowadzania kodu PIN podczas symulacji,

data_in = $ fopen (''"input.dat," r ");

proszę o pomoc w rozwiązaniu tego .........

 
$ Fopen tylko otworzyć plik.Wykonywać żadnych operacji w pliku Verilog to należy zrobić w pierwszej kolejności.do czytania z pliku spróbuj $ memreadb (dla plików binarnych) lub $ memreadh (dla plików hex).

np.:
Kod:reg [7:0] mem [1027:0];

......

początkowy

rozpocząć

$ Readmemb ("nazwa_pliku", mem);

koniec
 
Oto przykład ur szuka .....
Nadzieję, że to pomaga
Kod:Moduł stim_gen (

/ / Wynik

CLK, dane

);

Wyjście CLK;

Wyjście [7:0] danych;

CLK reg;

reg [7:0] danych;

integer fd;

Kod integer, obojętne;

reg [str 8 * 10:1];rozpocząć wstępne

$ fd = fopen ("_input.dat", "r");

CLK = 0;

data = 0;

kod = 1;

$ Monitor ("data =% x", danych);

while (kod) rozpoczyna

kod = $ fgets (str, fd);

dummy = $ sscanf (str, "% x", danych);

@ (Posedge CLK);

koniec

$ Wykończenie;

end / / początkowy rozpocząć

zawsze # 5 CLK CLK = ~;

endmodule / / stim_gen
 
FYI,

Jeśli chcesz procesu dane binarne, to może być trudne readmemb nie działa na mnie, kiedy muszę to zrobić.I skończyło się za pomocą:

$ plik = fopen ("code.vec", "r");return_value = $ fread (mem, plik);
if (return_value! = 1)
error = 1;
więcej
..............

"Mem" jest osiem nieco varible.Gdy return_value nie jest 1, to nie czytaj i jesteś na końcu pliku.

--- Steve

 

Welcome to EDABoard.com

Sponsor

Back
Top