串行进位加法器和并行进位加法器
1、串行进位加法器
操作数Ai | 操作数Bi | 低位进位信号Ci-1 | 本位和Si | 高位进位信号Ci |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Ci=AiBi+BiCi-1+AiCi-1=AiBi+(Ai异或Bi)Ci-1=AiBi+(Ai+Bi)Ci-1
令Gi=AiBi(绝对进位),Pi=Ai+Bi(条件进位),Ci=Gi+PiCi-1
所以对于串行进位加法器来说有:
C1=G1+P1C0
C2=G2+P2C1
…
Cn=Gn+PnCn-1
串行进位加法器要等待下一级计算结束之后才能进行本级的计算,所以串行进位加法器的运算时间很长,但是所用的元器件较少。
2、并行进位加法器
进位信号的逻辑表达式如下:
C1=G1+P1C0
C2=G2+P2C1=G2+P2(G1+P1C0)=G2+P2G1+P2P1C0
…
Cn=Gn+PnCn-1=Gn+PnGn-1+…+Pn…P1C0
在并行进位结构中,各进位信号独立形成并不依赖于前级进位信号,从而大大地提高了整体的运算速度,但是元器件过多,硬件的开销很大。
ALU的进位逻辑与级联扩展
单独1片SN74181只能实现4位的算术或逻辑运算。
2片74181可以构成8位ALU,4片74181可以构成16位ALU。
每片74181内部虽然采用的是先行进位方式,而芯片与芯片之间却是串行(行波)进位方式,速度还是比较缓慢,也有人称这种级联方式为组内先行进位组间串行进位。
为了提高级联ALU的运算速度,目前有16位并行进位链集成电路SN74182,可以向SN74181提供片间并行进位信号。
例如,采用3片SN74182和8片SN74181可以级联组成片内、片间均并行进位的32位ALU电路。