|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
由于是新手,testbench还不是很会,一个王金明书本上的4位全加器的仿真,仿真出来的东西怎么都看不明白,现在求教一下大家:
源代码:
module adder4(ina,inb,cin,cout,sum);
input[3:0] ina;
input[3:0] inb;
input cin;
output cout;
output[3:0] sum;
assign {sum,cout}=ina+inb+cin;
endmodule
激励测试如下:
`timescale 1ns/1ns
`include"four_adder.v"
module adder4_tb;
reg[3:0] a;
reg[3:0] b;
reg cin;
wire[3:0] sum;
wire cout;
integer i;
integer j;
adder4 adder(a,b,cin,cout,sum);
always #5 cin=~cin;
initial
begin
a=0;
b=0;
cin=0;
for(i=1;i<10;i=i+1)
#10 a=i;
end
initial
begin
for(j=1;j<16;j=j+1)
#10 b=j;
end
initial
begin
$monitor($time, , , "%d + %d +%b={%b,%d}",a,b,cin,cout,sum);
#160 $finish;
end
endmodule
然后仿真出来的结果:
# 0 0 + 0 +0={0, 0}
# 5 0 + 0 +1={1, 0}
# 10 1 + 1 +0={0, 1}
# 15 1 + 1 +1={1, 1}
# 20 2 + 2 +0={0, 2}
# 25 2 + 2 +1={1, 2}
# 30 3 + 3 +0={0, 3}
# 35 3 + 3 +1={1, 3}
# 40 4 + 4 +0={0, 4}
# 45 4 + 4 +1={1, 4}
# 50 5 + 5 +0={0, 5}
# 55 5 + 5 +1={1, 5}
# 60 6 + 6 +0={0, 6}
# 65 6 + 6 +1={1, 6}
# 70 7 + 7 +0={0, 7}
# 75 7 + 7 +1={1, 7}
# 80 8 + 8 +0={0, 8}
# 85 8 + 8 +1={1, 8}
# 90 9 + 9 +0={0, 9}
# 95 9 + 9 +1={1, 9}
# 100 9 + 10 +0={1, 9}
# 105 9 + 10 +1={0,10}
# 110 9 + 11 +0={0,10}
# 115 9 + 11 +1={1,10}
# 120 9 + 12 +0={1,10}
# 125 9 + 12 +1={0,11}
# 130 9 + 13 +0={0,11}
# 135 9 + 13 +1={1,11}
# 140 9 + 14 +0={1,11}
# 145 9 + 14 +1={0,12}
# 150 9 + 15 +0={0,12}
# 155 9 + 15 +1={1,12}
结果和波形图怎么都那么怪异????
大家帮我试试
看看问题出在哪里 |
|