本章目录 25 节

← 返回课程首页

第 10 章 组合逻辑的时序行为

1. 本章要解决的问题

前几章把组合逻辑看成“输入一变,输出立即成为新值”的理想函数。真实逻辑门需要时间给节点充放电,串联的门和分叉后重汇合的路径还会产生不同到达时间。因此,稳定前的输出可能经历一个或多个临时值。

本章解决四个问题:输出最早什么时候可能变化、最晚什么时候保证稳定、哪条路径限制整体速度,以及为什么稳定真值表正确的电路仍可能出现毛刺。

2. 与第 9 章的联系

第 9 章的行波进位加法器给出了最直观的多级组合路径。最低位产生的进位要逐级传到高位,最高和位在传播过程中可能先出现临时结果。

本章从加法器推广到一般组合逻辑,重点进入门级时序抽象。逻辑功能仍由布尔表达式决定;新增的信息是门延迟、路径延迟和信号到达时间。晶体管、电容和电阻决定这些延迟的物理来源,第 4 章已经建立了相应直觉。

3. 前置知识快速检查

  1. 传播延迟和上升/下降时间描述的是同一件事吗?
  2. 行波进位加法器中,为什么最高位可能最后稳定?
  3. 两个逻辑等价表达式是否一定具有相同门数和延迟?
  4. \(F=AB+\overline{A}C\)\(B=C=1\) 时是否依赖 \(A\) 的稳定值?
前置检查答案
  1. 不是。传播延迟比较输入和输出越过参考电平的时刻;上升/下降时间描述同一个节点完成边沿转换所需的时间。
  2. 最高位依赖低位产生的进位,进位要依次经过多个全加器。
  3. 不一定。稳定真值表可以相同,门级结构、逻辑深度、负载和路径都可能不同。
  4. 不依赖。代入 \(B=C=1\)\(F=A+\overline A=1\)。若这些问题不熟悉,可复习第 4 章第 7 章第 9 章

4. 学习目标

学完本章后,你应当能够:

5. 逻辑门不会瞬间响应

输入电压变化后,晶体管网络开始给内部节点和输出负载充放电。输出需要一段时间才能越过后级的逻辑判定参考点。门级时序模型把复杂模拟过程压缩成几个延迟参数。

图 10-1 中,反相器输入在 \(t_0\) 上升,输出随后下降。观察三个不同概念对应的时间区间。

图 10-1 传播延迟、污染延迟与下降时间描述不同的时间关系

5.1 传播延迟

传播延迟(propagation delay)描述输入变化后,输出最晚需要多久才能到达规定的新逻辑状态。常见方向参数为:

输入和输出通常以各自摆幅的 50% 作为计时参考点。若只需要一个门延迟代表值,可使用

\[ t_{pd}=\max(t_{pLH},t_{pHL}) \]

作为保守的最坏传播延迟,或按特定库的定义使用平均值。做时序保证时必须确认所用参数的定义。

5.2 污染延迟

污染延迟(contamination delay, \(t_{cd}\))描述输入变化后,输出最早可能开始离开旧的保证值的时间。

对一个稳定输入在 \(t_0\) 改变的组合模块,可以用两个边界理解输出:

\(t_{cd}\) 是最小延迟边界,\(t_{pd}\) 是最大延迟边界。两者用途不同,不能互换。

5.3 上升时间与下降时间

上升时间 \(t_r\) 和下降时间 \(t_f\) 描述单个节点的边沿斜率,通常按 10%~90% 或 90%~10% 测量。传播延迟则比较不同节点的参考时刻。一个门可能传播延迟较短但输出边沿较慢,也可能相反。

6. 从门延迟到路径延迟

组合路径(combinational path)是输入变化能够沿着逻辑门和连线影响某个输出的一条路线。在基础手算中,可以先把路径上的门延迟相加:

\[ t_{path,pd}\approx\sum_{k\in path}t_{pd,k}, \]

\[ t_{path,cd}\approx\sum_{k\in path}t_{cd,k}. \]

