Прежде всего я хочу сказать, что я выполняю симуляцию в ADS (Advanced Design System 2017) через модель Verilog, скомпилированную в ModelSim.
Моя цель - загрузить данные из файла .txt в тестовую среду в качестве входных данных для запуска симуляции, а затем сохранить результаты этой симуляции в другом файле .txt.
Вот содержимое входного тестового файла .txt с именем "param.txt":
1
2
3
4
5
6
7
8
9
10
А вот мой код испытательного стенда Verilog:
`include "disciplines.vams"
module resistor(p,n);
electrical p,n;
parameter real R=50.0;
integer file;
integer out;
real pwm_A[0:50];
integer i;
integer j=1;
analog begin
@(initial_step) // Initial Conditions
begin
////////////// Read
file=$fopen("param.txt","r");
if (file) $display("File was opened successfully : %0d", file);
else $display("File was NOT opened successfully : %0d", file);
for (i=1; i<50; i=i+1) begin
pwm_A[i]=$fscanf(file,"%d",j);
j = j+1;
end
////////////// Write
out=$fopen("out.txt","w");
for (i=1; i<=15; i=i+1) begin
$fwrite(out,"%d\n",pwm_A[i]);
end
// Trying to manually display data
$fdisplay(out,123);
$fclose(file);
$fclose(out);
end
// Simulation (doesnt matter)
V(p,n) <+ R * I(p,n);
end
endmodule
В журнале симуляции нет ошибок или предупреждений:
File was opened successfully : -32
Но выходной файл .txt с именем "out.txt" генерирует это:
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
123
Вместо исходных данных.
Заметно, что введенное вручную значение «123» не имеет проблем с записью, но остальные данные - «0» или «1».
Может кто-нибудь заметит проблему?
Заранее спасибо.