【问题标题】:Why do I get the Verilog syntax error [HDL 9-806]?为什么我会收到 Verilog 语法错误 [HDL 9-806]?
【发布时间】:2020-05-13 05:13:42
【问题描述】:

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

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]

【问题讨论】:

    标签: verilog


    【解决方案1】:

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

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

    一旦你修复了那个错误,你应该得到另一个错误。将两个单独的关键字end module 更改为单个关键字endmodule

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 2022-01-23
      • 2021-06-20
      • 2017-01-16
      • 1970-01-01
      相关资源
      最近更新 更多