REVIEW.137945.XYZ · INTERACTIVE COURSE REVIEW OBSERVATORY
◈ review.137945.xyz 三院课程总馆MIT 18.065 矩阵方法清华 · 张颢《概率论》复旦 · 叶凡《数字集成电路》
CMOS硅基与时序FUDAN / DIGITAL IC DESIGN返回 12 讲全景图
LECTURE 11 · P40–P43 原课总长 1:24:38 · B 站 BV1KyMg6aEkF

第 11 讲 · 算术运算单元(Ⅰ):全加器电路、行波进位、进位跳转与流水线加法器

Full Adder Topologies, Manchester Carry Chain, Carry-Bypass & Pipelined Adders

P40–P43 · 第五章 5.1–5.4 节:从 28T 镜像全加器、24T 传输门全加器、G/P/D 三步式曼彻斯特进位链到 O(√N) 进位跳转及流水线重定时割集理论

原课分片 (点击跳转 B 站对应分P播放):

本讲主线与问题意识 · LECTURE NARRATIVE ARC

本讲涵盖 P40–P43 (5.1 全加器 · 5.2 三步式全加器与行波进位加法器 · 5.3 进位跳转加法器 · 5.4 流水线加法器)(共 4 个视频分片 P40–P43,总时长 1:24:38)。已完成全量 FFmpeg 声学 VAD 切分与 SenseVoice 字幕校准(共 169 条精确字幕),并配备专属交互实验「交互实验:行波进位(RCA)O(N) 关键路径 vs 进位跳转(Carry-Bypass)最优分组 M* 计算器」。

本讲核心攻克目标(对标复旦 881 考纲):
  • 完整掌握 P40–P43 (5.1 全加器 · 5.2 三步式全加器与行波进位加法器 · 5.3 进位跳转加法器 · 5.4 流水线加法器) 的物理机理、一阶等效模型与闭式解析公式。

  • 通过配套交互实验(交互实验:行波进位(RCA)O(N) 关键路径 vs 进位跳转(Carry-Bypass)最优分组 M* 计算器)直观验证设计参数折中与复旦 881 高频母题。

CORE FORMULAS & DEVICE MODELS · 本讲核心公式与器件模型速查

全加器电路级设计(28T Mirror vs 24T TG)

Co=AB+(A+B)Ci,S=A⊕B⊕Ci=ABCi+Co‾(A+B+Ci)C_o = AB + (A+B)C_i, \qquad S = A \oplus B \oplus C_i = ABC_i + \overline{C_o}(A + B + C_i)

三步式全加器、RCA 与曼彻斯特进位链

Di=Ai‾ Bi‾  (Ci=0),Gi=AiBi  (Ci=1),Pi=Ai⊕Bi  (Ci=Ci−1)D_i = \overline{A_i}\,\overline{B_i}\;(C_i=0), \quad G_i = A_i B_i\;(C_i=1), \quad P_i = A_i \oplus B_i\;(C_i=C_{i-1})

进位跳转加法器(Carry-Bypass)与伪路径

BP=P1P2⋯PM  ⟹  Cout,block=BP⋅Cin,block+BP‾⋅CM,localB_P = P_1 P_2 \cdots P_M \implies C_{\text{out,block}} = B_P \cdot C_{\text{in,block}} + \overline{B_P} \cdot C_{M,\text{local}}

流水线加法器(Pipelined Adder)与割集定理

Ahigh,Bhigh→DFFStage 2,Slow→DFFOutputA_{\text{high}}, B_{\text{high}} \xrightarrow{\text{DFF}} \text{Stage 2}, \qquad S_{\text{low}} \xrightarrow{\text{DFF}} \text{Output}

1. 一位全加器(1-bit Full Adder)布尔机理、28 管互补 CMOS 拓扑与自互补镜像优化:为什么进位路径 Ci→CoC_i \to C_o 统治了算术单元的速度极限?(5.1 节)

从多位宽算术运算的可扩展性与速度-面积-功耗折中出发(),剖析一位全加器的本位和 S=A⊕B⊕CiS = A \oplus B \oplus C_i(奇偶判断)与进位输出 Co=AB+(A+B)CiC_o = AB + (A+B)C_i(三输入多数表决,)。详解常规 28 管互补 CMOS 全加器借用 Co‾\overline{C_o} 简化求和逻辑、将关键信号 CiC_i 置于最靠近输出的内侧管(Inner Input),并利用全加器自互补定律 Co‾(A,B,Ci)=Co(A‾,B‾,Ci‾)\overline{C_o}(A,B,C_i) = C_o(\overline{A},\overline{B},\overline{C_i}) 衍生出奇偶交替消反相器链、24 管上下轴对称镜像全加器(Mirror Adder)与 16 管传输门(TG)全加器()。

CLASSROOM CIRCUIT & SLIDE VECTOR RECONSTRUCTION · 课堂电路/特性原图与红笔批注矢量化复原

课堂原图复原 1:全加器真值表自互补对称性、28 管 CMOS 拓扑与奇偶交替消反相器链()

复原第 5.1 节课件核心板书:左图为 8 行真值表上下对折自互补性;中图为 28 管互补 CMOS 全加器借用 Co_bar 求 S 及 Ci 置内侧管优化;右图为奇偶位交替消去进位链反相器与 24 管镜像全加器。
1. 全加器真值表奇偶/表决与自互补对称性 A B Ci Co (多数表决) S (奇偶校验) 0 0 0 0 0 0 0 1 0 1 (奇) 0 1 0 0 1 (奇) 0 1 1 1 (≥2) 0 1 0 0 0 1 (奇) 1 0 1 1 (≥2) 0 1 1 0 1 (≥2) 0 1 1 1 1 (≥2) 1 (奇) 自互补定律 (P40 11:14–13:51): Cobar(A, B, Ci) = Co(Abar, Bbar, Cibar) Sbar(A, B, Ci) = S(Abar, Bbar, Cibar) ⇒ 上下对折全对称 2. 常规 28 管 CMOS 全加器与 Ci 内置优化 进位级 (12T + 2T) PUN (6 PMOS) Ci 置近输出内侧! Cobar PDN (6 NMOS) AB + Ci(A + B) + 反相器(2T) → Co 求和级 (12T + 2T) 复用 Cobar 简化: Sbar = Co(Abar+Bbar+Cibar) + Abar·Bbar·Cibar 牺牲 S 速度换面积 优先保 Ci → Co! + 反相器(2T) → S 级联中间节点 Co 负载拆解 (P40 08:45–09:41): • 本征漏电容:前级输出反相器 1N + 1P 漏结电容 • 扇出栅电容:后级 Ci 扇入 3N + 3P 栅电容 (置于内侧管) ★ 关键洞察:Ci → Co 含 1 级复合门 + 1 级冗余反相器! 3. 奇偶交替消反相器、24T 镜像与 16T TG A. 利用自互补消去进位链 N 个反相器 (P40 16:18) FAbar 1 C1bar FAbar 2 A2bar,B2bar S2bar→INV C2 FAbar 3 • 偶数位外围补 3 个 INV (共 3N/2 个),彻底移出关键路径 • 代价思考 (P40 22:26):失去反相器隔离,Co 直接驱动后级 B. 24 管镜像全加器 vs 16 管传输门全加器 (P40 19:53) • 24T 镜像全加器 (Mirror Adder): 因 f 自互补,PUN 与 PDN 拓扑完全相同(非对偶而是同构), 电路与版图呈完美上下轴对称,共 24 管直接输出 Cobar, Sbar。 • 16T 传输门全加器 (TG Full Adder): 用传输门实现异或 P = A⊕B,再用 P 控制 2-to-1 MUX: P=1 选 Ci 传至 Co;P=0 选 A(或B) 传至 Co;Co 与 S 等延时!

多数表决与借用 Co‾\overline{C_o} 求和( 与 ):Co=AB+(A+B)Ci,S=ABCi+Co‾(A+B+Ci)C_o = AB + (A+B)C_i, \qquad S = ABC_i + \overline{C_o}(A+B+C_i)

自互补恒等式():Co‾(A,B,Ci)=Co(A‾,B‾,Ci‾),S‾(A,B,Ci)=S(A‾,B‾,Ci‾)\overline{C_o}(A,B,C_i) = C_o(\overline{A},\overline{B},\overline{C_i}), \qquad \overline{S}(A,B,C_i) = S(\overline{A},\overline{B},\overline{C_i})

镜像全加器轴对称物理根源():一般 CMOS 门的 PUN 与 PDN 是串并互换的对偶图;唯独全加器因自互补,PUN 与 PDN 连串并联结构都 100% 相同,直接实现上下镜像对称版图!

1.1 一位全加器真值表的双重物理含义:奇偶校验与多数表决

  • 在第五章开篇 中,叶凡老师指出:加减乘除与多位比较/移位等算术运算单元无法当作扁平的大规模组合逻辑硬做,必须依靠规整的可扩展基本单元级联推广至 16 bit16\,\text{bit}、32 bit32\,\text{bit} 乃至 256 bit256\,\text{bit}。
  • 一切算术单元的基石是一位全加器(1-bit Full Adder, FA)——输入两个本位操作数 A,BA, B 与低位进位输入 CiC_i,输出本位和 SS 与向高位的进位输出 CoC_o(若抹去 CiC_i 则退化为半加器 Half Adder:Sum=A⊕B,  Cout=AB\text{Sum} = A \oplus B,\; C_{\text{out}} = AB,)。

观察 3 输入 8 行真值表(),SS 与 CoC_o 的布尔表达式蕴含着极其直观的组合逻辑意义: S=A⊕B⊕Ci=AB‾ Ci‾+A‾BCi‾+A‾ B‾Ci+ABCiS = A \oplus B \oplus C_i = A\overline{B}\,\overline{C_i} + \overline{A}B\overline{C_i} + \overline{A}\,\overline{B}C_i + ABC_i Co=AB+BCi+ACi=AB+(A+B)CiC_o = AB + BC_i + AC_i = AB + (A + B)C_i

  • 本位和 SS = 三输入中“11”出现次数的奇偶判断器(Parity Checker,):当 (A,B,Ci)(A, B, C_i) 中有奇数个(11 个或 33 个)为 11 时,S=1S = 1;若有偶数个为 11,则 S=0S = 0。
  • 进位输出 CoC_o = 三输入多数表决器(Majority Voter,):三个人投票,只要有 22 个或 33 个输入为 11,表决结果即满足 Co=1C_o = 1。

1.2 级联关键路径的不对称性与 28 管互补 CMOS 全加器优化

  • 当把 NN 个全加器级联成多位行波进位加法器时(),最长的组合逻辑关键路径是从最低位 A1→Co1→Co2→⋯→Co,N−1→SNA_1 \to C_{o1} \to C_{o2} \to \dots \to C_{o,N-1} \to S_N。
  • 老师强调():在全加器 3 输入到 2 输出的 6 条可能路径中,中间 (N−2)(N-2) 级全部走的是 Ci→CoC_i \to C_o 路径!因此全加器电路级设计的第一铁律是:不惜牺牲 A,B→SA, B \to S 甚至 Ci→SC_i \to S 的速度,全力缩短 Ci→CoC_i \to C_o 的传播延时!