\(k\) 表示路径经过的第 \(k\) 个门。这个模型忽略输入斜率、负载相互作用和连线耦合,适合建立第一层路径直觉;真实库分析会使用与输入转换时间和输出负载相关的时序模型。

6.1 信号到达时间

如果输入本身不是同时变化,还要把输入到达时间加进去:

\[ t_{arrive,out,max}=t_{arrive,in,max}+t_{path,pd}, \]

\[ t_{arrive,out,min}=t_{arrive,in,min}+t_{path,cd}. \]

因此,门数相同的两条路径也可能因输入到达时间不同而在输出处错开。

7. 关键路径决定最晚稳定时间

一个组合模块通常有多个输入和输出,也有许多输入到输出路径。传播延迟最大的有效路径称为关键路径(critical path):

\[ t_{pd,comb}=\max_{p\in\mathcal P}t_{pd,p}. \]

\(\mathcal P\) 是所有需要检查的组合路径集合。图 10-2 中,同一输入经两条不同深度的路径到达末级 OR 门。

图 10-2 多条路径的到达时间窗口与关键路径

蓝色短路径较早到达,橙色长路径较晚到达。整体输出只有在最慢路径也稳定后才获得最坏情况保证。关键路径会随输入方向、逻辑状态、负载、PVT 和布局布线变化;门级示意只能说明当前给定模型下的候选关键路径。

7.1 关键路径不是“门数最多”这么简单

门数多通常意味着更长,但下面因素也会改变排序:

因此,基础题可以按给定门延迟相加,工程分析要使用表征后的单元和互连模型。

8. 重汇合路径为什么容易产生毛刺

一个信号分叉后沿不同逻辑路径传播,随后又在某个门处汇合,这种结构称为重汇合扇出(reconvergent fanout)。若两条路径的逻辑作用相互配合维持输出,路径延迟差可能让这种配合短暂失效。

考虑

\[ F=AB+\overline{A}C. \]

\(B=C=1\) 时,稳定函数为

\[ F=A+\overline A=1. \]

理论上 \(A\) 从 0 变 1 时,输出应一直保持 1。但 \(A\) 的直接路径和反相路径到达时间不同,可能短暂出现两个乘积项都为 0。

9. 静态 1 冒险:本应保持 1,却短暂掉到 0

静态 1 冒险(static-1 hazard)指输入改变前后,输出稳定值都应为 1,但传播过程中可能短暂变为 0。

图 10-3 同时画出门级结构和对应波形。设 \(B=C=1\)\(A\) 从 1 变 0;直接路径较快,反相路径较慢。

图 10-3 F=AB+A̅C 中两条重汇合路径产生静态 1 毛刺

变化前,\(AB=1\);变化后,\(\overline AC=1\)。若旧项先下降、新项后上升,OR 门输入会在一小段时间内同时为 0,输出出现低脉冲。

冒险(hazard)是“某种输入变化和延迟组合可能导致错误暂态”的结构条件;毛刺(glitch)是波形上实际出现的短脉冲。存在冒险不表示每次转换都一定观察到毛刺,因为具体脉冲还取决于真实延迟、输入斜率和门的脉冲过滤特性。

10. 用共识项消除两级 SOP 的静态 1 冒险

\[ F=AB+\overline AC, \]

加入共识项 \(BC\)

\[ F_{safe}=AB+\overline AC+BC. \]

由共识定理,\(BC\) 不改变稳定真值表。当 \(B=C=1\) 时,\(BC=1\)\(A\) 无关,可以在两条原路径交接期间维持输出为 1。

图 10-4 用卡诺图说明为什么相邻的两个 1 需要被同一个组覆盖。

图 10-4 共识项 BC 覆盖跨越 A 变化的相邻格并消除静态 1 冒险

原来的 \(AB\)\(\overline AC\) 分别覆盖两个组,但在 \(A\) 变化、\(B=C=1\) 的相邻格之间没有共同覆盖。加入 \(BC\) 后,这两个相邻格属于同一个组。这里允许重叠分组,因为目标不只是最少项,还包括无毛刺覆盖。

