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

一、行波进位加法器关键路径分析

N比特行波进位加法器可由N个全加器级联而成,电路的延迟包括门延迟和线延迟等,分析忽略线延迟。

单比特全加器门电路图

从输入a,b,cin到输出s和cout,有以下路径:

  • a->s:经过xor1,xor2两个门电路
  • b->s:经过xor1,xor2两个门电路
  • cin->s:经过xor2一个门店路
  • a->cout:经过xor1,and1,or1三个门电路
  • b->cout:经过xor1,and1,or1三个门电路
  • cin->cout:经过and2,or1两个门电路

由这些路径可知,从a,b,cin输入数据准备好,到所有的s和cout完成,a或b到cout共有三个门电路延迟,是全加器的最长路径,且s不参与下一级全加器运算,cout将作为下一个cin输入继续计算下一级的s和cout。

4比特行波进位加法器关键路径

由N个全加器级联的行波进位加法器除了第一个进位c1有3个门延迟外,剩余N-1个全加器生成进位需要2个门电路延迟,所以N比特行波进位加法器最长路径共有“(3+(N-1)*2)=2N+1”个门电路延迟,如上图4比特行波进位加法器,红色描绘的路径即是最长路径,共有2*4+1=9个门电路延迟。

二、超前进位加法器

对于更宽的加法器N,行波进位加法器关键路径越长,限制了加法器的性能,对于高速处理器等将是个极大的瓶颈。所以,本文介绍的超前进位加法器优化改进行波进位器的关键路径。RCA的缺点在于第k位的进位Ck必须依赖于前一级的Ck-1,所以最高位的进位将必须等待之前所有级进位计算完毕后才能计算出结果。所以,超前进位加法器的思想是并行计算进位Ck。

观察上式s和c,将共有部分分别定义:

对于N比特LCA加法器,进位与和公式将重新书写如下:

其中:

其门电路图如下,其实是个半加器:

以4比特LCA加法器为例,其进位链与和公式分别计算如下:

根据上述式子,可以计算出Ci和Si,其结构图为:

4比特超前进位加法器结构图

根据超前进位加法器中进位链c和输出s的物理实现方式不同,大致可分成以下三类:

  • 递归超前进位加法器(Recursive Lookahead Carry Adder,简称RLCA)
  • 分类超前进位加法器(Block Lookahead Carry Adder,BCLA),也称(section-carry-based carry-lookahead adder)
  • 混合型超前进位加法器

以上不同种类LCA之后细讲。对于位宽更大的LCA如16,32,64比特LCA等可以并行生成所有的PG和进位C,但这会造成电路极大的扇入和扇出;另外可以根据4比特LCA级联而成,如16比特LCA可由如下图级联而成(属RLCA):

4比特LCA级联而成的16比特LCA

三、超前进位加法器关键路径分析

为什么超前进位加法器在速度方面相比行波进位加法器更胜一筹?当然,从进位链的生成上也可以看出,我们从进位链C4来对比一下。

LCA进位的c4门电路图
LCA输出S3门电路图

从输入所有的a,b和c0,LCA的输出进位c4只需要3级门电路延迟,c0,c1,c2,c3同时生成,同时由于S3=P3 xor c3,所以4比特LCA关键路径为4级门延迟。虽然经过了很多门电路,但他们的计算是同时的,而4比特RCA计算出c4需要9个门电路延迟。同样是32比特加法器,理想的LCA(全部展开所有的进位逻辑)关键路径延迟理论上只需要4个门电路,而RCA的关键路径延迟为65个门电路。如果采用4比特级联LCA,形成32比特LCA,则需要(3+7*2+1)=18级门电路延迟,相比RCA,缩短了关键路径的长度。

以上比较忽略多输入门延迟,真正的门电路延迟计算需根据不同的门电路库文件,且对AND/OR/NAND等门电路输入数目有限制,如通常的4输入。此处只可意会。

总而言之,RCA的缺点在于关键路径长,限制了速度,性能不高;LCA关键路径短,速度快,进位链计算依赖少,但对于位宽较大的加法器,PG和进位生成逻辑大,存在较大扇入扇出,变化信号多,会有较多的glitch,且面积与复杂度比同等的RCA大。

