第 11 讲 · 算术运算单元(Ⅰ):全加器电路、行波进位、进位跳转与流水线加法器
Full Adder Topologies, Manchester Carry Chain, Carry-Bypass & Pipelined Adders
P40–P43 · 第五章 5.1–5.4 节:从 28T 镜像全加器、24T 传输门全加器、G/P/D 三步式曼彻斯特进位链到 O(√N) 进位跳转及流水线重定时割集理论
本讲主线与问题意识 · 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* 计算器」。
完整掌握 P40–P43 (5.1 全加器 · 5.2 三步式全加器与行波进位加法器 · 5.3 进位跳转加法器 · 5.4 流水线加法器) 的物理机理、一阶等效模型与闭式解析公式。
通过配套交互实验(交互实验:行波进位(RCA)O(N) 关键路径 vs 进位跳转(Carry-Bypass)最优分组 M* 计算器)直观验证设计参数折中与复旦 881 高频母题。
三步式全加器、RCA 与曼彻斯特进位链
进位跳转加法器(Carry-Bypass)与伪路径
流水线加法器(Pipelined Adder)与割集定理
1. 一位全加器(1-bit Full Adder)布尔机理、28 管互补 CMOS 拓扑与自互补镜像优化:为什么进位路径 统治了算术单元的速度极限?(5.1 节)
从多位宽算术运算的可扩展性与速度-面积-功耗折中出发(),剖析一位全加器的本位和 (奇偶判断)与进位输出 (三输入多数表决,)。详解常规 28 管互补 CMOS 全加器借用 简化求和逻辑、将关键信号 置于最靠近输出的内侧管(Inner Input),并利用全加器自互补定律 衍生出奇偶交替消反相器链、24 管上下轴对称镜像全加器(Mirror Adder)与 16 管传输门(TG)全加器()。
课堂原图复原 1:全加器真值表自互补对称性、28 管 CMOS 拓扑与奇偶交替消反相器链()
多数表决与借用 求和( 与 ):
自互补恒等式():
镜像全加器轴对称物理根源():一般 CMOS 门的 PUN 与 PDN 是串并互换的对偶图;唯独全加器因自互补,PUN 与 PDN 连串并联结构都 100% 相同,直接实现上下镜像对称版图!
1.1 一位全加器真值表的双重物理含义:奇偶校验与多数表决
- 在第五章开篇 中,叶凡老师指出:加减乘除与多位比较/移位等算术运算单元无法当作扁平的大规模组合逻辑硬做,必须依靠规整的可扩展基本单元级联推广至 、 乃至 。
- 一切算术单元的基石是一位全加器(1-bit Full Adder, FA)——输入两个本位操作数 与低位进位输入 ,输出本位和 与向高位的进位输出 (若抹去 则退化为半加器 Half Adder:,)。
观察 3 输入 8 行真值表(), 与 的布尔表达式蕴含着极其直观的组合逻辑意义:
- 本位和 = 三输入中“”出现次数的奇偶判断器(Parity Checker,):当 中有奇数个( 个或 个)为 时,;若有偶数个为 ,则 。
- 进位输出 = 三输入多数表决器(Majority Voter,):三个人投票,只要有 个或 个输入为 ,表决结果即满足 。
1.2 级联关键路径的不对称性与 28 管互补 CMOS 全加器优化
- 当把 个全加器级联成多位行波进位加法器时(),最长的组合逻辑关键路径是从最低位 。
- 老师强调():在全加器 3 输入到 2 输出的 6 条可能路径中,中间 级全部走的是 路径!因此全加器电路级设计的第一铁律是:不惜牺牲 甚至 的速度,全力缩短 的传播延时!
为此,工程上用已经算出的进位反相信号 代入代数化简本位和 (): 由此构建出经典的 28 管互补 CMOS 全加器():
- 进位级(12 管)+ 输出反相器(2 管):用 6 个 NMOS 与 6 个 PMOS 实现单级复合门 ,再接 1 个反相器恢复同相 。版图与管序核心细节:将最晚到达的关键信号 驱动的晶体管放置在最靠近输出节点 的内侧位置(Inner Input),使早到的 提前泄放内部串联节点电容!
- 求和级(12 管)+ 输出反相器(2 管):复用内部节点 构造 ,再经反相器输出 。虽然求 需先等 从而慢了一拍,但大幅节省了三输入异或门所需的晶体管面积,且丝毫不拖累主干进位链 ()。
- 级联中间节点 的寄生负载剖析():前级输出反相器贡献 本征漏极结电容,后级全加器的 端口贡献 扇出栅电容(进位级 1N+1P,求和级 2N+2P)。
1.3 全加器自互补定律、奇偶交替消反相器与 24 管镜像 / 16 管传输门全加器
在 中,老师指出了 28 管全加器在 路径上最刺眼的浪费:复合门算出 时,多数表决逻辑已经 100% 完成,后面串联的反相器纯粹是为了恢复极性!能否直接删掉这个反相器?
- 全加器的自互补性(Self-Duality,):把真值表沿水平中线上下对折,输入按位取反(如 ),输出也恰好按位取反()!用布尔代数严格证明: 这意味着:同一个去掉了输出反相器的反相全加器电路,若输入接正极性 ,输出就是 ;若输入接反极性 ,其输出自动变成正极性的 ()!
- 奇偶位极性交替级联():将 个无进位反相器的全加器直接级联,奇数位(第 位)输出 直接喂给偶数位(第 位),偶数位输出直接恢复为正极性 !只需在所有偶数位的输入 与输出 外围各补 3 个反相器(共增加 个旁路反相器),就能将主干进位链上的 个串联反相器延时彻底清零!
| 全加器拓扑流派 | 晶体管总数 | 核心电路特征与优势 | 局限性与适用场景 |
|---|---|---|---|
| 常规互补 CMOS 全加器 | 轨到轨满摆幅、输出反相器提供强驱动隔离() | 含两级门延时,面积较大 | |
| 对称镜像全加器 (Mirror Adder) | 利用自互补性使上拉网 PUN 与下拉网 PDN 拓扑完全同构(上下轴对称,),版图极度紧凑规整 | 直接输出 ,级联时无反相器隔离 | |
| 传输门全加器 (TG Adder) | 用传输门算 控制 MUX,管数最少,且 与 延时完全相等 | 传输门串联无再生驱动能力,多级级联需定期插缓冲器 |
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)的加速效果!
对应 :将 6 条输入输出路径中的优化重心全部押在 上,求和级直接复用内部已算出的 以节省面积。
对应 :去掉进位输出反相器后,在偶数位外围输入 与输出 补反相器,使进位链每级延时从 2 级门减为 1 级门。
对应 :上拉 PMOS 网与下拉 NMOS 网无需串并变换即可完全镜像排布,且关键信号 紧贴输出节点。
【复旦 881 深度追问】课堂 结尾留下的两个思考题:① 把进位链上的输出反相器去掉后,级数减半了,延时真的能缩短 吗?② 如果不允许在进位链上加独立反相器,能否用“3 个进位同相全加器 + 1 个进位反相全加器”交替拼出正确的 8 位加法器?
- 去掉输出反相器的隐藏代价——失去缓冲隔离与驱动能力():在常规 28 管全加器中,输出反相器不仅翻转极性,更充当了缓冲隔离器(Buffer)——复合门内部节点只需驱动这 1 个反相器,再由高驱动能力的反相器去推后级 扇出。去掉反相器后,前级 2 串联复合门の出力节点 必须直接暴露出去驱动后级的 栅电容及自身の复合门寄生漏电容,RC 时间常数显著增大!因此实际速度提升远达不到 (通常在 左右)。
- “三正一反”8 位全加器无反相器级联法():第 位用同相全加器,第 位用进位反相全加器,此时输出为 ;根据自互补性,第 位的同相全加器若直接接收反极性的 ,只需将第 位的外部输入 取反、且将第 位的求和输出 取反,则第 位传递的都是反极性进位 ;直到第 位再次经过进位反相全加器,反极性输入与门本身反相相互抵消,刚好直接输出正极性的 与 !这正是 5.2 节每 4 级用单个反相器恢复驱动的伏笔。
路径优先级铁律:多位加法器中 占关键路径绝大部分,必须将 晶体管置于最靠近输出的内侧(Inner Input),并借用 生成 。
自互补对称性:全加器满足 ,既可奇偶位交替消去进位链反相器,又使 24 管镜像全加器的 PUN 与 PDN 完全上下轴对称。
负载与隔离折中:直接去掉进位反相器虽减少了逻辑级数,但丧失了反相器的扇出隔离与驱动恢复,复合门直接带载导致单级 RC 延时上升。
2. 进位信号 正交解耦、曼彻斯特三选一进位链与三步式行波进位加法器(RCA):为什么 必须定义为 而非 ?(5.2 节)
利用全加器三个输入在时间上的强烈不对称性——本位操作数 在第 时刻同步早到,唯有低位进位 姗姗来迟(),将进位行为预先解耦为进位消灭 、进位产生 与进位传播 三个互斥完备特征信号()。由此导出曼彻斯特三选一开关进位链与“三步式全加器”(PG 产生 进位传播 异或求和),并推导 位行波进位加法器(RCA)的 关键路径延时()。
课堂原图复原 2:(D, G, P) 曼彻斯特三选一进位链、三步式全加器与 N 位 RCA 时空延时图()
三特征信号正交完备性():
三步式全加器标准方程():
位 RCA 线性延时律():
2.1 输入到达时序的不对称性与 三选一预计算解耦
在 中,老师提出了一个极具启发性的运筹学问题:在布尔代数上,全加器的三个输入 是完全对称的;但在 位级联加法器的真实时序上,三者极度不对称——所有位的加数 与 在第 时刻早就同时到达了,高位的全加器之所以干等着没法算,唯一等的是沿着关键路径姗姗来迟的进位输入 !
既然 早就到了,我们完全可以在等待 的空闲时间里,先把 的 种取值组合对进位输出 的影响预先归类为三个两两互斥且完备的局部特征信号():
| 局部特征信号名称 | 符号与布尔定义 | 触发的 组合 | 对本位进位输出 的决定作用 |
|---|---|---|---|
| 进位删除 / 消灭(Delete / Kill) | 无论 为何值,直接将进位清零:() | ||
| 进位产生(Generate) | 无论 为何值,直接由本地产生进位:() | ||
| 进位传播(Propagate) | 或 | 将低位进位原封不动传向高位:() |
老师特别提醒():由于 无重叠、无遗漏地覆盖了 的全部 种状态(满足正交完备性 且两两相与为 ),进位输出本质上是一个受 控制的三选一多路器(3-to-1 MUX):
2.2 曼彻斯特(Manchester)三选一开关进位链与“三正一反”驱动恢复
把上述三选一思想直接映射为晶体管开关电路,就得到了速度极快、寄生负载极轻的曼彻斯特进位单元():
- 当 时只需传确定性的逻辑 ,故仅需 1 个下拉 NMOS 管(栅接 ,源接地)传强 ;
- 当 时只需传确定性的逻辑 ,故仅需 1 个上拉 PMOS 管(栅接 ,源接 )传强 ;
- 当 时需传递未知的 ,故采用 1 个互补 CMOS 传输门(TG)连接 与 ()。
- 为什么它是同类静态结构中最快的进位链?() 在关键路径 上仅有 1 个传输门开关电阻,输出节点的本征寄生电容仅有 1 个上拉 PMOS 漏端 + 1 个下拉 NMOS 漏端 + 1 个传输门漏端,后级扇入也仅看到 1 个传输门源漏端,路径级数与寄生电容同时压缩到了物理极限!
- 每 4 级插 1 个反相器的“三正一反”驱动恢复():由于无源传输门没有再生驱动能力,级联过多会导致 RC 延时按平方律恶化;但若每级都插缓冲器(2 个反相器)又会引入冗余门延时。最优方案是每隔 4 级传输门仅插入 1 个反相器恢复驱动能力,构成“三正一反”极性交替的曼彻斯特进位链(恰好应用了 5.1 节结尾的自互补极性翻转技巧)!
2.3 三步式全加器(Three-Step FA)与 位行波进位加法器(RCA)的 瓶颈
跳出具体电路门类(无论静态传输门、静态 AO 与或门还是动态 Domino 逻辑,),一切现代高速全加器在架构上都统一归结为三步式全加器:
- 第一步(PG 产生级,延时 ):全加器所有位并行根据 计算 与 ;
- 第二步(进位传播级,每级延时 ):利用与或门(AO Gate)或传输门递归计算 ;
- 第三步(本位求和级,延时 ):直接复用第一步已算好的 ,再做一次二输入异或即得本位和:
将 个三步式全加器级联成 位行波进位加法器(Ripple-Carry Adder, RCA,),由于第一步 位并行产生 只花费 1 次 ,而最后一步异或求和也只在最高位花费 1 次 ,总关键路径延时为:
课堂细节追问():为什么 位加法器的最低位(LSB)不省钱用半加器,而是仍然用带 的全加器?答案:为了在后续直接将 取反并令 ,零成本复用为补码减法器 !
进位信号 (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² 增长的规律!
对应 :把与 无关的本地逻辑全部移出关键路径提前算好,使 到达后仅需经过一级三选一开关。
对应 :唯有定义 才能在第三步直接异或 得到 。
对应 :所有位的 在第 1 层同时生成,随后进位沿对角线逐级串行爬升 次,最后经 1 次异或输出 。
【复旦 881 必考辨析】课堂 专门批驳了一个流传极广的教科书误区:许多教材声称“因为或门(OR)比异或门(XOR)更快、更省管子,所以可以把进位传播信号定义为 来加速全加器”。为什么叶凡老师斩钉截铁地指出这种做法“毫无现实工程意义、甚至得不偿失”?
- 对缩短关键路径延时毫无帮助():在多位加法器中, 是在第一步(Step 1)由早到的 提前并行算好的,根本不在 的主干进位链上!等到低位进位 传到第 位时,无论 是用慢一点的异或门算出的还是快一点的或门算出的,它早就稳定在那里等着了。因此把 换成 对关键路径传播延时 的加速效果严格为 !
- 彻底破坏第三步求和逻辑对 的硬件复用,导致总面积与功耗翻倍赔偿():虽然在进位公式 中,由于 已覆盖 情况,令 与 在代数上对 等价;但在第三步求本位和 时, 必须用到真正的异或 !一旦你在第一步贪小便宜算了 ,第三步就无法再写 ,而是被迫额外搭建一套完整的三输入求和电路,把第一步省下的一点点面积加倍赔进去!
时序解耦思想:利用 早到、 晚到的时序差,将进位决策转化为 控制的 3-to-1 多路选择,把单级进位延时 压至最低。
不可替代:只有将 定义为异或,才能在 Step 3 直接以单个异或门 复用求得本位和。
RCA 的根本瓶颈:电路级优化只能减小斜率常数 ,无法改变 的线性增长本质。
3. 进位跳转加法器(Carry-Bypass / Carry-Skip Adder):从 到 的跨组旁路加速、最优分组 推导与 STA 伪路径危机(5.3 节)
既然优化单个全加器只能减小 而无法打破 线性魔咒(),本节从架构层面将 位拆分为 个每组 位的模块,引入组传播信号 :一旦整组处于传播态(),进位直接经多路器(MUX)跨组旁路跳转()!严密推导最坏关键路径延时并利用均值不等式证明最优每组位数 ,同时揭示其致命工程缺陷——静态时序分析(STA)伪路径(False Path, 与 )。
课堂原图复原 3:进位跳转模块三路径与伪路径、16 位关键路径分解及 M* = O(√N) 极值()
组传播信号与三路径分支():
最坏关键路径闭合式():
最优每组位数与平方根延时():
3.1 组传播信号 与组内三条信号路径的功能解耦
在 中,老师一针见血地指出:无论把单个全加器的进位延时 优化得多快,行波进位加法器(RCA)的延时始终正比于位宽 —— 位永远比 位慢 倍、比 位慢 倍。要打破 线性标度律,必须改造整体互连架构!
进位跳转加法器(Carry-Bypass / Carry-Skip Adder)的做法极为精巧():将 位行波加法器等分为 组,每组包含 位(课堂以 为例)。在每一组内部,除了每比特各自产生 外,额外用一个 输入与门定义组进位传播信号(Block Propagate, ): 由于每个 只依赖早到的本位输入 , 同样在第 1 步(PG 预产生阶段)就全部提前算好了,完全无需等待低位进位()!用 控制每组末尾的二选一多路器(2-to-1 MUX),组内立刻分化出三条各司其职的物理路径():
- 蓝色跨组跳转路径(当 时激活,走 MUX 的 端): 意味着组内 个比特全部处于传播态(),此时整组的进位输出必然等于本组的进位输入()。因此 无需逐位穿过 个全加器,而是直接通过 MUX 的 端一步跳到下一组!
- 红色本地进位产生/消灭路径(当 时激活,走 MUX 的 端): 意味着组内至少有一位满足 (该位必为 产生进位或 消灭进位)。此时本组向高位的进位输出完全由本组内部这 位决定,与前级传来的 毫无关系,经组内进位链由 MUX 的 端输出()。
- 绿色本地求和路径(为什么 仍需连入组内最低位?):既然 时进位走蓝线旁路、 时进位由本地产生,为什么还要保留把 送进组内第 1 位的连线?为了计算本组内部 个比特的本位和 ! 即使第 4 位自己产生进位截断了向上传播,第 位的求和 依然依赖从组外传进来的 !
3.2 最坏关键路径定位与最优分组 解析推导
在剔除物理上不可能发生的伪路径后,整个 位(分 组、每组 位)进位跳转加法器的真实最坏关键路径发生在什么输入组合下?()
- 为什么最坏起点不是全局进位输入 ? 若第 1 组满足 ,从 进来会直接走 MUX 跳过去,反而极快!真正最慢的情况是:第 1 组第 1 位自己产生进位(),而第 1 组其余 位全为传播(),迫使进位老老实实走完第 1 组内部全部 级进位链并穿过第 1 个 MUX 的 端;
- 中间第 组:全部处于组传播态(),进位连续跳过中间 个组的 MUX(加上第 1 组末尾 MUX,共经过 个 MUX);
- 最末第 组:为求出最高位和 ,进位在跳入第 组后不能再跳过(否则只得到 而非 ),必须走绿色路径在末组内部串行传播 级到达 (此时 可为 ,如 ),最后经过 1 级异或门输出 ()!
将上述五段延时逐项相加(设单级进位延时为 ,旁路多路器延时为 ,首尾固定开销为 ,): 合并关于每组位数 (课堂记组数为 )的可变项(): 由算术-几何均值不等式 (或对 求导令 ),当且仅当 时总延时取全局极小值: 代入 即得进位跳转加法器的理论最小延时:
3.3 进位跳转加法器的工程软肋:静态时序分析(STA)伪路径灾难
在 与 中,老师高度评价了进位跳转加法器“仅增加约 的多路器面积零头,就把延时从 降为 ”的惊艳性价比,但紧接着指出了阻碍其在现代 EDA 自动化综合流程中普及的致命缺点——伪路径(False Path):
- 什么是伪路径? 在拓扑连接图上,确实存在一条“从 进入第 1 组 穿过组内 级进位链到节点 穿过 MUX 的 端 再穿第 2 组 级进位链 ”的漫长串行路径,其拓扑长度甚至比普通行波进位加法器还多出了 个 MUX()!
- 为什么它在物理上绝不可能发生?() 假定信号真的能沿着绿色进位链穿过整组到达 MUX 的 端输入口,前提条件必然是该组内部所有位都处于传播态();然而一旦 全为 ,组传播信号必有 ,MUX 的选择端早已把 端死死关断、强制切换到了 端旁路!因此“穿过组内进位链再从 MUX 的 端出去”是一个逻辑上自相矛盾、永远无法被激活的伪路径!
- 对 EDA 静态时序分析(STA)的冲击():第四章讲过,静态时序分析工具(如 PrimeTime)只按拓扑图累加门延时而不做布尔功能穷举。如果不手工编写极其繁琐的 约束去屏蔽每一条跨组伪路径,STA 工具就会把这条伪路径当成真实关键路径,误报进位跳转加法器“比行波进位还要慢”!
交互实验:行波进位(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)!
对应 :当组内 位全为传播态()时,进位直接跳过 级全加器经 MUX 的 端传至下一组。
对应 :最坏情况始于第 1 组最低位产生进位(),跳过中间各组后在最末组行波至 并异或出 。
对应 :将位宽 从 扩至 (扩大 倍)时,关键路径仅扩大 倍。
【复旦 881 综合思辨】课堂 的双色时空延时图剖析:在进位跳转加法器的时空延时图中,为什么第 组的每一列上方都有一段灰色的斜线,下方又有一段蓝色的斜线?难道每一比特放了两个全加器吗? 老师在 专门澄清了这个极易混淆的物理概念:
- 硬件上每一比特只有 1 个全加器,灰色与蓝色代表同一硬件在两种不同输入状态下被激活的“可能时间窗口”!
- 上方灰色斜线(本地产生进位窗口):如果该组内部某一位自己产生或消灭进位(对应红色路径 ),它根本不需要等待低位组传来的进位,在第 1 步 算完后立刻就在极早的灰色时间窗口内完成了组内进位传播!
- 下方蓝色斜线(低位跳转触发窗口):如果该位的求和或进位依赖于从第 1 组千里迢迢跳转过来的进位,那么本组的进位链必须一直空闲等待,直到前级进位穿过一系列 MUX 到达本组入口后,才在较晚的蓝色时间窗口内开始串行传播!
- 这也解释了为什么末组(第 4 组)只有蓝色斜线进入最坏关键路径:最坏关键路径正是“第 1 组走灰色窗口 中间组走水平 MUX 跳转线 最末组在蓝色窗口内走完 级进位并求和”。
跨组旁路机制:当组传播信号 时,进位直接经 MUX 跳过整组 位,硬件仅增加 个单比特选择器(约 面积)。
最优分组公式:最坏延时 ,最优组宽 ,主项延时为 。
STA 伪路径缺陷:“穿过组内进位链再走 MUX 的 端”在逻辑上自相矛盾( 全 时 端必关断),但会导致静态时序分析工具误报超长违例。
流水线加法器(Pipelined Adder)
当系统架构允许引入几个时钟周期的潜伏期(Latency)以换取极高的数据吞吐率(Throughput)时,在行波进位加法器内部插入流水线寄存器是最直接的加速手段。本节基于图论重定时(Retiming)的单向割集(Cutset)定理,严格推导高低半位输入/输出对齐寄存器的必要性,定量对比三步式全加器内部两种割线的寄存器代价(1.5 vs 2.0 DFF/bit),并从次关键路径(Sub-critical Path)角度解释为何进位跳转加法器不适合做流水线切分。
课堂原图复原 4:流水线重定时割集定理、绿/红割线代价对比与进位跳转次关键路径瓶颈()
单向割集重定时条件():
三步式 RCA 两种割线寄存器开销():
进位跳转流水线化失效原因():
1. 从进位链插寄存器到全图单向割集(Cutset)定理
在数字信号处理(DSP)与微处理器算术流水线中,如果组合加法器的延时过长,最直接的想法是在进位链正中间插入触发器(Register)。老师在 用一个 4 位行波进位加法器演示了流水线化的严密拓扑规则:
高低半位的数据失步危机()
如果在第 2 位输出进位 处插入一个寄存器:- 第 位全加器在当前时钟周期(第 拍)算完 直接输出;而进位 被寄存器挡住,要等下一个时钟上升沿(第 拍)才送入第 3 位全加器。
- 若高半位输入 不加寄存器,那么在第 拍,第 拍产生的进位 就会与第 拍新送入的 相加,彻底算错!
- 修复方案:必须在高半位输入端 各串入 1 个寄存器(把第 拍的高位数据留到第 拍再与 汇合),同时在低半位输出端 各串入 1 个寄存器(把第 拍算好的低位和延时到第 拍,与高位和 同步输出)。
重定时(Retiming)的割线判定法则()
把上述所有插入的寄存器连成一条虚线,恰好构成一条将电路一分为二的单向割线(Feedforward Cutset):- 割线必须从电路边界一端完整画到另一端,不能留有缺口;
- 所有跨越割线的信号箭头必须同向(全部从割线左上方流向右下方);
- 重定时不变量:只要满足单向割集条件,从 9 个输入端()中的任意一个,到 5 个输出端()中的任意一个,沿任何通路走都必然穿过割线恰好 1 次(即经历严格相同的 1 拍流水线潜伏期)。
2. 三步式 RCA 的割线优化:绿色割线(1.5 DFF/bit)vs 红色割线(2.0 DFF/bit)
当把全加器拆解为“① 产生 ② 进位传播 ③ 求和异或”三步后,老师在 对比了课件上的两条经典割线(以 16 位加法器切两级流水为例,每半边 8 位):
| 对比维度 | 绿色割线方案(课件推荐,) | 红色割线方案(过度均分,) |
|---|---|---|
| 高半位(第 9~16 位)割点 | 割在第 1 步(PG 产生)之后,锁存 (2 DFF/bit) | 割在第 1 步(PG 产生)之后,锁存 (2 DFF/bit) |
| 进位链中间割点 | 割在 处(1 DFF) | 割在 处(1 DFF) |
| 低半位(第 1~8 位)割点 | 割在第 3 步(求和 )之后,仅锁存 (1 DFF/bit) | 割在第 2 步之后、第 3 步之前,需锁存 与 (2 DFF/bit) |
| 每比特平均寄存器开销 | (16 位共 个) | (16 位共 个) |
| 两拍各自逻辑级数(16-bit) | 第 1 拍: 级 第 2 拍: 级(瓶颈 10 级) |
第 1 拍: 级 第 2 拍: 级(瓶颈 9 级) |
- 工程权衡结论():红色割线为了把第 1 拍末尾那 1 级异或门()挪到第 2 拍,让关键路径从 10 级门微降至 9 级门(仅缩短约 ),却迫使低半位每一比特在跨周期时同时保存 和 两个信号,导致寄存器面积和时钟树功耗激增 !因此工程上无一例外采用绿色割线。
3. 深度剖析:为什么进位跳转加法器(Carry-Bypass)不适合做流水线?
既然 16 位进位跳转加法器比 16 位 RCA 快得多,那我们在 16 位进位跳转加法器正中间(第 8 位与第 9 位之间)再切一刀流水线,岂不是能“快上加快”?老师在 给出了令人警醒的否定证明:
未切流水线时的双路径格局()
以 16 位()进位跳转加法器为例(假定每步单位延时为 ):- 红色主关键路径(跨全长 16 位):第 1 组 1 级 PG + 4 级进位 第 2、3 组 2 级跳转 MUX 第 4 组 3 级进位 + 1 级求和,总长为 (若按课件简化计法为 )。
- 蓝色次关键路径(完全位于低 8 位第 1、2 组内部,或高 8 位第 3、4 组内部):第 1 组产生进位走 4 级 经过第 1 组末尾 1 级 MUX 在第 2 组内部不跳转而走完 3 级进位并求和,总长为 (按课件简化计法为 或 )!
一刀切下后的“次关键路径转正”效应()
当我们在第 2 组(低 8 位)与第 3 组(高 8 位)之间画一条流水线割线:- 原本跨 16 位的红色主关键路径确实被一刀切成两半(长度从 降到 );
- 但是,完全处于割线左侧(第 1、2 组内部)以及完全处于割线右侧(第 3、4 组内部)的蓝色次关键路径根本没有穿过割线!它的长度依然高达 !
- 最终结果:耗费了二十多个触发器插入一级流水线后,电路的最高时钟周期被未割断的蓝色次关键路径卡死在 ,相比未流水线时的 仅仅省去了中间 2 个跳转 MUX 的延时!
- 架构铁律():进位跳转加法器是纯组合逻辑场景下的低成本折中方案;一旦系统允许使用流水线(Pipelining),直接对结构规整、无次关键路径旁路的普通行波进位加法器(RCA)切多级流水线,无论在面积、功耗还是主频上都完胜流水线化的进位跳转加法器!
流水线加法器对角割集重定时(绿线 1.5 DFF/bit vs 红线 2.0 DFF/bit)面积与吞吐率折中台
在 N 位行波进位链级间插入流水线寄存器可将最高工作频率提升 N 倍!重点对比课堂两道对角割集切法:为什么在算完 (P_i, G_i) 之后下刀(绿线割集)能比在输入端 A_i, B_i 直接下刀(红线割集)净省 25% 的寄存器面积?
对应 :构成完整单向割集(Cutset),确保所有输入到输出路径具有相同的流水线级数。
对应 :红色割线为匀出 1 级异或门延时而迫使低半位存 双信号,得不偿失。
对应 :单侧半区内“首组产生 + 邻组行波求和”的蓝色次关键路径未穿过割线,限制了流水线提速。
【复旦 881 综合思辨】课堂 追问:在三步式 RCA 的流水线设计中,为什么高半位(第 位)的割线不直接画在最顶部的原始输入端 (那样本位也要存 2 个寄存器),而是非要先经过第 1 步算出 之后再画割线存 (同样是 2 个寄存器)? 仔细对比这两种画法会发现一个绝妙的时序收益:
- 寄存器数量完全相同:存 是 2 个 DFF/bit,存 也是 2 个 DFF/bit,硬件面积没有任何增加!
- 第 1 拍免费“白嫖”了高半位的 PG 产生延时():在第 1 个时钟周期内,当低半位正在紧锣密鼓地进行“PG 产生 + 进位链行波传播”时,高半位的输入信号 反正已经到了!让高半位在第 1 拍就顺便把 算出来并锁存进寄存器,那么到了第 2 个时钟周期,锁存出来的 一到,高半位完全不需要再花 时间去算 ,直接就能启动第 2 步进位传播!这就把第 2 拍的关键路径硬生生缩短了一个 !
重定时单向割集法则:流水线寄存器必须沿单向割集插入,确保所有输入至输出路径经历相同拍数;高半位需输入延时对齐,低半位需输出延时对齐。
绿色割线黄金法则:在三步式 RCA 中,高半位割在 PG 产生后(存 )、低半位割在求和后(存 ),仅需 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 真题风格 · 三步式全加器关键路径定量计算】设 位三步式行波进位加法器(RCA)中,第 1 步产生 延时为 ,第 2 步单级进位传播延时为 ,第 3 步异或求和延时为 。若按课件规范公式计算,该 32 位加法器到达最高位和 的最坏关键路径延时 为:
CHECK 04
【复旦 881 真题风格 · 进位跳转加法器最优分组推导】设计一个 位的等宽进位跳转加法器(Carry-Bypass Adder),设每级进位传播延时 ,跨组 2-to-1 MUX 旁路延时 ,且 。利用课堂公式 ,求使总延时最小的最优每组位数 及其对应的最小总延时 :
CHECK 05
【复旦 881 真题风格 · 进位跳转加法器伪路径(False Path)】在进位跳转加法器中,静态时序分析(STA)工具常会报告一条“从组进位输入 经组内 级全加器串行传播到 ,再穿过组尾 MUX 的 输入端输出”的超长路径。为什么该路径在物理上被称为伪路径(False Path,)?
CHECK 06
【复旦 881 真题风格 · 流水线加法器割线设计与次关键路径】关于流水线加法器()的架构设计,下列说法正确的是:
本讲核心概念、器件符号与中英术语对照 (10 项)
- 行波进位加法器 (Ripple Carry Adder, RCA)
将 个 1-bit 全加器级联、把低位输出进位 依次串行连接至相邻高位输入进位的加法器结构。电路极度规整紧凑,但最坏关键路径延时与位宽 成线性正比:。
- 28 管镜像全加器 (28T Mirror Full Adder)
利用全加器真值表的自对偶性(),使进位级与求和级的上拉 PMOS 网和下拉 NMOS 网呈现完全镜像对称而非串联互为并联对偶的经典静态 CMOS 全加器。进位关键路径需串联通过内层晶体管,常结合奇偶位反相交替省去反相器。
- 24 管传输门全加器 (24T Transmission Gate Adder)
利用 CMOS 传输门(TG)高效实现异或门()与进位/求和 2-to-1 多路选择器(,)的全加器,仅需 24 管且消除了求和路径与进位路径的延时差,但直接级联会引入 分布式 RC 延时。
- 产生、传播与消灭信号 (Generate, Propagate, Delete — G, P, D)
三步式全加器对本位输入 的正交完备逻辑提取:(产生进位 )、(消灭进位 )、(将前级进位原样传出 )。满足 与 。
- 曼彻斯特进位链 (Manchester Carry Chain)
基于 三信号控制的开关进位链。在动态预充电实现中,仅需预充高电平并用受 控制的 NMOS 传输管串联传递放电低电平(旁路掉 支路),单级面积小、速度快,但受限于串联 RC 的 延时,每 位必须插入一级反相器切段再生。
- 进位跳转加法器 (Carry-Bypass / Carry-Skip Adder)
将 位加法器分为 个 位小组,每组增加一个计算组传播信号 的与门和一个 2-to-1 旁路多路器(MUX)。当组内所有位均为传播态()时,进位直接跳过 级全加器经 MUX 传向下一组,使最坏延时降至 。
- 最优分组位数 (Optimal Block Size M*)
在等宽分组进位跳转加法器中,平衡首尾组内行波延时 与中间跨组跳转延时 的极值解:由均值不等式得 ,对应最小主项延时 。
- 伪路径 (False Path)
电路拓扑图上物理连通、但因沿途各逻辑门的导通敏感化条件相互矛盾(如进位跳转模块中穿过 位全加器要求 ,而走组尾 MUX 的 端要求 )而在任何输入向量下都永远不可能被激活的虚假路径。需在 STA 中用约束排除。
- 流水线重定时割集 (Pipelining Retiming Cutset)
在组合逻辑有向无环图(DAG)中插入流水线寄存器的拓扑准则:寄存器必须放置在一条将图完全切开且所有跨界边方向一致的割线(Feedforward Cutset)上,从而保证从任意输入到任意输出的所有通路经过相同数量的寄存器(如高低半位输入/输出延时对齐)。
- 次关键路径瓶颈 (Sub-critical Path Bottleneck)
对进位跳转加法器进行跨组流水线切分时,虽然横跨全长的红色主关键路径被割断减半,但完全位于单侧半区内部(如第 1 组产生进位并在第 2 组行波求和)的蓝色次关键路径未穿过割线,反而取代主路径成为限制时钟频率的新瓶颈。