10.1 冗余项为何在这里有价值

第 7 章从稳定逻辑看,\(BC\) 可以删除;从时序行为看,它提供一条不经过 \(A\) 的保持路径。逻辑最简与无冒险实现是不同优化目标。

10.2 适用边界

共识项方法直接适用于两级 SOP 的单输入变化静态 1 冒险。多级逻辑、多个输入同时变化和动态冒险需要结合具体路径与波形继续分析。

11. 静态 0 冒险:本应保持 0,却短暂跳到 1

静态 0 冒险(static-0 hazard)是对偶情况:输入改变前后输出都应为 0,传播过程中却可能短暂变为 1。

例如

\[ F=(A+B)(\overline A+C). \]

\(B=C=0\),稳定函数为 \(A\overline A=0\)。若两个和项因路径差短暂同时为 1,AND 输出就会产生高脉冲。

加入对偶共识项 \((B+C)\)

\[ F_{safe}=(A+B)(\overline A+C)(B+C). \]

\(B=C=0\) 时,附加因子始终为 0,能够维持输出为 0。卡诺图中,POS 化简应检查相邻的 0 是否被同一个零组覆盖。

12. 动态冒险:本应变化一次,却来回变化多次

动态冒险(dynamic hazard)指输出稳定值应从 0 变 1或从 1 变 0,但暂态过程中发生多次翻转,例如 0→1→0→1

它通常出现在具有多级逻辑和多条重汇合路径的电路中。不同路径先后使若干中间节点变化,末级输出可能被反复推动。两级规范 SOP/POS 在单输入变化下主要关注静态冒险;复杂多级网络需要时序仿真或更系统的分析。

图 10-5 对比三类输出波形,并把“稳定功能”与“暂态次数”分开。

图 10-5 静态 1、静态 0 与动态冒险的输出波形特征

13. 多输入同时变化与功能冒险

功能冒险(functional hazard)来自多个输入没有同时到达。即使每个逻辑门零延迟,电路也可能依次经过若干中间输入组合,而这些组合对应不同的合法函数值。

例如两位输入从 01 变到 10,物理上可能先经过 0011。若函数在中间码上的输出不同,就可能出现暂态。单纯增加一个共识项通常不能解决所有多输入变化问题。

常见处理方式包括:

本课程基础主线聚焦同步数字系统;高级异步无冒险设计不在本章展开。

14. 脉冲宽度与门的过滤作用

路径到达时间差可以形成毛刺宽度的第一层估计。若两个相关路径到末级门输入的到达时间分别是 \(t_1,t_2\),则理想传输延迟模型下:

\[ t_{glitch}\approx|t_2-t_1|. \]

真实门对很窄的输入脉冲可能没有完整响应,这种现象常用惯性延迟(inertial delay)直观描述。是否过滤以及过滤到什么程度依赖门的电气特性、脉冲幅度、负载和后级阈值。设计不能把“毛刺可能很窄”当作可靠消除方法。

15. 同步系统为什么在规定时刻采样

同步系统允许组合逻辑在一个时间窗口内传播和暂时变化,只要求在接收寄存器的采样边沿附近满足稳定要求。寄存器把连续传播过程分隔成一个个时钟周期。

图 10-6 展示输入在一个采样边沿后改变,组合输出经历暂态,并在下一个采样边沿前稳定。

图 10-6 同步系统在组合逻辑完成传播后,于规定时钟边沿采样

这种结构并不让毛刺消失,而是让功能模块只在结果已经稳定的时刻使用它。若毛刺直接驱动异步复位、时钟门控、锁存器使能或芯片外部引脚,它仍可能造成问题。

第 14 章会把这里的直觉写成完整建立时间和保持时间约束。本章先记住:采样时刻必须晚于最坏组合传播完成时间,并保留接收元件所需裕量。

16. 降低毛刺风险的基本方法

