ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

超前进位加法器原理详解

2022-07-08 13:37:01  阅读:440  来源: 互联网

标签:超前 运算 异或 详解 加法器 carry 进位


对于波纹进位加法器(亦称脉动进位加法器,ripple-carry adder)来说,如果增加运算位数,一方面需要更多的逻辑门,另一方面由于高位的计算必须等待低位的进位输出信号被计算出来才能开始,在进行大规模数据计算时会显著增加运算时间。

所以,当今的计算机使用的是另一种有些不同的加法运算器:超前进位加法器('carry-look-ahead' adder)。

 

总结:超前进位加法器的原理是数学公式推导所得到的结果。通过将输出在高位的进位利用输入的低位去表示,实现效率的提升。

下面来看超前进位加法器的具体原理。

Ai、Bi为两个输入在第i位的值,Ci(carry)代表该位向下一位的进位,Si(sum)代表该位的和。

在布尔代数中,点乘是“与”,加法是“或”,右上小撇代表“非”,⊕代表异或运算。

两数相乘(“与”)如果有一个是0,则结果一定为0,亦知只有两个乘数都是1时才能得1。

两数相加(“或”),只要有一个不是0,则得数为1。注意1+1=1。

在异或运算中,1⊕1=0,0⊕0=0,1⊕0=1。

为什么 Si=Ai⊕Bi⊕C?为什么用“异或”运算去表示S?

由二进制算术(非逻辑)可知,1+1=10,1+0=1,0+0=0。

可以发现,二进制算术加法所得结果在个位上的数字与逻辑运算中“异或”的结果是相同的。

M⊕N为什么等于(MN)⊕M+N?

若M⊕N为true,则M、N不相同。

则此时(MN),即M和N求逻辑“与”运算应当为false;(M+N)应当为true。则(MN)⊕M+N为true,与M⊕N结果相同。

 

由于高位的进位输出表达式(积之和式)涉及的变量更多,对应的逻辑电路连线会变得更复杂,而且在实际应用中会遭遇逻辑门的扇入问题。

所以出于对成本的考虑,有必要对位数过高的全加器进行逻辑划分,如将六十四位全加器分为四个十六位超前进位加法器来实现,以此来实现成本和性能的平衡。

  

参考:

bilibili:动画:如何深入理解超前进位加法器 [manim制作]

CSDN:超前进位加法器的理解

百度百科:超前进位加法器

标签:超前,运算,异或,详解,加法器,carry,进位
来源: https://www.cnblogs.com/onthemoon/p/16457964.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有