为此,工程上用已经算出的进位反相信号 Co‾\overline{C_o} 代入代数化简本位和 SS(): S=ABCi+Co‾(A+B+Ci)  ⟺  S‾=ABCi+Co‾(A+B+Ci)‾S = ABC_i + \overline{C_o}(A + B + C_i) \iff \overline{S} = \overline{ABC_i + \overline{C_o}(A + B + C_i)} 由此构建出经典的 28 管互补 CMOS 全加器():

  1. 进位级(12 管)+ 输出反相器(2 管):用 6 个 NMOS 与 6 个 PMOS 实现单级复合门 Co‾=AB+Ci(A+B)‾\overline{C_o} = \overline{AB + C_i(A+B)},再接 1 个反相器恢复同相 CoC_o。版图与管序核心细节:将最晚到达的关键信号 CiC_i 驱动的晶体管放置在最靠近输出节点 Co‾\overline{C_o} 的内侧位置(Inner Input),使早到的 A,BA, B 提前泄放内部串联节点电容!
  2. 求和级(12 管)+ 输出反相器(2 管):复用内部节点 Co‾\overline{C_o} 构造 S‾\overline{S},再经反相器输出 SS。虽然求 SS 需先等 Co‾\overline{C_o} 从而慢了一拍,但大幅节省了三输入异或门所需的晶体管面积,且丝毫不拖累主干进位链 Ci→CoC_i \to C_o()。
  3. 级联中间节点 CoC_o 的寄生负载剖析():前级输出反相器贡献 1N+1P1\text{N} + 1\text{P} 本征漏极结电容,后级全加器的 CiC_i 端口贡献 3N+3P3\text{N} + 3\text{P} 扇出栅电容(进位级 1N+1P,求和级 2N+2P)。

1.3 全加器自互补定律、奇偶交替消反相器与 24 管镜像 / 16 管传输门全加器

在 中,老师指出了 28 管全加器在 Ci→CoC_i \to C_o 路径上最刺眼的浪费:复合门算出 Co‾\overline{C_o} 时,多数表决逻辑已经 100% 完成,后面串联的反相器纯粹是为了恢复极性!能否直接删掉这个反相器?

  • 全加器的自互补性(Self-Duality,):把真值表沿水平中线上下对折,输入按位取反(如 001↔110001 \leftrightarrow 110),输出也恰好按位取反(01↔1001 \leftrightarrow 10)!用布尔代数严格证明: Co‾(A,B,Ci)=AB+BCi+ACi‾=A‾ B‾+B‾ Ci‾+A‾ Ci‾=Co(A‾,B‾,Ci‾)\overline{C_o}(A, B, C_i) = \overline{AB + BC_i + AC_i} = \overline{A}\,\overline{B} + \overline{B}\,\overline{C_i} + \overline{A}\,\overline{C_i} = C_o(\overline{A}, \overline{B}, \overline{C_i}) S‾(A,B,Ci)=A⊕B⊕Ci‾=A‾⊕B‾⊕Ci‾=S(A‾,B‾,Ci‾)\overline{S}(A, B, C_i) = \overline{A \oplus B \oplus C_i} = \overline{A} \oplus \overline{B} \oplus \overline{C_i} = S(\overline{A}, \overline{B}, \overline{C_i}) 这意味着:同一个去掉了输出反相器的反相全加器电路,若输入接正极性 (A,B,Ci)(A, B, C_i),输出就是 (Co‾,S)(\overline{C_o}, S);若输入接反极性 (A‾,B‾,Ci‾)(\overline{A}, \overline{B}, \overline{C_i}),其输出自动变成正极性的 (Co,S‾)(C_o, \overline{S})()!
  • 奇偶位极性交替级联():将 NN 个无进位反相器的全加器直接级联,奇数位(第 1,3,…1, 3, \dots 位)输出 C1‾\overline{C_1} 直接喂给偶数位(第 2,4,…2, 4, \dots 位),偶数位输出直接恢复为正极性 C2C_2!只需在所有偶数位的输入 A2k,B2kA_{2k}, B_{2k} 与输出 S2kS_{2k} 外围各补 3 个反相器(共增加 32N\frac{3}{2}N 个旁路反相器),就能将主干进位链上的 NN 个串联反相器延时彻底清零!
全加器拓扑流派 晶体管总数 核心电路特征与优势 局限性与适用场景
常规互补 CMOS 全加器 28T28\text{T} 轨到轨满摆幅、输出反相器提供强驱动隔离() Ci→CoC_i \to C_o 含两级门延时,面积较大
对称镜像全加器 (Mirror Adder) 24T  (或 28T)24\text{T}\;(\text{或 }28\text{T}) 利用自互补性使上拉网 PUN 与下拉网 PDN 拓扑完全同构(上下轴对称,),版图极度紧凑规整 直接输出 Co‾,S‾\overline{C_o}, \overline{S},级联时无反相器隔离
传输门全加器 (TG Adder) 16T16\text{T} 用传输门算 P=A⊕BP = A \oplus B 控制 MUX,管数最少,且 CoC_o 与 SS 延时完全相等 传输门串联无再生驱动能力,多级级联需定期插缓冲器
LAB 5.1 · 28T/24T MIRROR FULL ADDER & C_i INNER OPTIMIZATION

28 管互补全加器 vs 24 管对称镜像全加器(Mirror Adder)关键进位 C_i 置顶模拟器

对比常规 28 管 CMOS 全加器与利用自互补対称性(!C_o(A,B,C_i) = C_o(!A,!B,!C_i))设计的 24 管镜像全加器,验证将最晚到达的进位信号 C_i 接在最靠近输出端顶层管(Inner Input)的加速效果!

单级进位延迟 t_carry 与 16 位总加法延迟单级 28.0 ps ⇒ 总延迟 497 ps本位操作数 A_i, B_i 在 t=0 同时就绪,唯独 C_i 需逐级行波晚到!
镜像全加器(Mirror Adder)三大工程优势PUN 与 PDN 完全对称镜像 (非对偶!),仅 24 管 + 省反相器利用反相性质 !C_o(A,B,C_i) = C_o(!A,!B,!C_i),奇偶位交替消去进位链反相器
1. 位宽 N 与进位链行波传播总延迟曲线斜率由单级进位延迟 t_carry = 28.0 ps 决定
高速算术单元单周期时序预算线拖动上方滑块或点击预设按钮实时重算工作点
2. 为什么镜像全加器的 PUN 与 PDN 能画成完全同构?C_o = A·B + (A + B)·C_i · S = A·B·C_i + !C_o·(A + B + C_i)
自互补镜像定理PUN 与 PDN 拓扑镜像对称关键信号 C_i 位置紧贴输出端 (Inner 预放电)进位级串联管数最多仅 2 管串联 (极快)单比特晶体管数24 T (紧凑高速)复旦 881 物理因果链与核心判据:• 布尔代数代换:先算出 !C_o,再将 !C_o 作为公共输入代入本位和 S,把管数从 32 减至 28• 镜像对称奥秘:全加器真值表中 0 与 1 完全中心对称,故 PUN 无需取对偶,直接复制 PDN 即可!• 版图布局铁律:靠近输出节点 V_out 的顶层管永远留给最晚到达的进位信号 C_i
STEP-BY-STEP CIRCUIT & FORMULA DERIVATION · 课堂电路状态机与公式分步推演
Step ①写出一位全加器求和(奇偶校验)与进位(多数表决)方程并复用 Co‾\overline{C_o}
Co=AB+(A+B)Ci,S=A⊕B⊕Ci=ABCi+Co‾(A+B+Ci)C_o = AB + (A+B)C_i, \qquad S = A \oplus B \oplus C_i = ABC_i + \overline{C_o}(A + B + C_i)

对应 :将 6 条输入输出路径中的优化重心全部押在 Ci→CoC_i \to C_o 上,求和级直接复用内部已算出的 Co‾\overline{C_o} 以节省面积。

Step ②证明全加器自互补定律并构造无进位反相器的奇偶交替行波链
Co‾(A,B,Ci)=A‾ B‾+(A‾+B‾)Ci‾=Co(A‾,B‾,Ci‾)\overline{C_o}(A,B,C_i) = \overline{A}\,\overline{B} + (\overline{A}+\overline{B})\overline{C_i} = C_o(\overline{A},\overline{B},\overline{C_i})

对应 :去掉进位输出反相器后,在偶数位外围输入 A2k,B2kA_{2k}, B_{2k} 与输出 S2kS_{2k} 补反相器,使进位链每级延时从 2 级门减为 1 级门。

Step ③由逻辑自互补导出 PUN 与 PDN 完全同构的 24 管上下镜像全加器
f(x‾)=f(x)‾  ⟹  PUN 拓扑≡PDN 拓扑(上下轴对称镜像版图)f(\overline{x}) = \overline{f(x)} \implies \text{PUN 拓扑} \equiv \text{PDN 拓扑(上下轴对称镜像版图)}

对应 :上拉 PMOS 网与下拉 NMOS 网无需串并变换即可完全镜像排布,且关键信号 CiC_i 紧贴输出节点。

PPA 工程折中与复旦 881 高频母题思辨 (CRITICAL INSIGHT & 881 PITFALL)

【复旦 881 深度追问】课堂 结尾留下的两个思考题:① 把进位链上的输出反相器去掉后,级数减半了,延时真的能缩短 50%50\% 吗?② 如果不允许在进位链上加独立反相器,能否用“3 个进位同相全加器 + 1 个进位反相全加器”交替拼出正确的 8 位加法器?

  1. 去掉输出反相器的隐藏代价——失去缓冲隔离与驱动能力():在常规 28 管全加器中,输出反相器不仅翻转极性,更充当了缓冲隔离器(Buffer)——复合门内部节点只需驱动这 1 个反相器,再由高驱动能力的反相器去推后级 3N+3P3\text{N}+3\text{P} 扇出。去掉反相器后,前级 2 串联复合门の出力节点 Co‾\overline{C_o} 必须直接暴露出去驱动后级的 3N+3P3\text{N}+3\text{P} 栅电容及自身の复合门寄生漏电容,RC 时间常数显著增大!因此实际速度提升远达不到 50%50\%(通常在 20%∼30%20\%\sim 30\% 左右)。
  2. “三正一反”8 位全加器无反相器级联法():第 1,2,31, 2, 3 位用同相全加器,第 44 位用进位反相全加器,此时输出为 C4‾\overline{C_4};根据自互补性,第 5,6,75, 6, 7 位的同相全加器若直接接收反极性的 C4‾\overline{C_4},只需将第 5,6,7,85, 6, 7, 8 位的外部输入 Ak,BkA_k, B_k 取反、且将第 5,6,75, 6, 7 位的求和输出 Sk‾\overline{S_k} 取反,则第 5,6,75, 6, 7 位传递的都是反极性进位 C5‾,C6‾,C7‾\overline{C_5}, \overline{C_6}, \overline{C_7};直到第 88 位再次经过进位反相全加器,反极性输入与门本身反相相互抵消,刚好直接输出正极性的 C8C_8 与 S8S_8!这正是 5.2 节每 4 级用单个反相器恢复驱动的伏笔。
