Sklansky加法器是另一种并行高速的树形加法器,由Sklansky于1959年发表,该加法器对比特位进位层级分组,根据对不同比特组所有可能的进位计算所有可选的和与进位,所以也叫Conditional-Sum Addition。

一、进位选择加法器

Sklansky加法器使用了进位选择加法器:

  • 进位选择加法器由2个行波进位加法器和1个选择器构成
  • 其中一个行波进位加法器假定进位进位为0
  • 另外一个行波进位加法器假定进位为1

其结构如下:

4比特进位选择加法器基础块结构

更多详细参考往期文章:

纸上谈芯:【HDL系列】进位选择加法器原理与设计​zhuanlan.zhihu.com

我们先看下Sklansky在其论文中的一个进位选择加法器的例子(只取低8位部分做详细,如果阅读论文时,对于其表格数据由来不明的话可以细看以下部分):

x = 0 1 1 0 1 1 0 1

y = 1 0 1 1 0 1 1 0

Sklansky中CSA逻辑的例子

第一级:

当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比特加法器:

7比特Sklansky加法器(CSA加法器)

如果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计算单元

在H,Q1,Q2,M计算单元示意图中“。”表示相与操作,I表示取反操作,V表示或操作。

三、Verilog设计

将Sklansky加法器的结构通过树形结构展示将会变得更加直观,如下图所示:

16比特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加法器原理与设计相关推荐

  1. 四位行波进位加法器_【HDL系列】硬件加法器原理与设计小结

    硬件加法器种类繁多,对于不同的设计,加法器的需求也不一样.在前端设计中,使用符号"+"便可轻而易举地实现加法器.只是在特殊的情况下,指定选择加法器类型,或许可以用到.其他情况,可以 ...

  2. 四位行波进位加法器_【HDL系列】超前进位加法器原理与设计

    上期介绍了半加器.全加器以及行波进位加法器(RCA),本文介绍超前进位加法器(Lookahead Carry Adder,简称LCA).在介绍超前进位加法器前,我们先来分析下行波进位加法器的关键路径. ...

  3. 四位行波进位加法器_【HDL系列】进位选择加法器原理与设计

    前期已介绍了行波进位加法器(Ripple Carry Adder, RCA)依赖于低位进位,所以具有超长的进位链和关键路径.对于RCA的改进中,进位选择加法器(Carry Select Adder)是 ...

  4. 四位行波进位加法器_【HDL系列】进位旁边加法器原理与设计

    一.进位旁边加法器 进位旁路加法器(Carry Skip Adder,CSA),也称Carry Bypass Adder.需要注意的是,CSA也是另外一种加法器--进位保存加法器(Carry Save ...

  5. 四位行波进位加法器_【HDL系列】半加器、全加器和行波进位加法器原理与设计...

    加法器是算术运算的一种,在计算机和一些处理器中被运用于算术逻辑单元ALU中或者处理器的其他部分如计算地址,加减操作等类似操作.今天.我们来重温下数字电路中的加法器. 一.半加器 半加器用于计算2个单比 ...

  6. 四位行波进位加法器_超前进位加法器amp;行波进位加法器

    超前进位加法器&行波进位加法器 八位超前进位加法器 原理 设计文件 综合电路 测试文件 仿真波形 八位行波进位加法器 原理 设计文件 测试文件 仿真波形 总结 八位超前进位加法器 原理 有学弟 ...

  7. 四位行波进位加法器_行波进位加/减法器的硬件开销和性能分析

    来自微信公众号 "数字芯片实验室" 加减法是一类非常基础的运算,本文分析最简单的行波进位加/减法器(Ripple CarryAdder/Subtractor)的硬件开销和性能问题. ...

  8. 四位行波进位加法器_《城市:天际线》中的图灵机:用水电管道做一个四位加法器...

    你真的可以在<城市:天际线>游戏中构建一个4位加法器(4-bit adder). <城市:天际线>是一款城市模拟游戏,其复杂的游戏机制甚至允许玩家在当中建起通用逻辑门(univ ...

  9. 四位行波进位加法器_加法器学习记录

    半加器 module 全加器 module 行波进位加法器 十分简单,直接串联n个全加器即可得到n位行波进位加法器,但字长较大时速度太慢 module 超前进位加法器 下面这篇文章讲清楚了原理 如何用 ...

最新文章

  1. envi反演水质参数_科技前沿基于GOCI静止水色卫星数据的长江口及邻近海域Kd(490)遥感反演及其在机载激光测深预评估中的应用...
  2. 第八周项目三-指向学生类的指针
  3. c语言输出居中对齐_PDF管理API-Aspose.PDF 11月新更上线!支持居中对齐输出HTML
  4. .6-Vue源码之AST(2)
  5. java中volatile的含义_java中volatile关键字的含义
  6. Git 索引文件(index file)
  7. JS 导出Excel,Word
  8. js 改变this指向的几种方法(个人学习笔记)
  9. Windows运维的学习笔记
  10. win10下安装STEP7
  11. 最不可思议的职场语录
  12. 百度、360、搜狗、神马的SEO搜索结果php爬取排名。
  13. 酷派春雷com.yulong.android,酷派春雷hd刷机详细教程介绍
  14. 常用计量统计方法(偏医学科研)
  15. 资深技术专家推荐:如何写复杂业务代码-阿里实践
  16. 物料清单的概念及重要性
  17. CSS样式写出三角形
  18. Python LeetCode(13.罗马数字转整数)
  19. js监听按钮按下弹起
  20. cookie模拟登陆爬取药智网中药材数据库数据

热门文章

  1. 基于51单片机LCD1602显示
  2. error C4996: 'stricmp': The POSIX name for this item is deprecated
  3. 顶级React开发工具
  4. VS code创建Vue项目 方法1:create+项目
  5. pytorch模型推理提速
  6. 计算机毕设之基于JAVA的食堂信息管理系统
  7. 2023年天猫618跨店满减活动时间和天猫618预售活动时间介绍
  8. SSH便利店管理系统
  9. echarts-legend-自定义图例的图标,未激活图例置灰
  10. 爱奇艺UI赏析—首页推荐