ICode9

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

carry-lookahead adder 超前进位加法器

2021-10-03 10:58:50  阅读:304  来源: 互联网

标签:超前 Ci lookahead 加法器 adder carry 进位


关于Carry-lookahead Adder(CLA) 超前进位加法器:

首先,不超前是什么,不超前就是按顺序,从低位到高位的加。高位要等低位先做,低位做完把结果给高位,高位再接着做。这就是由全加器(Full adder)组成的ripple-carry adder。那么Sequential的缺点是什么,就是要等,等就有delay。比如下图的全加器,从右到左是一个低位到高位,A1和B1虽然已经准备好了,但是要计算的话还需要等A0和B0把C1算出来。

 

加法器真值表
No.ABCiSCi+1
100000
200110
301010
401101
510010
610101
711001
811111

那怎么改善呢。大佬们就把加法器的真指标拿出来研究。我们可以发现,第1行和第2行,当A、B都是0的时候,Ci+1 一定是0,这种情况就叫进位取消 Delete  D = \overline{A} \cdot \overline{B}。第二种情况,第7、8行,当A和B都为1的时候,Ci+1一定是1, 这个叫进位产生Generate G = A\cdot B。剩下3-6行,看Ci+1一直都和Ci保持一致。推荐这个b站视频

C_{i+1} = A_iB_i + (A_i + B_i) C_i  

S_i = (A_i + B_i) \oplus (A_iB_i) \oplus C_i

这个地方笨想也行。什么时候要进位(C)呢,一种情况就是A和B都是1的时候,还有一种就是A和B至少有一个是1,然后carry还是1。

因为每一位的Ai和Bi都是已知的,所以我们希望能用A和B来表示C和S。所以就有了

P_i = A_i + B_i

G_i = A_i B_i

然后带入到上面的表达式里

C_{i + 1} = G_i + P_iC_i 

S_i = P_i \oplus G_i\oplus C_i

然后如果C0知道了,后面的全部Ci和Si通过套娃就都可以得到。 

关于超前是什么: 

标签:超前,Ci,lookahead,加法器,adder,carry,进位
来源: https://blog.csdn.net/bassbian/article/details/120559361

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

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

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

ICode9版权所有