四位行波进位加法器_【HDL系列】Sklansky加法器原理与设计
Sklansky加法器是另一种并行高速的树形加法器,由Sklansky于1959年发表,该加法器对比特位进位层级分组,根据对不同比特组所有可能的进位计算所有可选的和与进位,所以也叫Conditional-Sum Addition。
一、进位选择加法器
Sklansky加法器使用了进位选择加法器:
- 进位选择加法器由2个行波进位加法器和1个选择器构成
- 其中一个行波进位加法器假定进位进位为0
- 另外一个行波进位加法器假定进位为1
其结构如下:
更多详细参考往期文章:
纸上谈芯:【HDL系列】进位选择加法器原理与设计zhuanlan.zhihu.com
我们先看下Sklansky在其论文中的一个进位选择加法器的例子(只取低8位部分做详细,如果阅读论文时,对于其表格数据由来不明的话可以细看以下部分):
x = 0 1 1 0 1 1 0 1
y = 1 0 1 1 0 1 1 0
第一级:
当c=0:
其中S表示每一位的和,C表示对于高位的进位;字母的上标表示进位为0;“+”表示异或,如0+1=1, 1+1=0;“.”表示与操作,如0.1=0, 1.1 = 1;i表示比特位i=0,1,…,7;
所以S和C的结果为(上图中序号1部分,红色表示改位结果已经计算出):
当c=1:
因为两数相加,最低位的进位已假定为0,只显示了进位为0的结果,为了对齐,用“-”表示。
所以S和C的结果为(上图中序号2部分):
第二级:(绿色字体表示对高位进位有用)
在这一级,开始以2比特为1组,
第一级C0输出的结果C0=0,所以第1组中,选择已经计算出的结果S1=1,C1=0
第2-4组又分别以组的单位分别假设C=0和C=1的情况,相当于2比特加法器,
当C=0:
S和C的结果为(上图中序号3部分)
当C=1:
S和C的结果为(上图中序号4部分)
其实C=1这部分的S和C只要照抄下来就好了,这个例子中每一位对高位都有进位,忽略低位的进位,以组为单位,所以只有每组的高比特对于下一级有用。
第三级:
根据2比特一组的进位做出下一组S和C的选择:
显然第一组中进位C1=0,所以第2组的S和C选择当C=0的S和C情况
再以4比特分组,也就是4比特加法器,将之前2比特一组的进位加入到其高一组的数据中(上图中序号5,6部分)
第四级:
根据第一组输出的进位C3=1,所以,选择假设C=1的S和C的输出,即(上图中序号7,8部分):
所以最终结果为:
以上过程与手算一致,只不过其实实际过程没有不必这么复杂,从表格上去细究容易混乱,可以先看CSA的原理。
二、Sklansky加法器
Sklansky设计了基于进位选择器的7比特加法器:
如果Si或Ci上标中含有k个“*”,则表示当前的Si或Ci基于S(i-k-1)或者C(i-k-1)等于0或者1 的假设得到,假设为0或者1取决于Si或Ci的上标。如
其中H,Q1,Q2,Q3分别如下图所示:
在H,Q1,Q2,M计算单元示意图中“。”表示相与操作,I表示取反操作,V表示或操作。
三、Verilog设计
将Sklansky加法器的结构通过树形结构展示将会变得更加直观,如下图所示:
图中T=0,1,2,3,4的节点计算单元均不同,每一级的计算单元都类似。黄色表示最后的进位与和都在此单元节点输出,而且标识了前一级进位向高一级的进位传递的过程。
基于以上结构设计一个16比特的Sklansky加法器,分二部分:
(1)设计进位选择加法器(CSA),分别需要设计1-bit CSA, 2-bit CSA, 4 bit CSA和8比特CSA,可以通过参数化实现;每个CSA中,对于进位为0的情况,使用全加器组成;对于进位为1的情况,使用全减器。
(3)将每一层进位选择加法器进行级联,并根据不同的比特分组,用低一级的进位选择得到进位与和的。
欢迎批评指正,更多阅读,关注“纸上谈芯”,不定期更新,共同学习:
四位行波进位加法器_【HDL系列】Sklansky加法器原理与设计相关推荐
- 四位行波进位加法器_【HDL系列】硬件加法器原理与设计小结
硬件加法器种类繁多,对于不同的设计,加法器的需求也不一样.在前端设计中,使用符号"+"便可轻而易举地实现加法器.只是在特殊的情况下,指定选择加法器类型,或许可以用到.其他情况,可以 ...
- 四位行波进位加法器_【HDL系列】超前进位加法器原理与设计
上期介绍了半加器.全加器以及行波进位加法器(RCA),本文介绍超前进位加法器(Lookahead Carry Adder,简称LCA).在介绍超前进位加法器前,我们先来分析下行波进位加法器的关键路径. ...
- 四位行波进位加法器_【HDL系列】进位选择加法器原理与设计
前期已介绍了行波进位加法器(Ripple Carry Adder, RCA)依赖于低位进位,所以具有超长的进位链和关键路径.对于RCA的改进中,进位选择加法器(Carry Select Adder)是 ...
- 四位行波进位加法器_【HDL系列】进位旁边加法器原理与设计
一.进位旁边加法器 进位旁路加法器(Carry Skip Adder,CSA),也称Carry Bypass Adder.需要注意的是,CSA也是另外一种加法器--进位保存加法器(Carry Save ...
- 四位行波进位加法器_【HDL系列】半加器、全加器和行波进位加法器原理与设计...
加法器是算术运算的一种,在计算机和一些处理器中被运用于算术逻辑单元ALU中或者处理器的其他部分如计算地址,加减操作等类似操作.今天.我们来重温下数字电路中的加法器. 一.半加器 半加器用于计算2个单比 ...
- 四位行波进位加法器_超前进位加法器amp;行波进位加法器
超前进位加法器&行波进位加法器 八位超前进位加法器 原理 设计文件 综合电路 测试文件 仿真波形 八位行波进位加法器 原理 设计文件 测试文件 仿真波形 总结 八位超前进位加法器 原理 有学弟 ...
- 四位行波进位加法器_行波进位加/减法器的硬件开销和性能分析
来自微信公众号 "数字芯片实验室" 加减法是一类非常基础的运算,本文分析最简单的行波进位加/减法器(Ripple CarryAdder/Subtractor)的硬件开销和性能问题. ...
- 四位行波进位加法器_《城市:天际线》中的图灵机:用水电管道做一个四位加法器...
你真的可以在<城市:天际线>游戏中构建一个4位加法器(4-bit adder). <城市:天际线>是一款城市模拟游戏,其复杂的游戏机制甚至允许玩家在当中建起通用逻辑门(univ ...
- 四位行波进位加法器_加法器学习记录
半加器 module 全加器 module 行波进位加法器 十分简单,直接串联n个全加器即可得到n位行波进位加法器,但字长较大时速度太慢 module 超前进位加法器 下面这篇文章讲清楚了原理 如何用 ...
最新文章
- envi反演水质参数_科技前沿基于GOCI静止水色卫星数据的长江口及邻近海域Kd(490)遥感反演及其在机载激光测深预评估中的应用...
- 第八周项目三-指向学生类的指针
- c语言输出居中对齐_PDF管理API-Aspose.PDF 11月新更上线!支持居中对齐输出HTML
- .6-Vue源码之AST(2)
- java中volatile的含义_java中volatile关键字的含义
- Git 索引文件(index file)
- JS 导出Excel,Word
- js 改变this指向的几种方法(个人学习笔记)
- Windows运维的学习笔记
- win10下安装STEP7
- 最不可思议的职场语录
- 百度、360、搜狗、神马的SEO搜索结果php爬取排名。
- 酷派春雷com.yulong.android,酷派春雷hd刷机详细教程介绍
- 常用计量统计方法(偏医学科研)
- 资深技术专家推荐:如何写复杂业务代码-阿里实践
- 物料清单的概念及重要性
- CSS样式写出三角形
- Python LeetCode(13.罗马数字转整数)
- js监听按钮按下弹起
- cookie模拟登陆爬取药智网中药材数据库数据