不同方法解决的问题不同:

  1. 增加共识项:消除特定两级 SOP/POS 的单输入静态冒险;
  2. 平衡路径:缩小相关路径到达时间差,降低毛刺宽度或概率;
  3. 重新分解逻辑:减少重汇合或动态冒险来源;
  4. 限制输入变化方式:避免功能冒险,例如使用格雷码;
  5. 寄存器采样:让下一级只在规定时刻使用稳定结果;
  6. 时序仿真与静态分析:验证具体门延迟和约束条件下的行为。

路径平衡受 PVT、负载和布线影响,通常不能单独作为严格的无毛刺证明。对安全关键控制信号,应通过结构和接口协议获得明确保证。

17. 完整例题

例题 1:区分门的三种时间参数

某反相器输入在 100 ps 越过 50% 电平,输出在 138 ps 越过 50%,输出从 90% 降到 10% 的区间为 125~155 ps。求本次 \(t_{pHL}\)\(t_f\)

传播延迟比较输入与输出的 50% 时刻:

\[ t_{pHL}=138-100=38\ \text{ps}. \]

下降时间比较同一输出的 90% 与 10% 时刻:

\[ t_f=155-125=30\ \text{ps}. \]

两者参考点不同,所以数值无需相同。

变式: 若输出 50% 时刻变为 145 ps,而 90%~10% 区间不变,则 \(t_{pHL}\) 增至 45 ps,\(t_f\) 仍为 30 ps。

例题 2:计算路径延迟并找关键路径

一个输出 OR 门有两条输入路径:

按给定的简化相加模型:

\[ t_{p1}=20+35+25=80\ \text{ps}, \]

\[ t_{p2}=35+25=60\ \text{ps}. \]

路径 1 是关键路径,最坏组合传播延迟为 80 ps。两路到达时间相差 20 ps;若它们在末级承担交接逻辑,就存在约 20 ps 暂态窗口。

变式: 若路径 2 的输出负载使末级等效延迟增至 50 ps,则路径 2 总延迟为 85 ps,关键路径会改变。

例题 3:识别并修复静态 1 冒险

给定

\[ F=AB+\overline AC. \]

\(B=C=1\)\(A\) 从 1 变 0。变化前 \(AB=1\),变化后 \(\overline AC=1\),所以稳定输出都为 1。\(A\) 同时沿直接和反相路径到达末级,存在静态 1 冒险。

直接路径 AND 延迟为 30 ps;反相路径为 20 ps 反相器加 30 ps AND,共 50 ps。若旧项在 30 ps 后下降、新项在 50 ps 后上升,末级输入存在约 20 ps 的全 0 窗口。

加入共识项:

\[ F_{safe}=AB+\overline AC+BC. \]

\(B=C=1\)\(BC=1\),与 \(A\) 无关,可在交接期间保持输出。

变式:\(B=0,C=1\)\(A\) 从 0 变 1 时稳定输出本来就从 1 变 0,这不是静态 1 情况。

例题 4:估算 4 bit 行波进位关键路径

采用简化模型:每级从输入进位到输出进位的最大延迟为 45 ps,最高位输入进位到和位的延迟为 35 ps。估算 \(C_0\)\(C_4\) 以及 \(C_0\)\(S_3\) 的路径延迟。

进位到 \(C_4\) 经过四级:

\[ t_{C_0\rightarrow C_4}=4\times45=180\ \text{ps}. \]

进位到 \(S_3\) 先经过三级进位,再经过最高位和逻辑:

\[ t_{C_0\rightarrow S_3}=3\times45+35=170\ \text{ps}. \]

在这两个候选中,\(C_0\rightarrow C_4\) 是关键路径,延迟 180 ps。

变式: 若系统不使用 \(C_4\) 输出,只关心 4 bit 和,则当前候选关键路径变为 \(C_0\rightarrow S_3\)

例题 5:判断采样时刻是否足够晚

