【问题标题】:Incomprehensible For Loop Icarus Verilog无法理解的循环 Icarus Verilog
【发布时间】:2018-03-23 18:16:16
【问题描述】:

我正在尝试遵循此处提供的基本示例。 https://www.youtube.com/watch?v=13CzlujAayc&list=PLUtfVcb-iqn8ff92DJ0SZqwsX4W1s_oab&index=17

这是我的确切代码

maj3.v

module maj3(Out, A, B, C);
    input A, B, C;
    output Out;

    wire AB, BC, AC;

        and(AB, A, B);
    and(BC, B, C);
    and(AC, A, C);

    or(Out, AB, BC, AC);

endmodule

testbench.v

module maj3_tb;

    reg a, b, c;
    wire out;

    maj3 DUT1(out, a, b, c);

    initial begin
        for (int i=0; i<8; i=i+1) begin
            #5 {a,b,c} = i;
        end
    end

    initial begin
        $monitor(a,b,c,out);
    end

endmodule

我正在尝试使用 Icarus Verilog 进行编译,但出现此错误

testbench.v:9: syntax error
testbench.v:9: error: Incomprehensible for loop.

我已经查看了我的代码几次,我相信我有与讲师完全相同的行,并且我使用的是相同的编译器。唯一的区别是他在浏览器中运行,而我在 Ubuntu 终端中运行

【问题讨论】:

    标签: verilog test-bench icarus


    【解决方案1】:

    我需要仔细查看,但我的默认版本似乎与他的不匹配。

    我用相同的标志重新运行编译命令

    iverilog -Wall -g2012 -o maj3_test testbench.v maj3.v

    它编译得很好。不确定默认版本是什么或为什么它没有使用该语法编译。

    【讨论】:

      【解决方案2】:

      试试这个格式。它解决了错误。

      将 int 转换为整数并在“initial begin”上方声明。

      integer i;
      initial begin
      for (i=0; i<8; i=i+1) begin
              #5;
              {a,b,c} = i;
          end
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-15
        • 1970-01-01
        • 1970-01-01
        • 2016-09-28
        • 1970-01-01
        相关资源
        最近更新 更多