本节方法论与考题要点沉淀 · KEY TAKEAWAYS
  • 路径优先级铁律:多位加法器中 Ci→CoC_i \to C_o 占关键路径绝大部分,必须将 CiC_i 晶体管置于最靠近输出的内侧(Inner Input),并借用 Co‾\overline{C_o} 生成 SS。

  • 自互补对称性:全加器满足 f‾(A,B,Ci)=f(A‾,B‾,Ci‾)\overline{f}(A,B,C_i) = f(\overline{A},\overline{B},\overline{C_i}),既可奇偶位交替消去进位链反相器,又使 24 管镜像全加器的 PUN 与 PDN 完全上下轴对称。

  • 负载与隔离折中:直接去掉进位反相器虽减少了逻辑级数,但丧失了反相器的扇出隔离与驱动恢复,复合门直接带载导致单级 RC 延时上升。

2. 进位信号 (Di,Gi,Pi)(D_i, G_i, P_i) 正交解耦、曼彻斯特三选一进位链与三步式行波进位加法器(RCA):为什么 PiP_i 必须定义为 Ai⊕BiA_i \oplus B_i 而非 Ai+BiA_i + B_i?(5.2 节)

利用全加器三个输入在时间上的强烈不对称性——本位操作数 (Ai,Bi)(A_i, B_i) 在第 00 时刻同步早到,唯有低位进位 Ci−1C_{i-1} 姗姗来迟(),将进位行为预先解耦为进位消灭 Di=Ai‾ Bi‾D_i = \overline{A_i}\,\overline{B_i}、进位产生 Gi=AiBiG_i = A_i B_i 与进位传播 Pi=Ai⊕BiP_i = A_i \oplus B_i 三个互斥完备特征信号()。由此导出曼彻斯特三选一开关进位链与“三步式全加器”(PG 产生 →\to 进位传播 →\to 异或求和),并推导 NN 位行波进位加法器(RCA)的 O(N)O(N) 关键路径延时()。

CLASSROOM CIRCUIT & SLIDE VECTOR RECONSTRUCTION · 课堂电路/特性原图与红笔批注矢量化复原

课堂原图复原 2:(D, G, P) 曼彻斯特三选一进位链、三步式全加器与 N 位 RCA 时空延时图()

复原第 5.2 节课件核心板书:左图为 (Di, Gi, Pi) 正交分类与三选一开关进位单元;中图为三步式全加器架构及为何 Pi 严禁定义为 Ai+B_i;右图为 16 位行波进位加法器的时空延时阶梯图。
1. (D, G, P) 完备互斥分解与三选一开关链 Ai, Bi 早到预分类 → 晚到 Ci 一到即触发三选一 (P41 02:18) ① 进位删除 Di = Aibar · Bibar = 1 (Ai=0, Bi=0) ⇒ Co = 0 ② 进位产生 Gi = Ai · Bi = 1 (Ai=1, Bi=1) ⇒ Co = 1 ③ 进位传播 Pi = Ai ⊕ Bi = 1 (Ai ≠ Bi) ⇒ Co = Ci 完备正交性:Di + Gi + Pi = 1,任意时刻有且仅有一路导通 曼彻斯特三选一进位单元 (P41 06:29–08:59): • Gi=1 分支:仅用单个 PMOS (栅接 Gibar) 接 VDD 传强 1 • Di=1 分支:仅用单个 NMOS (栅接 Di) 接 GND 传强 0 • Pi=1 分支:Ci 既可能为 0 也可能为 1,用 CMOS 传输门 级联恢复驱动 (P41 09:34):传输门无再生能力,每 4 级插 1 个 反相器构成“三正一反”进位链,兼顾最轻负载与驱动恢复! 2. 三步式全加器架构与 P = A⊕B 复用铁律 Step ①:PG 预产生级 (全部位并行,不在关键路径链中) Gi = Ai · Bi (AND), Pi = Ai ⊕ Bi (XOR) [延时 tPG] Step ②:进位传播级 (唯一横跨 N 位的关键路径核心!) Ci = Gi + Pi · Ci-1 (单级 AO 与或门 / 动态门,延时 τ) Step ③:本位求和级 (直接复用 Step ① 的 Pi) Si = Pi ⊕ Ci-1 = Ai ⊕ Bi ⊕ Ci-1 [延时 tXOR] ★ 课堂 P41 14:09–17:20 严厉批驳“用 Pi = Ai + Bi 加速”: 1) Pi 在 Step ① 提前算好,改用或门根本缩短不了 Ci-1→Ci; 2) (Ai+Bi)⊕Ci-1 ≠ Si,导致 Step ③ 无法复用 Pi,面积翻倍! 3. N 位行波进位 (RCA) 时空延时图 (P41 19:23) Bit 1 (LSB) Bit N (MSB) Step ①:N 位并行产生 Pi, Gi (tPG) C1 C2 C3 CN-1 XOR → SN RCA 关键路径延时公式 (P41 17:46–19:23): tRCA = tPG + (N - 1)·τ + tXOR = O(N) 最低位保留 Cin 端口原因 (P41 18:16):为了直接兼容补码减法

三特征信号正交完备性():Di=Ai+Bi‾,Gi=AiBi,Pi=Ai⊕Bi  ⟹  Di+Gi+Pi=1D_i = \overline{A_i + B_i}, \quad G_i = A_i B_i, \quad P_i = A_i \oplus B_i \implies D_i + G_i + P_i = 1

三步式全加器标准方程():Step 1: Pi,Gi⟶Step 2: Ci=Gi+PiCi−1⟶Step 3: Si=Pi⊕Ci−1\text{Step 1: } P_i, G_i \longrightarrow \text{Step 2: } C_i = G_i + P_i C_{i-1} \longrightarrow \text{Step 3: } S_i = P_i \oplus C_{i-1}

NN 位 RCA 线性延时律():tRCA=tPG+(N−1)τ+tXOR∝Nt_{\text{RCA}} = t_{\text{PG}} + (N - 1)\tau + t_{\text{XOR}} \propto N

2.1 输入到达时序的不对称性与 (Di,Gi,Pi)(D_i, G_i, P_i) 三选一预计算解耦

在 中,老师提出了一个极具启发性的运筹学问题:在布尔代数上,全加器的三个输入 (Ai,Bi,Ci−1)(A_i, B_i, C_{i-1}) 是完全对称的;但在 NN 位级联加法器的真实时序上,三者极度不对称——所有位的加数 A1∼ANA_1\sim A_N 与 B1∼BNB_1\sim B_N 在第 00 时刻早就同时到达了,高位的全加器之所以干等着没法算,唯一等的是沿着关键路径姗姗来迟的进位输入 Ci−1C_{i-1}!

既然 Ai,BiA_i, B_i 早就到了,我们完全可以在等待 Ci−1C_{i-1} 的空闲时间里,先把 (Ai,Bi)(A_i, B_i) 的 44 种取值组合对进位输出 CiC_i 的影响预先归类为三个两两互斥且完备的局部特征信号():

局部特征信号名称 符号与布尔定义 触发的 (Ai,Bi)(A_i, B_i) 组合 对本位进位输出 CiC_i 的决定作用
进位删除 / 消灭(Delete / Kill) Di=Ai‾ Bi‾=Ai+Bi‾D_i = \overline{A_i}\,\overline{B_i} = \overline{A_i + B_i} (0,0)(0, 0) 无论 Ci−1C_{i-1} 为何值,直接将进位清零:Ci=0C_i = 0()
进位产生(Generate) Gi=Ai⋅BiG_i = A_i \cdot B_i (1,1)(1, 1) 无论 Ci−1C_{i-1} 为何值,直接由本地产生进位:Ci=1C_i = 1()
进位传播(Propagate) Pi=Ai⊕BiP_i = A_i \oplus B_i (0,1)(0, 1) 或 (1,0)(1, 0) 将低位进位原封不动传向高位:Ci=Ci−1C_i = C_{i-1}()

老师特别提醒():由于 (Di,Gi,Pi)(D_i, G_i, P_i) 无重叠、无遗漏地覆盖了 (Ai,Bi)(A_i, B_i) 的全部 44 种状态(满足正交完备性 Di+Gi+Pi=1D_i + G_i + P_i = 1 且两两相与为 00),进位输出本质上是一个受 (Di,Gi,Pi)(D_i, G_i, P_i) 控制的三选一多路器(3-to-1 MUX): Ci=Di⋅0+Gi⋅1+Pi⋅Ci−1=Gi+PiCi−1C_i = D_i \cdot 0 + G_i \cdot 1 + P_i \cdot C_{i-1} = G_i + P_i C_{i-1}

2.2 曼彻斯特(Manchester)三选一开关进位链与“三正一反”驱动恢复

把上述三选一思想直接映射为晶体管开关电路,就得到了速度极快、寄生负载极轻的曼彻斯特进位单元():

  • 当 Di=1D_i = 1 时只需传确定性的逻辑 00,故仅需 1 个下拉 NMOS 管(栅接 DiD_i,源接地)传强 00;
  • 当 Gi=1G_i = 1 时只需传确定性的逻辑 11,故仅需 1 个上拉 PMOS 管(栅接 Gi‾\overline{G_i},源接 VDDV_{DD})传强 11;
  • 当 Pi=1P_i = 1 时需传递未知的 Ci−1∈{0,1}C_{i-1} \in \{0, 1\},故采用 1 个互补 CMOS 传输门(TG)连接 Ci−1C_{i-1} 与 CiC_i()。
  • 为什么它是同类静态结构中最快的进位链?() 在关键路径 Ci−1→CiC_{i-1} \to C_i 上仅有 1 个传输门开关电阻,输出节点的本征寄生电容仅有 1 个上拉 PMOS 漏端 + 1 个下拉 NMOS 漏端 + 1 个传输门漏端,后级扇入也仅看到 1 个传输门源漏端,路径级数与寄生电容同时压缩到了物理极限!
  • 每 4 级插 1 个反相器的“三正一反”驱动恢复():由于无源传输门没有再生驱动能力,级联过多会导致 RC 延时按平方律恶化;但若每级都插缓冲器(2 个反相器)又会引入冗余门延时。最优方案是每隔 4 级传输门仅插入 1 个反相器恢复驱动能力,构成“三正一反”极性交替的曼彻斯特进位链(恰好应用了 5.1 节结尾的自互补极性翻转技巧)!

2.3 三步式全加器(Three-Step FA)与 NN 位行波进位加法器(RCA)的 O(N)O(N) 瓶颈

跳出具体电路门类(无论静态传输门、静态 AO 与或门还是动态 Domino 逻辑,),一切现代高速全加器在架构上都统一归结为三步式全加器:

  1. 第一步(PG 产生级,延时 tPGt_{\text{PG}}):全加器所有位并行根据 Ai,BiA_i, B_i 计算 Gi=AiBiG_i = A_i B_i 与 Pi=Ai⊕BiP_i = A_i \oplus B_i;
  2. 第二步(进位传播级,每级延时 τ=tcarry\tau = t_{\text{carry}}):利用与或门(AO Gate)或传输门递归计算 Ci=Gi+PiCi−1C_i = G_i + P_i C_{i-1};
  3. 第三步(本位求和级,延时 tXOR=tsumt_{\text{XOR}} = t_{\text{sum}}):直接复用第一步已算好的 PiP_i,再做一次二输入异或即得本位和: Si=Pi⊕Ci−1=(Ai⊕Bi)⊕Ci−1S_i = P_i \oplus C_{i-1} = (A_i \oplus B_i) \oplus C_{i-1}