某输入最晚在 80 ps 到达组合模块,模块最坏传播延迟为 240 ps。先忽略接收寄存器自身的建立时间,求输出最晚稳定时刻,并判断 300 ps 和 400 ps 两个采样时刻。

\[ t_{stable,max}=80+240=320\ \text{ps}. \]

300 ps 早于 320 ps,不能保证采到新稳定结果。400 ps 晚于 320 ps,在当前简化条件下有 80 ps 时间裕量。

变式: 第 14 章加入接收寄存器建立时间后,这 80 ps 裕量还要扣除建立时间及其他不确定量。

18. 常见误区与反例

误区 1:传播延迟等于上升或下降时间

传播延迟比较输入和输出的参考时刻;上升/下降时间描述同一个输出边沿的完成速度。

误区 2:\(t_{cd}\) 是较差情况下的传播延迟

\(t_{cd}\) 是最小延迟,表示输出最早何时可能离开旧值;\(t_{pd}\) 是最大延迟,表示输出最晚何时保证到达新值。

误区 3:门数最多的路径一定是关键路径

门型、转换方向、负载、互连和输入到达时间都影响路径延迟。门数只是初步线索。

误区 4:逻辑表达式化到最简就不会有毛刺

最简 SOP 可能删掉共识项,反而暴露静态冒险。稳定逻辑最简和时序无冒险是两个目标。

误区 5:输出最终正确,所以毛刺无关紧要

若输出只在稳定后被寄存器采样,部分毛刺不会影响功能;若它驱动异步控制、时钟或外部接口,短脉冲可能直接触发错误动作。

误区 6:增加任意冗余项都能消除冒险

冗余项必须覆盖发生交接的相邻状态。错误的冗余项只增加门和负载,不提供保持路径。

误区 7:路径延迟完全相等就能永久保证无毛刺

延迟随 PVT、负载和布线变化。名义平衡可以缩小差值,但严格保证需要结构或协议支持。

误区 8:寄存器会消除组合逻辑内部毛刺

寄存器在采样时刻隔离暂态影响,但组合逻辑内部毛刺仍会产生开关功耗,也可能影响连接到其他异步端口的支路。

19. 工程中的实际意义

组合时序决定模块能工作多快,也决定控制信号是否安全。实际设计流程通常包含:

  1. 逻辑综合生成门级网络;
  2. 单元库提供方向相关的延迟模型;
  3. 布局布线估算或提取互连延迟;
  4. 静态时序分析检查所有约束路径;
  5. 时序仿真用于观察特定激励下的暂态和毛刺;
  6. 功耗分析统计毛刺引起的额外开关活动。

本章的手算模型让你能读懂这些结果:为什么某条路径成为关键路径,为什么逻辑重构会改变时序,以及为什么真值表验证不能代替时序验证。

20. 本章知识链

门的物理充放电
   ↓ 压缩为门级时序参数
t_cd:最早可能变化  t_pd:最晚保证稳定
   ↓ 沿路径累加并加入输入到达时间
路径到达时间
   ↓ 对全部有效路径取最大值
关键路径
   ↓ 分叉后沿不同路径重汇合
路径差
   ├─ 稳定值应不变 → 静态 1 / 静态 0 冒险
   ├─ 稳定值应变化一次 → 动态冒险
   └─ 多输入经过中间码 → 功能冒险
   ↓ 共识项、结构重构、输入协议或寄存器采样
控制暂态影响

21. 本章小结

  1. \(t_{cd}\) 给出最早变化边界,\(t_{pd}\) 给出最晚稳定边界。
  2. 上升/下降时间描述节点边沿,不等同于输入到输出传播延迟。
  3. 基础路径估算把门延迟和输入到达时间相加。
  4. 最坏传播路径是关键路径,它限制组合模块最晚稳定时间。
  5. 重汇合路径的到达时间差会产生毛刺风险。
  6. 静态 1/0 冒险表示输出本应保持不变却产生短暂相反值。
  7. 动态冒险表示输出本应变化一次却翻转多次。
  8. 两级 SOP/POS 的单输入静态冒险可以通过覆盖相邻状态的共识项消除。
  9. 多输入功能冒险通常需要输入协议、编码或同步采样处理。
  10. 同步系统允许组合逻辑在周期内暂态变化,但采样边沿必须留在最坏稳定时间之后。

