Verilog:语法错误:使用$ display时意外的SYSTEM_IDENTIFIER

时间:2013-07-24 17:09:45

标签: verilog

我的目标是编写一个测试夹具,从输入文件中读取十六进制值并将其显示在屏幕上。我使用下面的代码,但我在第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

1 个答案:

答案 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