将 NN 个三步式全加器级联成 NN 位行波进位加法器(Ripple-Carry Adder, RCA,),由于第一步 NN 位并行产生 Pi,GiP_i, G_i 只花费 1 次 tPGt_{\text{PG}},而最后一步异或求和也只在最高位花费 1 次 tXORt_{\text{XOR}},总关键路径延时为: tRCA=tPG+(N−1) τ+tXOR=O(N)t_{\text{RCA}} = t_{\text{PG}} + (N - 1)\,\tau + t_{\text{XOR}} = O(N)

课堂细节追问():为什么 NN 位加法器的最低位(LSB)不省钱用半加器,而是仍然用带 CinC_{\text{in}} 的全加器?答案:为了在后续直接将 BB 取反并令 Cin=1C_{\text{in}} = 1,零成本复用为补码减法器 A−B=A+B‾+1A - B = A + \overline{B} + 1!

LAB 5.2 · (G,P,D) DECOMPOSITION & MANCHESTER CARRY CHAIN

进位信号 (G_i, P_i, D_i) 正交解耦、动态曼彻斯特进位链 M² 延时与缓冲器插入台

为什么三步式全加器中传播信号必须定义为异或 P_i = A_i ⊕ B_i 而非或 A_i + B_i?在曼彻斯特(Manchester)传输管进位链中验证三互斥开关 (G_i, P_i, D_i) 与分布 RC 延时按 M² 增长的规律!

4 位串联曼彻斯特进位链总延时78.6 ps (含 M(M+1)/2 = 10 单位 RC)✓ M ≤ 4 处于动态曼彻斯特链黄金高速度区间
为什么 P_i 必须定义为 A_i ⊕ B_i 而非 A_i + B_i?当前状态:P_i=1 (进位透传 C_o=C_{i-1})1. 防冲突:确保 (G_i, P_i, D_i) 两两正交互斥,绝不让电源与旧进位短接;2. 复用求本位和 S_i = P_i ⊕ C_{i-1}!
1. 串联进位链长度 M 与 Elmore 二次方延时曲线传输管串联构成的曼彻斯特链延时按 O(M²) 增长,每 3–4 位须插缓冲器
M=4 分段插缓冲最佳工程分界线拖动上方滑块或点击预设按钮实时重算工作点
2. 三步式全加器正交解耦方程 (复旦 881 必考)Step 1: 产生 G_i,P_i,D_i → Step 2: 进位传播 C_i → Step 3: 异或求和 S_i
进位产生 G_i = A_i·B_i0进位传播 P_i = A_i⊕B_i1 (闭合串行传输管)进位消灭 D_i = !A_i·!B_i0正交完备性 G+P+D恒等于 1 (一通二断)复旦 881 物理因果链与核心判据:• 正交性证明:G_i + P_i + D_i = AB + (A⊕B) + !A!B ≡ 1,且任意两项相与恒为 0• 动态曼彻斯特链:CLK=0 将所有进位节点预充为 1(天然省去 D_i 支路!),求值期仅靠 G_i 与 P_i 下拉• 本位和直接复用:S_i = A_i ⊕ B_i ⊕ C_{i-1} = P_i ⊕ C_{i-1},省去庞大的独立求和电路
STEP-BY-STEP CIRCUIT & FORMULA DERIVATION · 课堂电路状态机与公式分步推演
Step ①利用 Ai,BiA_i, B_i 早到特性预先解耦 (Di,Gi,Pi)(D_i, G_i, P_i) 三互斥分支
Di=Ai‾ Bi‾  (Ci=0),Gi=AiBi  (Ci=1),Pi=Ai⊕Bi  (Ci=Ci−1)D_i = \overline{A_i}\,\overline{B_i}\;(C_i=0), \quad G_i = A_i B_i\;(C_i=1), \quad P_i = A_i \oplus B_i\;(C_i=C_{i-1})

对应 :把与 Ci−1C_{i-1} 无关的本地逻辑全部移出关键路径提前算好,使 Ci−1C_{i-1} 到达后仅需经过一级三选一开关。

Step ②构建三步式全加器并复用 Pi=Ai⊕BiP_i = A_i \oplus B_i 完成本位求和
Ci=Gi+PiCi−1  (AO 门),Si=Pi⊕Ci−1  (复用 Pi)C_i = G_i + P_i C_{i-1}\;(\text{AO 门}), \qquad S_i = P_i \oplus C_{i-1}\;(\text{复用 } P_i)

对应 :唯有定义 Pi=Ai⊕BiP_i = A_i \oplus B_i 才能在第三步直接异或 Ci−1C_{i-1} 得到 SiS_i。

Step ③累加时空阶梯图导出 NN 位行波进位加法器(RCA)的 O(N)O(N) 延时
tRCA=tPG+(N−1)τ+tXOR=O(N)t_{\text{RCA}} = t_{\text{PG}} + (N - 1)\tau + t_{\text{XOR}} = O(N)

对应 :所有位的 Pi,GiP_i, G_i 在第 1 层同时生成,随后进位沿对角线逐级串行爬升 (N−1)(N-1) 次,最后经 1 次异或输出 SNS_N。

PPA 工程折中与复旦 881 高频母题思辨 (CRITICAL INSIGHT & 881 PITFALL)

【复旦 881 必考辨析】课堂 专门批驳了一个流传极广的教科书误区:许多教材声称“因为或门(OR)比异或门(XOR)更快、更省管子,所以可以把进位传播信号定义为 Pi=Ai+BiP_i = A_i + B_i 来加速全加器”。为什么叶凡老师斩钉截铁地指出这种做法“毫无现实工程意义、甚至得不偿失”?

  1. 对缩短关键路径延时毫无帮助():在多位加法器中,PiP_i 是在第一步(Step 1)由早到的 Ai,BiA_i, B_i 提前并行算好的,根本不在 C1→C2→⋯→CN−1C_1 \to C_2 \to \dots \to C_{N-1} 的主干进位链上!等到低位进位 Ci−1C_{i-1} 传到第 ii 位时,无论 PiP_i 是用慢一点的异或门算出的还是快一点的或门算出的,它早就稳定在那里等着了。因此把 PiP_i 换成 Ai+BiA_i + B_i 对关键路径传播延时 τ\tau 的加速效果严格为 00!
  2. 彻底破坏第三步求和逻辑对 PiP_i 的硬件复用,导致总面积与功耗翻倍赔偿():虽然在进位公式 Ci=Gi+PiCi−1C_i = G_i + P_i C_{i-1} 中,由于 Gi=AiBiG_i = A_i B_i 已覆盖 (1,1)(1,1) 情况,令 Pi=Ai+BiP_i = A_i + B_i 与 Pi=Ai⊕BiP_i = A_i \oplus B_i 在代数上对 CiC_i 等价;但在第三步求本位和 SiS_i 时,Si=(Ai⊕Bi)⊕Ci−1S_i = (A_i \oplus B_i) \oplus C_{i-1} 必须用到真正的异或 Ai⊕BiA_i \oplus B_i!一旦你在第一步贪小便宜算了 Ai+BiA_i + B_i,第三步就无法再写 Si=Pi⊕Ci−1S_i = P_i \oplus C_{i-1},而是被迫额外搭建一套完整的三输入求和电路,把第一步省下的一点点面积加倍赔进去!
本节方法论与考题要点沉淀 · KEY TAKEAWAYS
  • 时序解耦思想:利用 Ai,BiA_i, B_i 早到、Ci−1C_{i-1} 晚到的时序差,将进位决策转化为 (Di,Gi,Pi)(D_i, G_i, P_i) 控制的 3-to-1 多路选择,把单级进位延时 τ\tau 压至最低。

  • Pi=Ai⊕BiP_i = A_i \oplus B_i 不可替代:只有将 PiP_i 定义为异或,才能在 Step 3 直接以单个异或门 Si=Pi⊕Ci−1S_i = P_i \oplus C_{i-1} 复用求得本位和。

  • RCA 的根本瓶颈:电路级优化只能减小斜率常数 τ\tau,无法改变 tRCA=tPG+(N−1)τ+tXOR=O(N)t_{\text{RCA}} = t_{\text{PG}} + (N-1)\tau + t_{\text{XOR}} = O(N) 的线性增长本质。

3. 进位跳转加法器(Carry-Bypass / Carry-Skip Adder):从 O(N)O(N) 到 O(N)O(\sqrt{N}) 的跨组旁路加速、最优分组 M∗M^* 推导与 STA 伪路径危机(5.3 节)

既然优化单个全加器只能减小 τ\tau 而无法打破 O(N)O(N) 线性魔咒(),本节从架构层面将 NN 位拆分为 K=N/MK = N/M 个每组 MM 位的模块,引入组传播信号 BP=P1P2⋯PMB_P = P_1 P_2 \cdots P_M:一旦整组处于传播态(BP=1B_P=1),进位直接经多路器(MUX)跨组旁路跳转()!严密推导最坏关键路径延时并利用均值不等式证明最优每组位数 M∗=N tbypass2 tcarry=O(N)M^* = \sqrt{\frac{N\,t_{\text{bypass}}}{2\,t_{\text{carry}}}} = O(\sqrt{N}),同时揭示其致命工程缺陷——静态时序分析(STA)伪路径(False Path, 与 )。

CLASSROOM CIRCUIT & SLIDE VECTOR RECONSTRUCTION · 课堂电路/特性原图与红笔批注矢量化复原

课堂原图复原 3:进位跳转模块三路径与伪路径、16 位关键路径分解及 M* = O(√N) 极值()

复原第 5.3 节课件核心板书:左图为 4-bit 进位跳转模块的蓝/红/绿三路径与 STA 伪路径机理;中图为 16-bit 最坏关键路径(首尾行波、中间跳转);右图为均值不等式求最优分组 M*。
1. 进位跳转模块三条路径与伪路径 (P42 03:49) 组传播信号:BP = P1 · P2 · P3 · P4 (Step ① 提前算好) 4-bit 组内进位链 (C1→C4) 0 1 MUX 蓝线跳转路径 (BP=1 时 Ci0 直通 Co4) 绿线:Ci0 仍需连入组内,供本地 S1..S4 求和 (P42 05:22) 红线:BP=0 时由组内某位产生/消灭进位,经 0 端输出 ★ 静态时序分析 (STA) 伪路径陷阱 (P42 07:33–08:57): 拓扑上存在“Ci0 → 穿组内 4 级进位 → 走 MUX 的 0 端”路径, 但若 Ci0 能穿完整组到达 MUX,说明 P1..P4 全为 1 (BP=1), 此时 MUX 必选 1 端而关断 0 端!该路径物理上永不触发, 但 STA 工具不识逻辑功能,会误报其比行波进位更慢 (P42 20:10)! 2. 最坏关键路径分解 (N=16, K=4, M=4) 最坏起点:第 1 组最低位 A1, B1 产生 C1 (而非 Cin0) Group 1 行波 M 级 Group 2 BP=1 跳转 Group 3 BP=1 跳转 Group 4 (M-1)τ+S16 连续经过 (K - 1) = 3 个 MUX 选择器 条件:P2..P4 = 1,中间组 P5..P12 = 1,末组 P13..P15 = 1 关键路径五段求和 (P42 10:34–12:52,设每组 M = N/K 位): ① 首组 PG 产生与 M 次进位:tPG + M · τ ② (K - 1) 次组间 MUX 旁路跳转:(N/M - 1) · tm ③ 末组 (M - 1) 次进位与 SN 异或:(M - 1) · τ + tXOR ⇒ td = tPG + (2M - 1)τ + (N/M - 1)tm + tXOR 3. 均值不等式极值与 O(√N) 最优分组 组内行波 2Mτ 跳转 (N/M)tm 极小值点 M* M* = √(N·tm / 2τ) 均值不等式 a + b ≥ 2√(ab) (课堂 P42 13:18–15:59): 2Mτ + (N/M)tm ≥ 2√(2N · τ · tm) = O(√N) • 当 2Mτ = (N/M)tm 时取等号 ⇒ M* = √(N·tm / (2τ)) • 位宽从 4 位扩至 64 位 (16倍):RCA 慢 16 倍,跳转仅慢 4 倍!

