四位加法器及TB

这篇博客详细介绍了使用Verilog语言实现一个四位全加器的过程,包括四个子加法器的连接以及进位信号的传递。同时,提供了一个测试平台,通过不断改变输入a和b的值来验证加法器的功能。测试平台中还包含了一个反向进位逻辑,用于生成相反的进位信号。波形图展示了加法器的正确运行情况。
摘要由CSDN通过智能技术生成

v代码:

module adder(a,b,ci,sum,co
);
input [3:0] a;
input[3:0]b;
input ci;
output[3:0] sum;
output[3:0] co;
wire[3:0] count;


add u0(a[0],b[0],ci,sum[0],count[0]);
add u1(a[1],b[1],count[0],sum[1],count[1]);
add u2(a[2],b[2],count[1],sum[2],count[2]);
add u3(a[3],b[3],count[2],sum[3],count[3]);
assign co = count[3];
endmodule

module add(input a ,input b, input ci,output sum,output count);
assign sum=(a^b)^ci;
assign count=(a&b)|(b&ci)|(a&ci);
endmodule

 Testbench:

module tb_adder(
    );

reg [3:0] a,b;
reg ci;
wire [3:0] sum,co;

always #20 ci=~ci;
initial 
	begin
	a=4'b0000;b = 4'b0000;ci=0;
	repeat(16)
	#20 a=a+1;
	end
	
	initial 
	begin
	a=4'b0000;b = 4'b0000; ci=0;
	repeat(16)
	#20 b=b+1;
	end
	
adder tb_adder(
    .a(a), 
	.b(b), 
	.ci(ci), 
	.sum(sum), 
	.co(co)
);
endmodule

波形:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值