verilog - 如何在测试台上运行 verilog 代码?

标签 verilog system-verilog iverilog

我编写了纹波进位加法器的代码。测试平台也可用。如何在我的 Verilog 代码上运行这个测试平台?我没有模拟器。我正在使用 iverilog 编译器。

ripple_carry_adder.v

module half_adder(a,b,sum,carry);
   input a,b;
   output sum,carry;
   assign sum=a^b;
   assign carry=a&b;
endmodule


module full_adder(a,b,cin,sum,cout);
   input a,b,cin;
   output sum,cout;
   wire   t1,t2;
   half_adder h(a,b,t1,t2);
   assign cout=t1&cin;
   assign sum=t1^cin;
   assign cout=t2|cout;
endmodule // full_adder

module ripple_carry_adder(input1,input2,answer);
   input [31:0] input1,input2;
   output [31:0] answer;
   wire [31:0]   carry;
   full_adder f(input1[0],input2[0],1'b0,answer[0],carry[0]);
   genvar            i;
   generate
      for(i=1;i<=31;i=i+1)
        begin : my_mabel
           full_adder f(input1[i],input2[i],carry[i-1],answer[i],carry[i]);
        end
   endgenerate
endmodule

测试平台

module test;

reg [31:0] input1,input2, expected;
wire [31:0] actual;
integer seed;

ripple_carry_adder dut(input1,input2,actual);

initial begin
    seed = 0;
    repeat(10) begin
        input1 = $random(seed);
        input2 = $random(seed);
        expected = input1 + input2;
        #1;
        if(actual!=expected) $display("ERROR: %0d+%0d was %0d expected %0d",
            input1,input2,actual, expected);
        #9;
    end
end

endmodule

最佳答案

使用:

$ iverilog -o ripple ripple_carry_adder.v ripple_carry_adder_tb.v
$ vvp ripple

在终端编译和运行你的代码。您可以将 $monitor 添加到您的测试平台,以便能够打印出更多的结果,而不仅仅是错误。

还有一个名为 GTKWave 的配套程序,可让您绘制波形图。

关于verilog - 如何在测试台上运行 verilog 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18287195/

相关文章:

c++ - 为什么芯片控制语言选择

verilog - 不能由原语或连续赋值驱动

system-verilog - 系统Verilog : Using packages with classes and virtual interfaces

verilog - 如何在verilog中给二维数组一个初始值

verilog - 如何在多个时钟周期内执行 for 循环?

ubuntu - 尝试在 Ubuntu 12.04LTS 上运行 Qsim 时出现 "bad option -readonly"错误

verilog - 如何在 System Verilog 中刷新文件缓冲区?

verilog - iverilog 不编译在一行中写入多个位的多个端口声明

verilog - 我的 verilog 代码出现此错误, "Illegal operation for constant expression"