组传播信号与三路径分支():BP=∏i=1MPi;BP=1 走蓝线 MUX 跳转,BP=0 走红线本地进位B_P = \prod_{i=1}^M P_i; \quad B_P=1 \text{ 走蓝线 MUX 跳转}, \quad B_P=0 \text{ 走红线本地进位}

最坏关键路径闭合式():tp=tsetup+Mtcarry+(NM−1)tbypass+(M−1)tcarry+tsumt_p = t_{\text{setup}} + M t_{\text{carry}} + \left(\frac{N}{M}-1\right)t_{\text{bypass}} + (M-1)t_{\text{carry}} + t_{\text{sum}}

最优每组位数与平方根延时():M∗=N tbypass2 tcarry,tp,min⁡≈22N tcarry tbypass=O(N)M^* = \sqrt{\frac{N\,t_{\text{bypass}}}{2\,t_{\text{carry}}}}, \qquad t_{p,\min} \approx 2\sqrt{2N\,t_{\text{carry}}\,t_{\text{bypass}}} = O(\sqrt{N})

3.1 组传播信号 BPB_P 与组内三条信号路径的功能解耦

在 中,老师一针见血地指出:无论把单个全加器的进位延时 τ\tau 优化得多快,行波进位加法器(RCA)的延时始终正比于位宽 NN——6464 位永远比 1616 位慢 44 倍、比 88 位慢 88 倍。要打破 O(N)O(N) 线性标度律,必须改造整体互连架构!

进位跳转加法器(Carry-Bypass / Carry-Skip Adder)的做法极为精巧():将 NN 位行波加法器等分为 KK 组,每组包含 M=N/KM = N / K 位(课堂以 N=16,K=4,M=4N=16, K=4, M=4 为例)。在每一组内部,除了每比特各自产生 Pi=Ai⊕BiP_i = A_i \oplus B_i 外,额外用一个 MM 输入与门定义组进位传播信号(Block Propagate, BPB_P): BP=∏i=1MPi=P1⋅P2⋯PMB_P = \prod_{i=1}^{M} P_i = P_1 \cdot P_2 \cdots P_M 由于每个 PiP_i 只依赖早到的本位输入 (Ai,Bi)(A_i, B_i),BPB_P 同样在第 1 步(PG 预产生阶段)就全部提前算好了,完全无需等待低位进位()!用 BPB_P 控制每组末尾的二选一多路器(2-to-1 MUX),组内立刻分化出三条各司其职的物理路径():

  1. 蓝色跨组跳转路径(当 BP=1B_P = 1 时激活,走 MUX 的 11 端):BP=1B_P = 1 意味着组内 MM 个比特全部处于传播态(P1=P2=⋯=PM=1P_1=P_2=\dots=P_M=1),此时整组的进位输出必然等于本组的进位输入(Cout,block=Cin,blockC_{\text{out,block}} = C_{\text{in,block}})。因此 Cin,blockC_{\text{in,block}} 无需逐位穿过 MM 个全加器,而是直接通过 MUX 的 11 端一步跳到下一组!
  2. 红色本地进位产生/消灭路径(当 BP=0B_P = 0 时激活,走 MUX 的 00 端):BP=0B_P = 0 意味着组内至少有一位满足 Pi=0P_i = 0(该位必为 Gi=1G_i=1 产生进位或 Di=1D_i=1 消灭进位)。此时本组向高位的进位输出完全由本组内部这 MM 位决定,与前级传来的 Cin,blockC_{\text{in,block}} 毫无关系,经组内进位链由 MUX 的 00 端输出()。
  3. 绿色本地求和路径(为什么 Cin,blockC_{\text{in,block}} 仍需连入组内最低位?):既然 BP=1B_P=1 时进位走蓝线旁路、BP=0B_P=0 时进位由本地产生,为什么还要保留把 Cin,blockC_{\text{in,block}} 送进组内第 1 位的连线?为了计算本组内部 MM 个比特的本位和 S1∼SMS_1 \sim S_M! 即使第 4 位自己产生进位截断了向上传播,第 1∼31\sim 3 位的求和 Sk=Pk⊕Ck−1S_k = P_k \oplus C_{k-1} 依然依赖从组外传进来的 Cin,blockC_{\text{in,block}}!

3.2 最坏关键路径定位与最优分组 M∗=O(N)M^* = O(\sqrt{N}) 解析推导

在剔除物理上不可能发生的伪路径后,整个 NN 位(分 KK 组、每组 M=N/KM = N/K 位)进位跳转加法器的真实最坏关键路径发生在什么输入组合下?()

  • 为什么最坏起点不是全局进位输入 Cin,0C_{\text{in,0}}? 若第 1 组满足 BP1=1B_{P1}=1,从 Cin,0C_{\text{in,0}} 进来会直接走 MUX 跳过去,反而极快!真正最慢的情况是:第 1 组第 1 位自己产生进位(G1=1,P1=0  ⟹  BP1=0G_1=1, P_1=0 \implies B_{P1}=0),而第 1 组其余 (M−1)(M-1) 位全为传播(P2=⋯=PM=1P_2=\dots=P_M=1),迫使进位老老实实走完第 1 组内部全部 MM 级进位链并穿过第 1 个 MUX 的 00 端;
  • 中间第 2∼(K−1)2 \sim (K-1) 组:全部处于组传播态(BP2=⋯=BP,K−1=1B_{P2} = \dots = B_{P,K-1} = 1),进位连续跳过中间 (K−2)(K-2) 个组的 MUX(加上第 1 组末尾 MUX,共经过 (K−1)=(N/M−1)(K-1) = (N/M - 1) 个 MUX);
  • 最末第 KK 组:为求出最高位和 SN=PN⊕CN−1S_N = P_N \oplus C_{N-1},进位在跳入第 KK 组后不能再跳过(否则只得到 CNC_N 而非 SNS_N),必须走绿色路径在末组内部串行传播 (M−1)(M-1) 级到达 CN−1C_{N-1}(此时 BPKB_{PK} 可为 00,如 PN=0P_N=0),最后经过 1 级异或门输出 SNS_N()!

将上述五段延时逐项相加(设单级进位延时为 τ=tcarry\tau = t_{\text{carry}},旁路多路器延时为 tm=tbypasst_m = t_{\text{bypass}},首尾固定开销为 tsetup=tPG,  tsum=tXORt_{\text{setup}} = t_{\text{PG}},\; t_{\text{sum}} = t_{\text{XOR}},): tp=tsetup+M tcarry⏟首组行波 M 级+(NM−1)tbypass⏟(K−1) 次 MUX 跳转+(M−1) tcarry⏟末组行波 (M−1) 级+tsumt_p = t_{\text{setup}} + \underbrace{M\,t_{\text{carry}}}_{\text{首组行波 } M \text{ 级}} + \underbrace{\left(\frac{N}{M} - 1\right) t_{\text{bypass}}}_{(K-1)\text{ 次 MUX 跳转}} + \underbrace{(M - 1)\,t_{\text{carry}}}_{\text{末组行波 } (M-1) \text{ 级}} + t_{\text{sum}} 合并关于每组位数 MM(课堂记组数为 K=N/MK = N/M)的可变项(): tp(M)=(tsetup−tcarry−tbypass+tsum)+[2M tcarry+NM tbypass]t_p(M) = \bigl(t_{\text{setup}} - t_{\text{carry}} - t_{\text{bypass}} + t_{\text{sum}}\bigr) + \left[ 2 M\,t_{\text{carry}} + \frac{N}{M}\,t_{\text{bypass}} \right] 由算术-几何均值不等式 a+b≥2aba + b \ge 2\sqrt{ab}(或对 MM 求导令 dtpdM=2tcarry−N tbypassM2=0\frac{\mathrm{d}t_p}{\mathrm{d}M} = 2 t_{\text{carry}} - \frac{N\,t_{\text{bypass}}}{M^2} = 0),当且仅当 2Mtcarry=NMtbypass2 M t_{\text{carry}} = \frac{N}{M} t_{\text{bypass}} 时总延时取全局极小值: M∗=N⋅tbypass2 tcarry=O(N),K∗=NM∗=2N⋅tcarrytbypassM^* = \sqrt{\frac{N \cdot t_{\text{bypass}}}{2\,t_{\text{carry}}}} = O(\sqrt{N}), \qquad K^* = \frac{N}{M^*} = \sqrt{\frac{2 N \cdot t_{\text{carry}}}{t_{\text{bypass}}}} 代入 M∗M^* 即得进位跳转加法器的理论最小延时: tp,min⁡=tconst+22N⋅tcarry⋅tbypass∝22Nt_{p,\min} = t_{\text{const}} + 2\sqrt{2 N \cdot t_{\text{carry}} \cdot t_{\text{bypass}}} \propto 2\sqrt{2N}

3.3 进位跳转加法器的工程软肋:静态时序分析(STA)伪路径灾难

在 与 中,老师高度评价了进位跳转加法器“仅增加约 5%∼10%5\%\sim 10\% 的多路器面积零头,就把延时从 O(N)O(N) 降为 O(N)O(\sqrt{N})”的惊艳性价比,但紧接着指出了阻碍其在现代 EDA 自动化综合流程中普及的致命缺点——伪路径(False Path):

  • 什么是伪路径? 在拓扑连接图上,确实存在一条“从 Cin,0C_{\text{in,0}} 进入第 1 组 →\to 穿过组内 MM 级进位链到节点 MM →\to 穿过 MUX 的 00 端 →\to 再穿第 2 组 MM 级进位链 →…\to \dots”的漫长串行路径,其拓扑长度甚至比普通行波进位加法器还多出了 KK 个 MUX()!
  • 为什么它在物理上绝不可能发生?() 假定信号真的能沿着绿色进位链穿过整组到达 MUX 的 00 端输入口,前提条件必然是该组内部所有位都处于传播态(P1=P2=⋯=PM=1P_1=P_2=\dots=P_M=1);然而一旦 P1∼PMP_1\sim P_M 全为 11,组传播信号必有 BP=1B_P = 1,MUX 的选择端早已把 00 端死死关断、强制切换到了 11 端旁路!因此“穿过组内进位链再从 MUX 的 00 端出去”是一个逻辑上自相矛盾、永远无法被激活的伪路径!
  • 对 EDA 静态时序分析(STA)的冲击():第四章讲过,静态时序分析工具(如 PrimeTime)只按拓扑图累加门延时而不做布尔功能穷举。如果不手工编写极其繁琐的 set_false_path\text{set\_false\_path} 约束去屏蔽每一条跨组伪路径,STA 工具就会把这条伪路径当成真实关键路径,误报进位跳转加法器“比行波进位还要慢”!
