为什么我会得到Verilog语法错误[HDL 9-806]



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

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]

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

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

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

最新更新