22. 练习

先独立完成,再展开答案。题目 1~7 检查概念,8~13 训练路径与冒险分析,14~18 完成综合判断。

22.1 基础题

  1. 分别说明 \(t_{cd}\)\(t_{pd}\) 回答什么问题。
  2. 传播延迟与上升时间的测量参考点有什么不同?
  3. 什么是组合路径?什么是关键路径?
  4. 什么是重汇合扇出?它为什么容易产生毛刺?
  5. 分别用一句话定义静态 1、静态 0 和动态冒险。
  6. 区分 hazard 与 glitch。
  7. 为什么稳定真值表等价不能证明两个电路时序行为相同?

22.2 计算与分析题

  1. 一条路径经过 NAND 28 ps、反相器 16 ps、NOR 32 ps。按简化相加模型求路径最大延迟。
  2. 某输入最晚在 40 ps 到达,通向输出的两条路径分别为 90 ps 和 125 ps。求输出最晚稳定时刻和关键路径延迟。
  3. 某模块最小路径污染延迟为 22 ps、最大传播延迟为 140 ps。输入在 100 ps 改变,分别写出输出保证保持旧值和保证得到新值的时间边界。
  4. \(F=AB+\overline AC\),令 \(B=C=1\)\(A:1\rightarrow0\)。说明为什么存在静态 1 冒险,并写出消除冒险的共识项。
  5. \(F=(A+B)(\overline A+C)\),令 \(B=C=0\)\(A\) 改变。判断冒险类型并写出对偶共识因子。
  6. 4 bit RCA 每级进位最大延迟为 50 ps,最高位进位到和位为 30 ps。估算 \(C_0\rightarrow C_4\)\(C_0\rightarrow S_3\) 的延迟。

22.3 综合题

  1. 一个两级 SOP 电路的两个相邻 1 分别只由不同乘积项覆盖。输入只改变一个变量时,说明怎样从卡诺图判断静态 1 冒险,以及怎样修改分组。
  2. 两位编码从 01 变为 10。解释它可能经过哪些中间码、为什么这属于功能冒险问题,并给出一种降低风险的编码方法。
  3. 某组合输出最晚在 360 ps 稳定,寄存器计划在 420 ps 采样。先忽略建立时间,求时序裕量。若输入到达又推迟 80 ps,新的最晚稳定时刻和裕量是多少?
  4. 一个毛刺信号分别连接到普通数据输入和异步复位输入。说明为什么两种连接的风险不同。
  5. 比较三种处理方式:增加共识项、平衡路径、在输出后加寄存器。分别说明它们直接解决的问题和不能单独保证的内容。

23. 练习答案

展开第 10 章练习答案

题 1

\(t_{cd}\) 回答输入变化后输出最早什么时候可能离开旧值;\(t_{pd}\) 回答输入变化后输出最晚什么时候保证到达新稳定值。

题 2

传播延迟通常比较输入和输出各自越过 50% 参考电平的时刻。上升/下降时间在同一个输出节点上比较 10% 与 90% 参考电平。

题 3

组合路径是某个输入变化能够沿逻辑门和连线影响某个输出的路线。关键路径是在需要检查的有效路径中最大传播延迟最大的路径。

题 4

同一信号分叉后经过不同逻辑路径,再在后级门处汇合,称为重汇合扇出。不同路径到达时间不同,可能使原本配合维持输出的逻辑项短暂同时失效或同时有效。

题 5

  • 静态 1:输出稳定前后都应为 1,却可能短暂变 0;
  • 静态 0:输出稳定前后都应为 0,却可能短暂变 1;
  • 动态冒险:输出应只变化一次,却可能在稳定前来回翻转多次。

题 6