四、Verilog描述

以下参数化LCA基于4比特LCA设计,width可参数化定义为4的倍数,如20,24,32等。

verilog源码公众号回复003获取。

更多阅读,关注“纸上谈芯”,不定期更新,共同学习:

四位行波进位加法器_【HDL系列】超前进位加法器原理与设计相关推荐

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

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

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

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

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

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

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

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

  5. verilog加法器_【HDL系列】Kogge-Stone加法器原理与设计

    Kogge-Stone加法器是利用Peter M. Kogge和Harold S.Stone于1972年提出的一种并行算法生成的一种树形加法器. 一.Kogge-Stone并行算法 Kogge和Sto ...

  6. 加法器------半加法器,全加法器,超前进位加法器

    一.加法器是什么 举个例子,要表示一个 8 位数的整数,简单地用 8 个 bit,也就是 8 个电路开关.那 2 个 8 位整数的加法,就是 2 排 8 个开关.加法得到的结果也是一个 8 位的整数, ...

  7. 行波iq调制器_低功率IQ调制器的基带设计实例—电路精选(1)

    标签:基带(41)调制器(16)滤波器(821) 调制参数 在本设计实例中,系统规格指标如下: 符号率 = 30 ksps 数字滤波器 = 0.35 下一步是确定基带滤波器要求: 总的信号 BW = ...

  8. 行波iq调制器_矢量信号源中IQ调制器的设计与实现

    龙源期刊网 http://www.qikan.com.cn 矢量信号源中 IQ 调制器的设计与实现 作者:饶金玲 聂伟 来源:<现代电子技术> 2014 年第 21 期 摘 要: 实现了一 ...

  9. python 微服务架构实战_《分布式服务架构:原理、设计与实战》第一章分布式微服务架构设计原理...

    1.从传统单体架构到服务化架构 1.1 JEE架构 JEE将企业级软件架构分为三个层级 : Web 层.业务逻辑层和数据存取层.对应的职能团队,主要包括:用户 交互 UI 团队.后台业务逻辑处理团 队 ...

最新文章

  1. 密码生成常见的编码规则
  2. flink链接mysql_flink 将mysql作为Source和Sink的代码示例
  3. 另一种公钥私钥认证方式
  4. python测试代码_python入门-测试代码
  5. RuntimeException与CheckedException
  6. mysql查询正在执行的存储过程,[转]ms sql server 存储过程,查看正在执行的sql语句...
  7. json在java中的使用_有效地使用JSON流(在Java中)
  8. Inception 模型
  9. 获得密钥_《哪吒》公映密钥延期一个月?关于“密钥延期”的全揭秘来了
  10. 为计算机构建安全方案,计算机科学系安全管理标准化建设实施方案
  11. PyTorch中的生成对抗网络(GAN)
  12. 8、Ndk开发小记一
  13. 千锋锋云智慧联合百度重磅打造人工智能产业学院建设方案
  14. 赖特 因果分析_量子至上的赖特的东西
  15. 自己动手实现抖音高清无水印视频下载工具(1)
  16. 【MIPS汇编编程练习Lab5】汇编中的条件语句 大于小于比较 if-else statement slt
  17. echart半圆,特殊半圆
  18. [转] mongoose 之Shema
  19. 各品牌电脑进入BIOS的按键
  20. SHA-256哈希函数实现

热门文章

  1. MySql安装+navicat
  2. 小程序去除button按钮的默认样式
  3. 一汽大众android面试题,一汽大众面试题
  4. xshell文件传输乱码_XShell连接 Linux系统显示中文乱码解决
  5. 使用循环神经网络训练语言模型(从简单起手、歌词生成器,爬虫+GRU循环网络)
  6. curl 下载地址中有特殊字符解决方案
  7. 【毕业设计/Matlab系列】基于K-L变换的图像压缩matlab实现
  8. 库卡工业机器人负载曲线图_德国库卡机器人选型帮助(负载篇)
  9. Juniper设备设置syslog传送
  10. 高等数学公式(第2部分)