我的目标是编写一个测试夹具,从输入文件中读取十六进制值并将其显示在屏幕上。我使用下面的代码,但我在第34行收到语法错误; $ display("%d:%h",j,srcPacketIn [j]);"。确切的错误是:
**错误:C:\ altera \ 13.0 \ test.v(32):near" $ display":语法错误,意外的SYSTEM_IDENTIFIER
有人可以帮帮我吗?
module test_fixtures;
parameter TestCycles = 12;
parameter ClockPeriod = 10;
reg [7:0] srcPacketIn [0:(5*TestCycles)-1];
reg clock, reset;
genvar j;
initial
begin
$readmemh("input.h",srcPacketIn);
end
initial
begin
reset = 0;
clock = 1;
end
always #ClockPeriod clock = ~clock;
for (j=0; j < 59; j=j+1)
begin
$display ("%d:%h",j,srcPacketIn[j]);
end
endmodule
答案 0 :(得分:0)
该代码适用于Icarus Verilog 0.9.6以及下面的更改。
在此处编译/模拟结果:EDA Playground
module test_fixtures;
parameter TestCycles = 12;
parameter ClockPeriod = 10;
reg [7:0] srcPacketIn [0:(5*TestCycles)-1];
reg clock, reset;
integer j; // <-- CHANGED
initial
begin
$readmemh("input.h",srcPacketIn);
end
initial
begin
reset = 0;
clock = 1;
end
always #ClockPeriod clock = ~clock;
initial begin // <-- ADDED
for (j=0; j < 59; j=j+1)
begin
$display ("%d:%h",j,srcPacketIn[j]);
end
end // <-- ADDED
endmodule