Hazard 是电路在某种输入转换和路径延迟下可能出现错误暂态的结构条件;glitch 是波形中实际观察到的短暂错误脉冲。

题 7

真值表只规定稳定输入对应的稳定输出。门级结构、路径数量、逻辑深度、负载和到达时间不在真值表中,因此等价电路可以具有不同暂态波形。

题 8

\[ t_{path}=28+16+32=76\ \text{ps}. \]

题 9

两条路径的输出最晚到达时刻分别为

\[ 40+90=130\ \text{ps}, \]

\[ 40+125=165\ \text{ps}. \]

第二条路径是关键路径,路径延迟 125 ps;输出最晚在 165 ps 稳定。

题 10

输入在 100 ps 变化:

  • \(t<100+22=122\) ps 时,输出保证仍为旧值;
  • \(t>100+140=240\) ps 时,输出保证已为新值;
  • 122~240 ps 属于可能变化区间。

题 11

\(B=C=1\) 时,稳定函数为 \(A+\overline A=1\)\(A\) 同时走直接和反相路径;旧项 \(AB\) 可能先下降,新项 \(\overline AC\) 后上升,使 OR 输入短暂全 0。加入共识项 \(BC\)

\[ F_{safe}=AB+\overline AC+BC. \]

题 12

\(B=C=0\) 时,稳定函数为 \(A\overline A=0\)。两个和项可能短暂同时为 1,属于静态 0 冒险。加入对偶共识因子:

\[ F_{safe}=(A+B)(\overline A+C)(B+C). \]

题 13

\[ t_{C_0\rightarrow C_4}=4\times50=200\ \text{ps}, \]

\[ t_{C_0\rightarrow S_3}=3\times50+30=180\ \text{ps}. \]

若两者都需要检查,\(C_0\rightarrow C_4\) 是较长路径。

题 14

在卡诺图中找到输入只改变一位就能互相到达的两个 1。如果它们没有被同一个乘积组覆盖,而是分别由不同组覆盖,就存在两级 SOP 静态 1 冒险候选。增加一个覆盖这两个相邻格的重叠组,对应加入共识项;原有组可以保留。

题 15

01→10 改变两位。实际到达顺序可能形成 01→00→1001→11→10。若函数在 0011 上的值与端点不同,就会出现暂态。这是多输入中间码导致的功能冒险。可以采用格雷码安排相邻状态,使一次合法转换只改变 1 bit。

题 16

原裕量:

\[ 420-360=60\ \text{ps}. \]

输入再推迟 80 ps 后,最晚稳定时刻变为 440 ps,裕量为

\[ 420-440=-20\ \text{ps}. \]

负裕量表示采样时结果还不能保证稳定。

题 17

普通数据输入通常只在规定采样边沿被使用,只要毛刺在采样前结束,就可能不影响寄存结果。异步复位不等待时钟,短脉冲可能立即改变寄存器状态,因此需要更严格的无毛刺控制和脉冲宽度保证。

题 18

  • 增加共识项:直接消除特定两级 SOP/POS 的单输入静态冒险;不能自动解决多级动态冒险和多输入功能冒险。
  • 平衡路径:缩小相关到达时间差;延迟会随 PVT、负载和布线变化,因此单靠名义平衡通常不是严格保证。
  • 输出寄存器:让下一级只在规定边沿使用稳定结果;它不消除组合逻辑内部毛刺,也不保护同一信号上的异步支路。

24. 自测清单

若第 7~9 项不稳定,重新画图 10-3 和图 10-4:先标出变化前负责维持输出的项,再标出变化后接替的项,最后检查是否存在一条与变化变量无关的共同覆盖路径。

25. 下一章衔接

第 6~10 章已经完成组合逻辑主线:从数制与布尔表达式,到标准模块、算术电路和实际时序行为。下一步先完成阶段复习二,再进入第 11 章《从反馈到存储:锁存器》。第 11 章会加入反馈和内部状态,组合逻辑“输出只由当前输入决定”的条件将不再成立。