5.1–5.4 节核心实验 · 联动位数 $N$、每级进位延时 $t_{\text{carry}}$ 与旁路多路器延时 $t_{\text{bypass}}$

交互实验:行波进位(RCA)$O(N)$ 关键路径 vs 进位跳转(Carry-Bypass)最优分组 $M^*$ 计算器

将 N 位加法器分为 N/M 组(每组 M 位),当组传播信号 B_P = P_0·P_1···P_{M-1} = 1 时进位经多路器 MUX 直接跳过整组!求导验证最优分组宽度 M* = √(N·t_bypass / 2t_carry) = O(√N)!

当前分组 M=4 最坏关键路径延时 vs RCA17.0 t_c (纯行波 RCA 需 34 t_c,提速 2.0×)首组行波(4) + 中间 7.0 级旁路 MUX + 末组行波(4)
求导极值最优分组大小 M* 与 STA 假路径考点理论最优 M* = √(N·t_mux / 2t_c) ≈ 4 bits (17.0 t_c)STA 必须用 set_false_path 屏蔽“组内行波后再走本组普通出口”的伪最长路径!
1. 分组位数 M 与总传播延迟 t_p(M) 对钩曲线M 过小受困于 N/M 级 MUX 串联;M 过大受困于首尾 2M 级行波
平方根最优延迟谷底 (M*=4, t_p=17.0t_c)拖动上方滑块或点击预设按钮实时重算工作点
2. 最坏关键路径三段式拆解与伪路径 (False Path)复旦 881 必背公式:t_p = t_setup + M·t_c + (N/M - 1)·t_bypass + (M-1)·t_c + t_sum
第 1 段:首组最坏生成Bit 0 产生 → 行波 4 位第 2 段:中间跨组旁路连续跳过 6 个 B_P=1 组第 3 段:末组内部求和B_P=0 走末组内部 3 位STA 伪路径 (False Path)B_P=1 时走组内链属逻辑不可能!复旦 881 物理因果链与核心判据:• 组传播条件:B_P = P_0 · P_1 ··· P_{M-1} = 1 时,进位直接从组输入经 MUX 跳至组输出• 求导取极值:∂t_p/∂M = 2t_carry - (N/M²)t_bypass = 0 ⇒ M* = √(N·t_bypass / 2t_carry)• 为什么会触发 STA 假路径报警?静态时序工具不懂布尔互斥,需手动标注 set_false_path
STEP-BY-STEP CIRCUIT & FORMULA DERIVATION · 课堂电路状态机与公式分步推演
Step ①定义组传播信号 BPB_P 控制 2-to-1 MUX 实现跨组旁路跳转
BP=P1P2⋯PM  ⟹  Cout,block=BP⋅Cin,block+BP‾⋅CM,localB_P = P_1 P_2 \cdots P_M \implies C_{\text{out,block}} = B_P \cdot C_{\text{in,block}} + \overline{B_P} \cdot C_{M,\text{local}}

对应 :当组内 MM 位全为传播态(BP=1B_P=1)时,进位直接跳过 MM 级全加器经 MUX 的 11 端传至下一组。

Step ②追踪“首组行波 MM 位 + 中间 (N/M−1)(N/M-1) 次跳转 + 末组行波 (M−1)(M-1) 位”最坏路径
tp(M)=tsetup+(2M−1)tcarry+(NM−1)tbypass+tsumt_p(M) = t_{\text{setup}} + (2M - 1)t_{\text{carry}} + \left(\frac{N}{M} - 1\right)t_{\text{bypass}} + t_{\text{sum}}

对应 :最坏情况始于第 1 组最低位产生进位(BP1=0B_{P1}=0),跳过中间各组后在最末组行波至 CN−1C_{N-1} 并异或出 SNS_N。

Step ③应用均值不等式求导解出最优每组位数 M∗M^* 与 O(N)O(\sqrt{N}) 极小延时
dtpdM=2tcarry−N tbypassM2=0  ⟹  M∗=N tbypass2 tcarry\frac{\mathrm{d}t_p}{\mathrm{d}M} = 2t_{\text{carry}} - \frac{N\,t_{\text{bypass}}}{M^2} = 0 \implies M^* = \sqrt{\frac{N\,t_{\text{bypass}}}{2\,t_{\text{carry}}}}

对应 :将位宽 NN 从 44 扩至 6464(扩大 1616 倍)时,关键路径仅扩大 16=4\sqrt{16}=4 倍。

PPA 工程折中与复旦 881 高频母题思辨 (CRITICAL INSIGHT & 881 PITFALL)

【复旦 881 综合思辨】课堂 的双色时空延时图剖析:在进位跳转加法器的时空延时图中,为什么第 2,3,42, 3, 4 组的每一列上方都有一段灰色的斜线,下方又有一段蓝色的斜线?难道每一比特放了两个全加器吗? 老师在 专门澄清了这个极易混淆的物理概念:

  1. 硬件上每一比特只有 1 个全加器,灰色与蓝色代表同一硬件在两种不同输入状态下被激活的“可能时间窗口”!
    • 上方灰色斜线(本地产生进位窗口):如果该组内部某一位自己产生或消灭进位(对应红色路径 BP=0B_P=0),它根本不需要等待低位组传来的进位,在第 1 步 P,GP, G 算完后立刻就在极早的灰色时间窗口内完成了组内进位传播!
    • 下方蓝色斜线(低位跳转触发窗口):如果该位的求和或进位依赖于从第 1 组千里迢迢跳转过来的进位,那么本组的进位链必须一直空闲等待,直到前级进位穿过一系列 MUX 到达本组入口后,才在较晚的蓝色时间窗口内开始串行传播!
  2. 这也解释了为什么末组(第 4 组)只有蓝色斜线进入最坏关键路径:最坏关键路径正是“第 1 组走灰色窗口 →\to 中间组走水平 MUX 跳转线 →\to 最末组在蓝色窗口内走完 (M−1)(M-1) 级进位并求和”。
本节方法论与考题要点沉淀 · KEY TAKEAWAYS
  • 跨组旁路机制:当组传播信号 BP=∏i=1MPi=1B_P = \prod_{i=1}^M P_i = 1 时,进位直接经 MUX 跳过整组 MM 位,硬件仅增加 KK 个单比特选择器(约 5%∼10%5\%\sim 10\% 面积)。

  • 最优分组公式:最坏延时 tp=tsetup+(2M−1)tcarry+(N/M−1)tbypass+tsumt_p = t_{\text{setup}} + (2M-1)t_{\text{carry}} + (N/M-1)t_{\text{bypass}} + t_{\text{sum}},最优组宽 M∗=N tbypass2 tcarryM^* = \sqrt{\frac{N\,t_{\text{bypass}}}{2\,t_{\text{carry}}}},主项延时为 22Ntcarrytbypass2\sqrt{2 N t_{\text{carry}} t_{\text{bypass}}}。

  • STA 伪路径缺陷:“穿过组内进位链再走 MUX 的 00 端”在逻辑上自相矛盾(PiP_i 全 11 时 00 端必关断),但会导致静态时序分析工具误报超长违例。

流水线加法器(Pipelined Adder)

当系统架构允许引入几个时钟周期的潜伏期(Latency)以换取极高的数据吞吐率(Throughput)时,在行波进位加法器内部插入流水线寄存器是最直接的加速手段。本节基于图论重定时(Retiming)的单向割集(Cutset)定理,严格推导高低半位输入/输出对齐寄存器的必要性,定量对比三步式全加器内部两种割线的寄存器代价(1.5 vs 2.0 DFF/bit),并从次关键路径(Sub-critical Path)角度解释为何进位跳转加法器不适合做流水线切分。

CLASSROOM CIRCUIT & SLIDE VECTOR RECONSTRUCTION · 课堂电路/特性原图与红笔批注矢量化复原

课堂原图复原 4:流水线重定时割集定理、绿/红割线代价对比与进位跳转次关键路径瓶颈()

复原第 5.4 节课件核心板书:左图为 4-bit RCA 单向割线与高低位对齐寄存器;中图为三步式 RCA 绿色割线(1.5 DFF/bit)与红色割线(2.0 DFF/bit)对比;右图为 16-bit 进位跳转切流水线后蓝色次关键路径成为新瓶颈。
1. 流水线重定时割线与高低位同步对齐 (P43 01:32) 9 输入 5 输出组合逻辑:单向割线 (红虚线) 一次割断 输入 DFF: A3,4 B3,4 高位 FA3, FA4 DFF 低位 FA1, FA2 输出 DFF: S1, S2 为什么不能只在进位链插 1 个寄存器?(P43 01:56–04:55) • 高位进位 C2 晚到一拍,故高位输入 A3,4/B3,4 必须延时一拍对齐; • 低位和 S1,2 早出一拍,故低位输出必须加寄存器延时一拍对齐; • 重定时铁律:割线必须将所有输入到输出路径单向同级切开! 2. 绿割线 vs 红割线:寄存器开销与路径折中 方案 A:绿色最优割线 (P43 06:00–07:54) • 高半位割在 PG 产生后 (每比特存 Pi, Gi 共 2 个 DFF) • 低半位割在 XOR 求和后 (每比特仅存 Si 共 1 个 DFF) ⇒ 平均每比特寄存器数 = (2 + 1) / 2 = 1.5 个 DFF/bit 方案 B:红色激进割线 (P43 07:54–09:27) • 低半位割在 XOR 求和之前 (每比特需存 Pi 与 Ci-1 共 2 个 DFF) ⇒ 平均每比特增至 2.0 个 DFF/bit (寄存器暴增 +33.3%!) • 收益:关键路径仅省去半个 XOR,缩短约 1/8 (得不偿失) RCA 两级流水线化前后指标对比 (P43 06:59–09:27): • 原组合关键路径:tPG + (N - 1)τ + tXOR • 绿割线后关键路径:tPG + (N/2 - 1)τ + tXOR ≈ 原来 1/2 • 吞吐率 (Throughput):最高时钟频率 fclk 近似翻倍 (2×) • 代价:增加 1.5N + 1 个触发器面积/功耗,潜伏期变为 2 拍 3. 为什么进位跳转加法器不适合流水线化? 16-bit 进位跳转中间一刀切开 (绿线,P43 11:25–15:36): 高半段 (Bit 9..16) 蓝线次关键路径未断! 低半段 (Bit 1..8) 蓝线次关键路径未断! • 原红线主路径 (长 10) 被割成两段 5,但组内蓝线次路径 (长 9) 完全位于单侧未被割开!割后关键路径是 9 而非 5 (P43 13:30)! • 仅省去中间 2 个跳转 MUX 常数项,延时几乎未折半! ★ 课堂 P43 15:36–17:02 核心架构设计铁律: 1) 凡是允许采用流水线技术的同步场景,直接对最简单的 行波进位加法器 (RCA) 切多级流水即可达到任意高频率! 2) 进位跳转/选择/对数树等高级加法器仅用于纯组合逻辑加速, 其内部次关键路径极多,强行加流水线纯属浪费寄存器面积!

单向割集重定时条件():任意输入 →任意输出穿过割线次数恒为 k  ⟹  高低位数据严格同拍对齐\text{任意输入 } \to \text{任意输出穿过割线次数恒为 } k \implies \text{高低位数据严格同拍对齐}

