我们已经看到,使用全加法器的级联排列建立的并行加法器电路受到与进位传播相关的延迟的严重影响(更多内容见文章"并行加法器”)。需要添加的比特数越多,相关的延迟也就越大。如果我们需要摆脱这个“延迟”问题,那么我们就需要去设计超前进位加法器电路。
超前进位加法器的工作原理
为了克服纹波进位传播延迟,一个解决方案是提前很好地预测将导致产生进位的情况。越早做越好。因此,如果我们能通过观察需要加的输入位来确定是否需要进位,那么它就是最好的。
现在假设我们有输入位相加为0和0或者1和0和1,那么和就是0或者1或者1并且没有进位。另一方面,如果两个输入位都是1,那么和就是1,然后会产生进位。需要注意的是,这些说法只有在携带(c我)需要与输入位相加的位为零。现在我们假设这个c我是1。在这种情况下,进位将在所有情况下生成(0和1的组合,1和0和1和1的组合),除非两个输入位都为0。
结合这两个因素,可以得出进位项
在两种情况下:(i)当两个输入位(a我b我)为1或(ii)时,任意一个输入位(a我b我)是1,加上前面的输入位(c我)是1。
这些语句可以等价地用逻辑表达式表示为
总的来说,进位的表达式可以写成
然而,我们有保存总数的逻辑表达式,即。
接下来,让我们表示
通过P项我叫进位传递,
Gi称为携带代。(i)和(ii)式可以改写为
具体地说,
对于i = 0,我们有,
对于i = 1,我们有,
对于i = 2,我们有,
推广,对于i = n,我们有,
在上述所有表达式中需要注意的重要因素是,任何特定阶段的进位项仅取决于进位输入(c0)项,但不包括进位生成和进位传播项。是的,只对c0(用户提供的输入位),而不是先前阶段产生的进位项。这是真的,无论他们属于哪个阶段。
这与纹波携带加法器/减法者的情况不同,因为它们具有其目前阶段的携带期限决定其直接前期阶段的携带术语。这种质量进位超前加法器克服了普通加/减法器电路的纹波载波传播延迟。
同样的原因使超前加法器的运行速度比其他加法器快得多。然而,为此付出的代价是其硬件的复杂性。