📜  进位前瞻加法器

📅  最后修改于: 2021-09-28 10:02:12             🧑  作者: Mango

进位前瞻加法器背后的动机:
在纹波进位加法器中,对于每个加法器块,要添加的两位立即可用。但是,每个加法器块都等待来自其前一个块的进位到达。因此,在知道输入进位之前,不可能生成任何块的和和进位。这i^{th}  块等待i-1^{th}  块以产生其进位。所以会有相当大的时间延迟,即进位传播延迟。

考虑上面的 4 位纹波进位加法器。总和S_{3}  输入信号一加到相应的全加器上就会产生。但是进位输入C_{4}  在进位之前无法获得其最终稳态值C_{3}  可在其稳态值下使用。相似地C_{3}  依赖于取决于C_{2}  C_{2}  C_{1}  .因此,尽管进位必须传播到所有阶段才能输出S_{3}  并携带C_{4}  确定它们的最终稳态值。

传播时间等于每个加法器块的传播延迟乘以电路中加法器块的数量。例如,如果每个全加器级的传播延迟为 20 纳秒,则S_{3}  将在 60 (20 × 3) 纳秒后达到其最终正确值。如果我们扩展级数以添加更多位数,情况会变得更糟。

进位前瞻加法器:
进位超前加法器通过引入更复杂的硬件来减少传播延迟。在这个设计中,纹波进位设计被适当地转换,使得加法器固定位组上的进位逻辑被减少到两级逻辑。让我们详细讨论设计。

考虑上面显示的全加器电路和相应的真值表。我们将两个变量定义为“carry generate” G_{i}  “携带传播” P_{i}  然后,
P_{i} = A_{i} \oplus B_{i} \newline G_{i} = A_{i} B_{i}

和输出和进位输出可以用进位生成表示G_{i}  并进行传播P_{i}  作为

S_{i} = P_{i} \oplus C_{i} \newline C_{i+1} = G_{i} + P_{i} C_{i}
在哪里G_{i}  当两者都产生进位时A_{i}  , B_{i}  无论输入进位如何,都是 1。 P_{i}  与carry的传播有关C_{i}  C_{i + 1}  .

四级进位超前加法器中每一级的进位输出布尔函数可表示为

C_{1} = G_{0} + P_{0} C_{in} \newline C_{2} = G_{1} + P_{1} C_{1} = G_{1} + P_{1} G_{0} + P_{1} P_{0} C_{in} \newline C_{3} = G_{2} + P_{2} C_{2} = G_{2} + P_{2} G_{1} + P_{2} P_{1} G_{0} + P_{2} P_{1} P_{0} C_{in} \newline C_{4} = G_{3} + P_{3} C_{3} = G_{3} + P_{3} G_{2} + P_{3} P_{2} G_{1} + P_{3} P_{2} P_{1} G_{0} + P_{3} P_{2} P_{1} P_{0} C_{in} \newline

从上面的布尔方程我们可以观察到C_{4}  不必等待C_{3}  C_{2}  宣传但实际上C_{4}  同时传播C_{3}  C_{2}  .由于每个进位输出的布尔表达式是乘积的总和,因此可以使用一级与门和后跟或门来实现。

每个进位输出的三个布尔函数的实现( C_{2}  , C_{3}  C_{4}  ) 用于下图所示的进位超前进位生成器。

时间复杂度分析:
我们可以认为进位前瞻加法器由两个“部分”组成

  1. 计算每个位进位的部分。
  2. 为每个位位置添加输入位和进位的部分。

log(n)  复杂性来自产生进位的部分,而不是增加位的电路。
现在,对于一代n^{th}  进位,我们需要在 (n+1) 个输入之间执行 AND。加法器的复杂性归结为我们如何执行此 AND 运算。如果我们有 AND 门,每个都有 k 的扇入(接受的输入数),那么我们可以找到所有位的 AND log_{k}(n+1)  时间。这用渐近符号表示为\Theta(log n)  .

进位前瞻加法器的优缺点:
优点 –

  • 减少了传播延迟。
  • 它提供了最快的加法逻辑。

缺点——

  • 随着变量数量的增加,进位前瞻加法器电路变得复杂。
  • 该电路更昂贵,因为它涉及更多数量的硬件。

GATE CS 角问题

练习以下问题将帮助您测试您的知识。所有问题都在前几年的 GATE 或 GATE 模拟测试中提出。强烈建议您练习它们。

  1. GATE CS 2016 (Set-1),问题 43
  2. GATE CS 2004,问题 90
  3. GATE CS 2007,问题 85
  4. GATE CS 2006,问题 85
  5. GATE CS 1997,问题 15

参考 –
iitkgp.virtual-labs
进位超前加法器 – 维基百科