【问题标题】:Verilog invalid module item errorVerilog无效模块项错误
【发布时间】:2016-01-12 21:46:41
【问题描述】:

我正在编写一个模块,通过使用 verilog 中的行为建模重复减法来计算商和余数。我收到以下代码的“无效模块项”错误:

module divider (dividend, divisor, quotient, remainder ) ;
    input [7:0] dividend ; // eight input lines modeled as a bus
    input [7:0] divisor ; // select lines bundled as a bus
    output reg [7:0] quotient ;
    output reg [7:0] remainder ;
    reg [7:0] r;
    reg [7:0] q;
    assign q = 0;
    for(r = dividend; r >= divisor; r = r - divisor)
        assign q = q + 1;
    assign remainder = r;
    assign quotient = q;
endmodule

module main;
    reg [7:0] dd;
    assign dd = 12;
    reg [7:0] dr;
    assign dr = 5;
    reg [7:0] q;
    reg [7:0] r;
    divider(dd, dr, q, r);
    $display("quotient %d", q);
    $display("remainder %d",r);
endmodule

这似乎是一个通用错误,无法弄清楚如何解决它。 确切的错误信息:

23: syntax error
23: error: invalid module item.
24: syntax error
24: error: invalid module item.

【问题讨论】:

    标签: verilog hdl


    【解决方案1】:

    出现这些错误消息是因为 $display 语句必须位于过程块中,例如 initial。在这种情况下,$monitor 可能更有用:

    module main;
        reg [7:0] dd;
        assign dd = 12;
        reg [7:0] dr;
        assign dr = 5;
        reg [7:0] q;
        reg [7:0] r;
        divider(dd, dr, q, r);
        initial begin
            $monitor("quotient: %d; remainder: %d", q, r);
        end
    endmodule
    

    请参阅免费的 IEEE Std 1800-2012。

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多