三步式 RCA 两种割线寄存器开销():NDFF,green=2⋅N2+1+1⋅N2=1.5N+1vsNDFF,red=2N+1N_{\text{DFF,green}} = 2\cdot\frac{N}{2} + 1 + 1\cdot\frac{N}{2} = 1.5N + 1 \quad \text{vs} \quad N_{\text{DFF,red}} = 2N + 1

进位跳转流水线化失效原因():tp,pipelined=max⁡ ⁣(tred2,  tblue,sub)=tblue,sub≈tred−2tbypass  (收益极小)t_{p,\text{pipelined}} = \max\!\left(\frac{t_{\text{red}}}{2},\; t_{\text{blue,sub}}\right) = t_{\text{blue,sub}} \approx t_{\text{red}} - 2t_{\text{bypass}} \;(\text{收益极小})

1. 从进位链插寄存器到全图单向割集(Cutset)定理

在数字信号处理(DSP)与微处理器算术流水线中,如果组合加法器的延时过长,最直接的想法是在进位链正中间插入触发器(Register)。老师在 用一个 4 位行波进位加法器演示了流水线化的严密拓扑规则:

  1. 高低半位的数据失步危机()
    如果在第 2 位输出进位 C2C_2 处插入一个寄存器:

    • 第 1,21, 2 位全加器在当前时钟周期(第 kk 拍)算完 S1(k),S2(k)S_1^{(k)}, S_2^{(k)} 直接输出;而进位 C2(k)C_2^{(k)} 被寄存器挡住,要等下一个时钟上升沿(第 k+1k+1 拍)才送入第 3 位全加器。
    • 若高半位输入 A3,B3,A4,B4A_3, B_3, A_4, B_4 不加寄存器,那么在第 k+1k+1 拍,第 kk 拍产生的进位 C2(k)C_2^{(k)} 就会与第 k+1k+1 拍新送入的 A3(k+1),B3(k+1)A_3^{(k+1)}, B_3^{(k+1)} 相加,彻底算错!
    • 修复方案:必须在高半位输入端 A3,B3,A4,B4A_3, B_3, A_4, B_4 各串入 1 个寄存器(把第 kk 拍的高位数据留到第 k+1k+1 拍再与 C2(k)C_2^{(k)} 汇合),同时在低半位输出端 S1,S2S_1, S_2 各串入 1 个寄存器(把第 kk 拍算好的低位和延时到第 k+1k+1 拍,与高位和 S3(k),S4(k),C4(k)S_3^{(k)}, S_4^{(k)}, C_4^{(k)} 同步输出)。
  2. 重定时(Retiming)的割线判定法则()
    把上述所有插入的寄存器连成一条虚线,恰好构成一条将电路一分为二的单向割线(Feedforward Cutset):

    • 割线必须从电路边界一端完整画到另一端,不能留有缺口;
    • 所有跨越割线的信号箭头必须同向(全部从割线左上方流向右下方);
    • 重定时不变量:只要满足单向割集条件,从 9 个输入端(A1∼A4,B1∼B4,C0A_1\sim A_4, B_1\sim B_4, C_0)中的任意一个,到 5 个输出端(S1∼S4,C4S_1\sim S_4, C_4)中的任意一个,沿任何通路走都必然穿过割线恰好 1 次(即经历严格相同的 1 拍流水线潜伏期)。

2. 三步式 RCA 的割线优化:绿色割线(1.5 DFF/bit)vs 红色割线(2.0 DFF/bit)

当把全加器拆解为“① P,GP,G 产生 →\to ② 进位传播 →\to ③ 求和异或”三步后,老师在 对比了课件上的两条经典割线(以 16 位加法器切两级流水为例,每半边 8 位):

对比维度 绿色割线方案(课件推荐,) 红色割线方案(过度均分,)
高半位(第 9~16 位)割点 割在第 1 步(PG 产生)之后,锁存 Pi,GiP_i, G_i(2 DFF/bit) 割在第 1 步(PG 产生)之后,锁存 Pi,GiP_i, G_i(2 DFF/bit)
进位链中间割点 割在 C8C_8 处(1 DFF) 割在 C8C_8 处(1 DFF)
低半位(第 1~8 位)割点 割在第 3 步(求和 SiS_i)之后,仅锁存 SiS_i(1 DFF/bit) 割在第 2 步之后、第 3 步之前,需锁存 PiP_i 与 Ci−1C_{i-1}(2 DFF/bit)
每比特平均寄存器开销 2+12=1.5 DFF/bit\frac{2 + 1}{2} = \mathbf{1.5\text{ DFF/bit}}(16 位共 16+1+8=2516+1+8=25 个) 2+22=2.0 DFF/bit\frac{2 + 2}{2} = \mathbf{2.0\text{ DFF/bit}}(16 位共 16+1+16=3316+1+16=33 个)
两拍各自逻辑级数(16-bit) 第 1 拍:1(PG)+8(Carry)+1(Sum)=101(\text{PG}) + 8(\text{Carry}) + 1(\text{Sum}) = 10 级
第 2 拍:8(Carry)+1(Sum)=98(\text{Carry}) + 1(\text{Sum}) = 9 级(瓶颈 10 级)
第 1 拍:1(PG)+8(Carry)=91(\text{PG}) + 8(\text{Carry}) = 9 级
第 2 拍:8(Carry)+1(Sum)=98(\text{Carry}) + 1(\text{Sum}) = 9 级(瓶颈 9 级)
  • 工程权衡结论():红色割线为了把第 1 拍末尾那 1 级异或门(tsumt_{\text{sum}})挪到第 2 拍,让关键路径从 10 级门微降至 9 级门(仅缩短约 10%10\%),却迫使低半位每一比特在跨周期时同时保存 PiP_i 和 Ci−1C_{i-1} 两个信号,导致寄存器面积和时钟树功耗激增 33%33\%!因此工程上无一例外采用绿色割线。

3. 深度剖析:为什么进位跳转加法器(Carry-Bypass)不适合做流水线?

既然 16 位进位跳转加法器比 16 位 RCA 快得多,那我们在 16 位进位跳转加法器正中间(第 8 位与第 9 位之间)再切一刀流水线,岂不是能“快上加快”?老师在 给出了令人警醒的否定证明:

  1. 未切流水线时的双路径格局()
    以 16 位(M=4,K=4M=4, K=4)进位跳转加法器为例(假定每步单位延时为 11):

    • 红色主关键路径(跨全长 16 位):第 1 组 1 级 PG + 4 级进位 →\to 第 2、3 组 2 级跳转 MUX →\to 第 4 组 3 级进位 + 1 级求和,总长为 1+4+2+3+1=111 + 4 + 2 + 3 + 1 = 11(若按课件简化计法为 4+3+3=104 + 3 + 3 = 10)。
    • 蓝色次关键路径(完全位于低 8 位第 1、2 组内部,或高 8 位第 3、4 组内部):第 1 组产生进位走 4 级 →\to 经过第 1 组末尾 1 级 MUX →\to 在第 2 组内部不跳转而走完 3 级进位并求和,总长为 1+4+1+3+1=101 + 4 + 1 + 3 + 1 = 10(按课件简化计法为 4+1+3=84 + 1 + 3 = 8 或 99)!
  2. 一刀切下后的“次关键路径转正”效应()
    当我们在第 2 组(低 8 位)与第 3 组(高 8 位)之间画一条流水线割线:

    • 原本跨 16 位的红色主关键路径确实被一刀切成两半(长度从 1010 降到 55);
    • 但是,完全处于割线左侧(第 1、2 组内部)以及完全处于割线右侧(第 3、4 组内部)的蓝色次关键路径根本没有穿过割线!它的长度依然高达 8∼98\sim 9!
    • 最终结果:耗费了二十多个触发器插入一级流水线后,电路的最高时钟周期被未割断的蓝色次关键路径卡死在 8∼98\sim 9,相比未流水线时的 1010 仅仅省去了中间 2 个跳转 MUX 的延时!
    • 架构铁律():进位跳转加法器是纯组合逻辑场景下的低成本折中方案;一旦系统允许使用流水线(Pipelining),直接对结构规整、无次关键路径旁路的普通行波进位加法器(RCA)切多级流水线,无论在面积、功耗还是主频上都完胜流水线化的进位跳转加法器!
LAB 5.4 · PIPELINED ADDER & CUTSET RETIMING

流水线加法器对角割集重定时(绿线 1.5 DFF/bit vs 红线 2.0 DFF/bit)面积与吞吐率折中台

在 N 位行波进位链级间插入流水线寄存器可将最高工作频率提升 N 倍!重点对比课堂两道对角割集切法:为什么在算完 (P_i, G_i) 之后下刀(绿线割集)能比在输入端 A_i, B_i 直接下刀(红线割集)净省 25% 的寄存器面积?

8 位流水线加法器总对齐寄存器消耗共需 50 个 DFF (绿线割集 1.5 DFF/格)高位操作数等待低位进位需插入三角阵列对齐寄存器,面积按 O(N²) 增长
为什么绿线割集比红线割集省 25% 寄存器?(P43 压轴考点)把 G_i 在本级直接并入进位链,无需跨级锁存 G_i!进入第3步求和 S_i = P_i ⊕ C_{i-1} 只需保存 1比特 P_i,比同时保存 (A_i, B_i) 2比特少用 1 个 DFF/格!
1. 位宽 N 与流水线对齐寄存器总数 O(N²) 曲线绿线割集:仅锁存 P_i 与已产生进位
绿线割集最小寄存器下界拖动上方滑块或点击预设按钮实时重算工作点
2. 流水线加法器时空对齐与割集重定时法则吞吐率 1 Result / Clock · 潜伏期 Latency = N Clocks
输入侧三角锁存阵仅存 1-bit P_i / 拍输出侧倒三角锁存阵存已算完低位 S_i (1-bit/拍)级间进位寄存器每级仅 1 个 C_i 寄存器最高时钟频率 f_max提升 8.0×复旦 881 物理因果链与核心判据:• 为什么要加输入/输出三角寄存器阵列?保证同一拍输入的 A,B 各比特在相同时刻重逢输出• 红线割集 (P43 10:15):在 PG 逻辑前切刀,上方每格需锁存 A_i 和 B_i 共 2 个 DFF,平均 2.0 DFF/格• 绿线割集 (P43 13:50):在 PG+C_o 之后、Sum 之前切刀,上方每格仅锁存 P_i (1个DFF),平均 1.5 DFF/格
STEP-BY-STEP CIRCUIT & FORMULA DERIVATION · 课堂电路状态机与公式分步推演
Step ①在进位链中间插寄存器的同时补齐高半位输入与低半位输出对齐寄存器
Ahigh,Bhigh→DFFStage 2,Slow→DFFOutputA_{\text{high}}, B_{\text{high}} \xrightarrow{\text{DFF}} \text{Stage 2}, \qquad S_{\text{low}} \xrightarrow{\text{DFF}} \text{Output}

对应 :构成完整单向割集(Cutset),确保所有输入到输出路径具有相同的流水线级数。

Step ②优选“高半位 PG 后 + 低半位 Sum 后”绿色割线节省 25%25\% 寄存器
Green Cut: 1.5 DFF/bitvsRed Cut: 2.0 DFF/bit\text{Green Cut: } 1.5\text{ DFF/bit} \quad \text{vs} \quad \text{Red Cut: } 2.0\text{ DFF/bit}

