作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了纹波进位加法器的代码。测试平台也可用。如何在我的 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/
我一直致力于制作一个可以在多个实例中使用的解码器,只需更改输入/输出向量大小的通用值即可。解码器将根据输入的整数转换“sll”单个位、多个位置。解码器本身工作正常。当我制作测试台并编译时,问题就出现了
我有一个带有多个 De CoupledIO 输入和输出的模块。有没有办法独立地提供刺激并收集每个端口的响应? 我可以通过在每个周期迭代所有端口来“模拟”PeekPokeTest 中的这种行为,但是如果
我是一名优秀的程序员,十分优秀!