【HDL系列】半加器、全加器和行波进位加法器原理与设计
目录
一、半加器
二、全加器
三、行波进位加法器
加法器是算术运算的一种,在计算机和一些处理器中被运用于算术逻辑单元ALU中或者处理器的其他部分如计算地址,加减操作等类似操作。今天。我们来重温下数字电路中的加法器。
一、半加器
半加器用于计算2个单比特二进制数a与b的和,输出结果sum(s)和进位carry(c)。在多比特数的计算中,进位c将作为下一相邻比特的加法运算中。单个半加器的计算结果是2c+s。其真值表、逻辑表达式、verilog描述和电路图分别如下所示。
真值表
输入 |
输出 |
||
a |
b |
s |
c |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
逻辑表达式
Verilog描述
module half_adder(input a,input b,output c,output s
);assign c = a & b;
assign s = a ^ b;endmodule
电路图
二、全加器
全加器不同于半加器的地方是,全加器带有进位cin。输入为a,b,cin, 输出为sum(s)和carry*(cout),均是单比特信号。s为a,b,cin三个单比特数的和,cout为a,b,cin三个数超过2后的进位。真值表、逻辑表达式、verilog描述和电路图分别如下所示。
真值表
输入 |
输出 |
|||
a |
b |
cin |
s |
cout |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
逻辑表达式
Verilog描述
module full_adder(input a,input b,input cin,output cout,output s
);assign s = a ^ b ^ cin;
assign cout = a & b | (cin & (a ^ b));endmodule
电路图
表示符号
三、行波进位加法器
N-bit加法器可以根据1-bit全加器组合而成。每个全加器的输出进位cout作为下一个全加器的输入进位cin,这种加法器称为行波进位加法器(Ripple-carry adder,简称RCA),如一个16比特加法器的结构如下图所示,其中A,B为16比特的加数,S为A+B的和,c16为该加法器的输出:
由上图可以看出得到进位c16的结果依赖于c15,c14,c13,…,c2,c1,c0,对于32-bit,64-bit,128-bit等加法器,进位链将显得更加长。所以,行波进位加法器设计简单,只需要级联全加器即可,但它的缺点在于超长的进位链,限制了加法器的性能。
Verilog描述
module rca #(width=16) (input [width-1:0] op1,input [width-1:0] op2,output [width-1:0] sum,output cout
);wire [width:0] temp;
assign temp[0] = 0;genvar i;
for( i=0; i<width; i=i+1) beginfull_adder u_full_adder(.a ( op1[i] ),.b ( op2[i] ),.cin ( temp[i] ),.cout ( temp[i+1] ),.s ( sum[i] ));
endendmodule
半加器,全加器和行波进位加法器,源码公众号回复002。
更多阅读,关注“纸上谈芯”,不定期更新,共同学习:
【HDL系列】半加器、全加器和行波进位加法器原理与设计相关推荐
- HDLBits答案(8)_Verilog半加器、全加器和行波进位加法器原理与设计
半加器.全加器和行波进位加法器原理与设计 HDLBits链接 半加器 定义: 半加器用于计算2个单比特二进制数a与b的和,输出结果sum(s)和进位carry(c).在多比特数的计算中,进位c将作为下 ...
- 四位行波进位加法器_【HDL系列】半加器、全加器和行波进位加法器原理与设计...
加法器是算术运算的一种,在计算机和一些处理器中被运用于算术逻辑单元ALU中或者处理器的其他部分如计算地址,加减操作等类似操作.今天.我们来重温下数字电路中的加法器. 一.半加器 半加器用于计算2个单比 ...
- 四位行波进位加法器_【HDL系列】超前进位加法器原理与设计
上期介绍了半加器.全加器以及行波进位加法器(RCA),本文介绍超前进位加法器(Lookahead Carry Adder,简称LCA).在介绍超前进位加法器前,我们先来分析下行波进位加法器的关键路径. ...
- 全加器和行波进位加法器的延迟时间
@[TOC]全加器和行波进位加法器的延迟时间 全加器和行波进位加法器的延迟时间的理解 这是我第一次写博客,有写的不好的请指教. 延迟时间的本质是找最长的传输路径. 首先要知道,一级门(如与门,或门,与 ...
- 超前进位加法器原理与设计
超前进位加法器原理与设计 一.行波进位加法器关键路径分析 N比特行波进位加法器可由N个全加器级联而成,电路的延迟包括门延迟和线延迟等,分析忽略线延迟. 单比特全加器门电路图 从输入a,b,cin到输出 ...
- 半加器、全加器、行波进位加法器、超前进位加法器
半加器 两个1bit数据相加,不包含进位. 全加器 包含低位来的进位,相当于三个1bit数据相加. 至于为啥或和异或一样的解释:因为AB为00,01,10时异或和或结果一样,但是11时或为1,异或为0 ...
- 加法器的实现(半加器,全加器,行波进位加法器,超前进位加法器,流水线加法器)
一.半加器和全加器 二.行波进位加法器 三.超前进位加法器(Carry-Lookahead Adder,CLA) https://www.jianshu.com/p/6ce9cad8b467 四.流水 ...
- 行波进位加法器C语言,行波进位加法器原理
算术运算是数字系统的基本功能,更是计算机中不可缺少的组成单元.本节介绍加法运算和减法运算的逻辑电路. 一.半加器和全加器 1.半加器 半加器和全加器是算术运算电路中的基本单元,它们是完成1位二进制数相 ...
- 四位行波进位加法器_【HDL系列】硬件加法器原理与设计小结
硬件加法器种类繁多,对于不同的设计,加法器的需求也不一样.在前端设计中,使用符号"+"便可轻而易举地实现加法器.只是在特殊的情况下,指定选择加法器类型,或许可以用到.其他情况,可以 ...
最新文章
- java操作excel文件之系列一:《读取excel文件的内容保存到数据库》
- Scala 语言输出的三种方式
- NFL discussion调研
- vant+cell+picker+级联选择默认选中
- Centos yum 安装JDK及配置环境变量
- python对比图片
- 如何做出酷炫且实用的可视化大屏?Excel和PPT该淘汰了
- IntelliJ IDEA 安装本地插件
- Java代码如何运行在Java虚拟机中
- 我的软件开发生涯 (10年开发经验总结和爆栈人生)
- 网易交互设计师微专业C5 交互设计测试与评估
- cisco思科交换机的密码恢复
- android摄像头(camera)之buffer管理
- 基于android的学单词app
- GraphQL 浅谈,从理解 Graph 开始
- 1.24A Simple Math Problem
- 腾讯云---语音识别--一句话识别
- 告诉你什么是挖洞最清奇的脑回路
- 20160803 - C:\WINDOWS\system32\config\systemprofile\Desktop 不可用的解决
- 实现QQ音乐项目的一些技术点jQuery,html5