对应 :红色割线为匀出 1 级异或门延时而迫使低半位存 (Pi,Ci−1)(P_i, C_{i-1}) 双信号,得不偿失。

Step ③识别进位跳转加法器内部未被割开的蓝色次关键路径瓶颈
Δtsaved=tred−tblue=(K/2) tbypass≪12tred\Delta t_{\text{saved}} = t_{\text{red}} - t_{\text{blue}} = (K/2)\,t_{\text{bypass}} \ll \frac{1}{2}t_{\text{red}}

对应 :单侧半区内“首组产生 + 邻组行波求和”的蓝色次关键路径未穿过割线,限制了流水线提速。

PPA 工程折中与复旦 881 高频母题思辨 (CRITICAL INSIGHT & 881 PITFALL)

【复旦 881 综合思辨】课堂 追问:在三步式 RCA 的流水线设计中,为什么高半位(第 3,43, 4 位)的割线不直接画在最顶部的原始输入端 A3,B3,A4,B4A_3, B_3, A_4, B_4(那样本位也要存 2 个寄存器),而是非要先经过第 1 步算出 P3,G3,P4,G4P_3, G_3, P_4, G_4 之后再画割线存 P,GP, G(同样是 2 个寄存器)? 仔细对比这两种画法会发现一个绝妙的时序收益:

  1. 寄存器数量完全相同:存 (Ai,Bi)(A_i, B_i) 是 2 个 DFF/bit,存 (Pi,Gi)(P_i, G_i) 也是 2 个 DFF/bit,硬件面积没有任何增加!
  2. 第 1 拍免费“白嫖”了高半位的 PG 产生延时(tsetupt_{\text{setup}}):在第 1 个时钟周期内,当低半位正在紧锣密鼓地进行“PG 产生 + 进位链行波传播”时,高半位的输入信号 A3,B3,A4,B4A_3, B_3, A_4, B_4 反正已经到了!让高半位在第 1 拍就顺便把 P3,G3,P4,G4P_3, G_3, P_4, G_4 算出来并锁存进寄存器,那么到了第 2 个时钟周期,锁存出来的 C2C_2 一到,高半位完全不需要再花 tsetupt_{\text{setup}} 时间去算 P,GP, G,直接就能启动第 2 步进位传播!这就把第 2 拍的关键路径硬生生缩短了一个 tsetupt_{\text{setup}}!
本节方法论与考题要点沉淀 · KEY TAKEAWAYS
  • 重定时单向割集法则:流水线寄存器必须沿单向割集插入,确保所有输入至输出路径经历相同拍数;高半位需输入延时对齐,低半位需输出延时对齐。

  • 绿色割线黄金法则:在三步式 RCA 中,高半位割在 PG 产生后(存 Pi,GiP_i, G_i)、低半位割在求和后(存 SiS_i),仅需 1.51.5 DFF/bit 即可实现近乎翻倍的吞吐率。

  • 次关键路径陷阱:进位跳转加法器切流水线时,单侧半区内部不跳转的蓝色次关键路径未被割断,导致提速极小;允许流水线时应直接采用流水线 RCA。

FUDAN 881 & CLASSROOM CHECKS · 第 11 讲随堂思辨与 881 母题自测

检验你是否真正掌握了「算术运算单元(Ⅰ):全加器电路、行波进位、进位跳转与流水线加法器」的物理机制与 881 考题边界

先独立判断,再展开详细解析。每道题均紧扣本讲(P40–P43)课堂追问与复旦 881 数字集成电路真题母题。

CHECK 01

【复旦 881 真题风格 · 28T 镜像全加器综合】关于标准 28 管互补 CMOS 镜像全加器(Mirror Full Adder,),下列关于其拓扑与性能优化的说法中,错误的是:

选择答案

CHECK 02

【复旦 881 真题风格 · TG 全加器与曼彻斯特进位链】在对比 24 管传输门全加器(TG Adder,)与动态曼彻斯特进位链(Manchester Carry Chain,)时,下列物理机理分析正确的是:

选择答案

CHECK 03

【复旦 881 真题风格 · 三步式全加器关键路径定量计算】设 N=32N=32 位三步式行波进位加法器(RCA)中,第 1 步产生 (Pi,Gi)(P_i, G_i) 延时为 tsetup=1.5 nst_{\text{setup}} = 1.5\text{ ns},第 2 步单级进位传播延时为 tcarry=1.0 nst_{\text{carry}} = 1.0\text{ ns},第 3 步异或求和延时为 tsum=2.0 nst_{\text{sum}} = 2.0\text{ ns}。若按课件规范公式计算,该 32 位加法器到达最高位和 S32S_{32} 的最坏关键路径延时 tpt_p 为:

选择答案

CHECK 04

【复旦 881 真题风格 · 进位跳转加法器最优分组推导】设计一个 N=64N=64 位的等宽进位跳转加法器(Carry-Bypass Adder),设每级进位传播延时 tcarry=1 单位t_{\text{carry}} = 1\text{ 单位},跨组 2-to-1 MUX 旁路延时 tbypass=2 单位t_{\text{bypass}} = 2\text{ 单位},且 tsetup=tsum=1 单位t_{\text{setup}} = t_{\text{sum}} = 1\text{ 单位}。利用课堂公式 tp(M)=tsetup+(2M−1)tcarry+(N/M−1)tbypass+tsumt_p(M) = t_{\text{setup}} + (2M-1)t_{\text{carry}} + (N/M - 1)t_{\text{bypass}} + t_{\text{sum}},求使总延时最小的最优每组位数 M∗M^* 及其对应的最小总延时 tp,min⁡t_{p,\min}:

选择答案

CHECK 05

【复旦 881 真题风格 · 进位跳转加法器伪路径(False Path)】在进位跳转加法器中,静态时序分析(STA)工具常会报告一条“从组进位输入 Cin,blockC_{\text{in,block}} 经组内 MM 级全加器串行传播到 CM,localC_{M,\text{local}},再穿过组尾 MUX 的 00 输入端输出”的超长路径。为什么该路径在物理上被称为伪路径(False Path,)?

选择答案

CHECK 06

【复旦 881 真题风格 · 流水线加法器割线设计与次关键路径】关于流水线加法器()的架构设计,下列说法正确的是:

选择答案
本讲核心概念、器件符号与中英术语对照 (10 项)
行波进位加法器 (Ripple Carry Adder, RCA)

将 NN 个 1-bit 全加器级联、把低位输出进位 CiC_i 依次串行连接至相邻高位输入进位的加法器结构。电路极度规整紧凑,但最坏关键路径延时与位宽 NN 成线性正比:tp=tsetup+(N−1)tcarry+tsum=O(N)t_p = t_{\text{setup}} + (N-1)t_{\text{carry}} + t_{\text{sum}} = O(N)。

28 管镜像全加器 (28T Mirror Full Adder)

利用全加器真值表的自对偶性(Co‾(A,B,Ci)=Co(A‾,B‾,Ci‾)\overline{C_o}(A,B,C_i) = C_o(\overline{A},\overline{B},\overline{C_i})),使进位级与求和级的上拉 PMOS 网和下拉 NMOS 网呈现完全镜像对称而非串联互为并联对偶的经典静态 CMOS 全加器。进位关键路径需串联通过内层晶体管,常结合奇偶位反相交替省去反相器。

24 管传输门全加器 (24T Transmission Gate Adder)

利用 CMOS 传输门(TG)高效实现异或门(P=A⊕BP = A \oplus B)与进位/求和 2-to-1 多路选择器(Co=PCi+P‾AC_o = P C_i + \overline{P} A,S=P⊙CiS = P \odot C_i)的全加器,仅需 24 管且消除了求和路径与进位路径的延时差,但直接级联会引入 O(N2)O(N^2) 分布式 RC 延时。

产生、传播与消灭信号 (Generate, Propagate, Delete — G, P, D)

三步式全加器对本位输入 (Ai,Bi)(A_i, B_i) 的正交完备逻辑提取:Gi=AiBiG_i = A_i B_i(产生进位 Ci=1C_i=1)、Di=Ai‾ Bi‾D_i = \overline{A_i}\,\overline{B_i}(消灭进位 Ci=0C_i=0)、Pi=Ai⊕BiP_i = A_i \oplus B_i(将前级进位原样传出 Ci=Ci−1C_i = C_{i-1})。满足 Ci=Gi+PiCi−1C_i = G_i + P_i C_{i-1} 与 Si=Pi⊕Ci−1S_i = P_i \oplus C_{i-1}。

曼彻斯特进位链 (Manchester Carry Chain)

基于 Gi,Pi,DiG_i, P_i, D_i 三信号控制的开关进位链。在动态预充电实现中,仅需预充高电平并用受 PiP_i 控制的 NMOS 传输管串联传递放电低电平(旁路掉 DiD_i 支路),单级面积小、速度快,但受限于串联 RC 的 O(M2)O(M^2) 延时,每 44 位必须插入一级反相器切段再生。

进位跳转加法器 (Carry-Bypass / Carry-Skip Adder)

将 NN 位加法器分为 K=N/MK=N/M 个 MM 位小组,每组增加一个计算组传播信号 BP=∏i=1MPiB_P = \prod_{i=1}^M P_i 的与门和一个 2-to-1 旁路多路器(MUX)。当组内所有位均为传播态(BP=1B_P=1)时,进位直接跳过 MM 级全加器经 MUX 传向下一组,使最坏延时降至 O(N)O(\sqrt{N})。

最优分组位数 (Optimal Block Size M*)

在等宽分组进位跳转加法器中,平衡首尾组内行波延时 (2M−1)tcarry(2M-1)t_{\text{carry}} 与中间跨组跳转延时 (N/M−1)tbypass(N/M-1)t_{\text{bypass}} 的极值解:由均值不等式得 M∗=N tbypass2 tcarryM^* = \sqrt{\frac{N\,t_{\text{bypass}}}{2\,t_{\text{carry}}}},对应最小主项延时 22N tcarry tbypass2\sqrt{2N\,t_{\text{carry}}\,t_{\text{bypass}}}。

伪路径 (False Path)

电路拓扑图上物理连通、但因沿途各逻辑门的导通敏感化条件相互矛盾(如进位跳转模块中穿过 MM 位全加器要求 BP=1B_P=1,而走组尾 MUX 的 00 端要求 BP=0B_P=0)而在任何输入向量下都永远不可能被激活的虚假路径。需在 STA 中用约束排除。

流水线重定时割集 (Pipelining Retiming Cutset)

在组合逻辑有向无环图(DAG)中插入流水线寄存器的拓扑准则:寄存器必须放置在一条将图完全切开且所有跨界边方向一致的割线(Feedforward Cutset)上,从而保证从任意输入到任意输出的所有通路经过相同数量的寄存器(如高低半位输入/输出延时对齐)。

次关键路径瓶颈 (Sub-critical Path Bottleneck)

对进位跳转加法器进行跨组流水线切分时,虽然横跨全长的红色主关键路径被割断减半,但完全位于单侧半区内部(如第 1 组产生进位并在第 2 组行波求和)的蓝色次关键路径未穿过割线,反而取代主路径成为限制时钟频率的新瓶颈。

硅基与时序 · 复旦大学《数字集成电路设计基础》深度精读讲义 · 原课无遮挡 1.5× 对位回看与复旦 881 考纲联动