难以理解For Loop Icarus Verilog

时间:2018-03-23 18:16:17

标签: verilog test-bench icarus

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

这是我的确切代码

maj3.v

xz

testbench.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

我正在尝试使用Icarus Verilog编译,但我收到此错误

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

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

2 个答案:

答案 0 :(得分:0)

我需要仔细观察,但看起来我的默认版本与他的匹配不匹配。

enter image description here

我用相同的标志

重新编译了编译命令
  

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

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

答案 1 :(得分:0)

尝试这种格式。解决了错误。

将int转换为整数,并在“初始开始”之前声明它。

@receiver(post_save, sender=VideoPost)
def convert_video(sender, instance, **kwargs):
    enqueue(tasks.convert_all_videos, instance._meta.app_label, instance._meta.model_name, instance.pk)
    print('Done converting!')