0

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

1 回答 1

1

该代码在 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
于 2013-08-01T21:35:27.073 回答