Verilog基础之二、加法器实现

目录

一、加法器

二、加法器实现

三、结果

3.1 综合结果

3.2 仿真结果


一、加法器

    ​算术运算中,加法是最为基础的运算,其他运算从计算机实现的角度来看,本质上也都可由加法运算来实现。加法器根据是否考虑进位分为半加器和全加器,半加器做加法时不会将进位考虑到加法运算中,但运算结果中会保留运算的进位结果。

二、加法器实现

    ​设计2个4位数的加法器,包括全加器和半加器,同时分别采用always和assign语句来实现,

设计代码

module sum_( a,b,ci,co,co_half,sum_half,sum );
input [3:0] a,b;
input ci;  //进位标志
output reg [3:0] sum;
output reg co;   //进位输出
output co_half;
output [3:0] sum_half;
assign {co_half,sum_half}=a+b;  //半加器
always@(*)    //全加器
begin
{co,sum}=a+b+ci;
end
endmodule

测试代码

module sum_tb( );
reg [3:0] d1,d2;
reg ci;
wire co,co_half;
wire [3:0] sum,sum_half;
initial
begin
d1=4'b0000;
d2=4'b0001;
ci=0;
# 5 ci=1;
#10 d1=4'b0001;
#10 d1=4'b1111;
end
sum_ sum_test(.a(d1),.b(d2),.ci(ci),.co(co),.co_half(co_half),.sum_half(sum_half),.sum(sum));
endmodule

三、结果

3.1 综合结果

全加器的输入中加入了进位ci

半加器中输入未考虑进位ci

3.2 仿真结果

在第一个红框出,进位ci从0变成1,可看到全加器的输出sum变成2,半加器的输出sum_half无变化,第二个红框15ns处,d1从0变成1,此时sum和sum_half都加1。第3个红框25ns处,d1从1变成4'b1111,d2为4’b0001,全加器和半加器的进位输出co,co_half都为1。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值