Verilog语法错误[HDL 9-806]

时间:2017-09-20 18:47:30

标签: verilog

我似乎无法找到错误的位置,我觉得我在寻找一些愚蠢的东西。

我正在尝试为模块生成测试平台,但是我遇到了语法错误。代码是:

module tb_clock_test;

reg clk, pps_in, rst;
wire pps_rcvd, pps_out;
wire [26:0] count;
int d;


clk_test uut(
    .core_clk(clk),
    .pps_in(pps_in),
    .rst(rst),
    .pps_rcvd(pps_rcvd),
    .pps_out(pps_out),
    .count(count)
);

initial begin
    clk <= 0;
    pps_in <= 0;
    rst <= 1;
    clk = !clk;
    #8 rst = 0;
    clk = !clk;
    #8 rst = 1;
    clk = !clk;
    #8 pps_in = 1;
end

for (d = 0; d < 250000000; d = d + 1) begin
    #8 clk = !clk;
end
end module

我收到以下错误:

  

'[HDL 9-806]“#”附近的语法错误。 [ “tb_clock_test.v”:31]'

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

for循环需要在程序块内。解决错误的一种方法是:

initial begin
    for (d = 0; d < 250000000; d = d + 1) begin
        #8 clk = !clk;
    end
end

修复该错误后,您应该收到另一个错误。将两个单独的关键字end module更改为单个关键字endmodule