verilog实现一个串行的4位全加器


前言

采用分层次方法设计,先设计一个一位的全加器,然后在顶层调用4个1位的全加器。


一、verilog

1 仿真代码

代码如下:

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

2.测试文件

代码如下:

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

二仿真结果

在这里插入图片描述


本文仿真代码参考康华光的《电子技术基础》。

  • 6
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhyj_918

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值