并行加法器由多个 全加器 组成,用于实现多位二进制数的加法运算。其性能瓶颈在于进位信号的传递速度。 重点

进位产生与传递函数

为了提高速度,引入了两个辅助函数:

  • 进位产生函数 (Carry Generate)
  • 进位传递函数 (Carry Propagate)

进位公式可改写为:

通过数学推导,可以将 展开为仅与初始输入 相关的式子,从而消除对前一级进位的依赖。

进位链设计

  1. 串行进位 (Ripple Carry)

    • 进位信号逐级传递 ()。
    • 缺点:速度最慢,总延迟随位数 线性增长。若每级延迟为 ,则总延迟为
    • 极端情况 会导致进位从最低位一直传递到最高位。
  2. 先行进位 (Carry Lookahead, CLA)

    • 利用 提前计算进位。

    • 实际工程中常采用 分组先行进位 方案:

      • 单级先行进位 (CLA)
        • 组内并行,组间串行
        • 每个组(如 4 位 CLA)在接收到低位进位 后,经过 延迟产生本组最高位进位 (如 ) 传递给下一组。
        • 时序
        • 相比完全串行 (),延迟大大降低,但随组数增加仍有线性延迟。
      • 多级先行进位 (BCLA / Block CLA)
        • 组内并行,组间也并行
        • 使用 BCLA 电路,它不直接输出进位信号,而是输出组进位产生函数 组进位传递函数
        • 结构
          • 底层:由多个 BCLA 加法器块组成,每个块并行产生内部进位,并计算本组的
          • 顶层:使用一个 CLA 单元接收所有底层的 ,同时计算出所有组间的进位信号 ()。
        • 特点:进位信号 可能比中间进位更早或同时产生,速度最快,但硬件最复杂。

性能优化

提高并行加法器速度的关键在于 折衷:在技术先进性(速度)和硬件复杂度(成本)之间找到平衡。 重点

完全的先行进位会导致电路过于复杂,因此分组方案是主流选择。