基于Robei EDA--揭秘半加器与全加器

一、半加器与全加器的前生今世

数字电路中加法器是经常用到的一种基本器件,主要用于两个数或者多个数的加和,加法器又分为半加器(half adder)和全加器(full adder)。半加器电路是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。是实现两个一位二进制数的加法运算电路。而全加器是在半加器的基础上的升级版,除了加数和被加数加和外还要加上上一级传进来的进位信号。

二、模块框图

half_adder的真值表(我们在数电中往往通过真值表把组合逻辑化简成由与非门构成的最简电路形式,然后再根据表达式用Verilog语言实现。)

半加器的真值表
input(in1)inpur(in2)output(sum)output(cout)
0000
0110
1010
1101

在这个真值表里我们发现sum的结果是经过一个异或门,cout的结果是经过一个与门

三、功能实现

half_adder.v

第一种实现方法简单组合逻辑

assign {cout,sum}=in1+in2;

第二种方法时序逻辑

always @(posedge clk or negedge reset)
if(reset == 0) begin
  sum <= 0;
  cout <= 0;
end
else if(in1 == 0 && in2== 1)begin
 sum <= 1;
 cout <= 0;
end
else if(in1 == 1 && in2 == 0)begin
  sum <= 1;
  cout <= 0;
end
else if(in1 == 1 && in2 == 1)begin
  sum <= 0;
  cout <= 1;
end
else begin
		sum <= 0;
  cout <= 0;
end 

管脚约束

上板现象

1+1={1,0}  1+0={0,1}

0+1={0,1}                                                  0+0={0,0}

四、全加器的实现

全加器真值表
in1in2cinsumcout
00000
00110
01010
01101
10010
10101
11001
11111

两个半加器再加一个或门构成全加器

下面我们直接尝试3位全加器的串联

首先设计全加器

三级全加器串联→3bit全加器

管脚约束.xdc

上板现象


五、减法?

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值