第 10 章 组合逻辑的时序行为
1. 本章要解决的问题
前几章把组合逻辑看成“输入一变,输出立即成为新值”的理想函数。真实逻辑门需要时间给节点充放电,串联的门和分叉后重汇合的路径还会产生不同到达时间。因此,稳定前的输出可能经历一个或多个临时值。
本章解决四个问题:输出最早什么时候可能变化、最晚什么时候保证稳定、哪条路径限制整体速度,以及为什么稳定真值表正确的电路仍可能出现毛刺。
2. 与第 9 章的联系
第 9 章的行波进位加法器给出了最直观的多级组合路径。最低位产生的进位要逐级传到高位,最高和位在传播过程中可能先出现临时结果。
本章从加法器推广到一般组合逻辑,重点进入门级时序抽象。逻辑功能仍由布尔表达式决定;新增的信息是门延迟、路径延迟和信号到达时间。晶体管、电容和电阻决定这些延迟的物理来源,第 4 章已经建立了相应直觉。
3. 前置知识快速检查
- 传播延迟和上升/下降时间描述的是同一件事吗?
- 行波进位加法器中,为什么最高位可能最后稳定?
- 两个逻辑等价表达式是否一定具有相同门数和延迟?
- \(F=AB+\overline{A}C\) 在 \(B=C=1\) 时是否依赖 \(A\) 的稳定值?
前置检查答案
4. 学习目标
学完本章后,你应当能够:
- 区分传播延迟、污染延迟和上升/下降时间;
- 根据门级路径估算最早变化时间与最晚稳定时间;
- 找出组合逻辑的关键路径;
- 解释重汇合路径为什么容易产生毛刺;
- 区分静态 1、静态 0、动态和功能冒险;
- 从表达式、门图、波形或卡诺图识别基础静态冒险;
- 使用共识项消除两级 SOP/POS 电路中的静态冒险;
- 说明路径平衡、冗余逻辑和寄存器采样各自解决什么问题;
- 解释同步系统为什么只在规定采样时刻使用组合逻辑结果;
- 把行波进位延迟与关键路径概念联系起来。
5. 逻辑门不会瞬间响应
输入电压变化后,晶体管网络开始给内部节点和输出负载充放电。输出需要一段时间才能越过后级的逻辑判定参考点。门级时序模型把复杂模拟过程压缩成几个延迟参数。
图 10-1 中,反相器输入在 \(t_0\) 上升,输出随后下降。观察三个不同概念对应的时间区间。
5.1 传播延迟
传播延迟(propagation delay)描述输入变化后,输出最晚需要多久才能到达规定的新逻辑状态。常见方向参数为:
- \(t_{pLH}\):输出从低逻辑变为高逻辑的传播延迟;
- \(t_{pHL}\):输出从高逻辑变为低逻辑的传播延迟。
输入和输出通常以各自摆幅的 50% 作为计时参考点。若只需要一个门延迟代表值,可使用
\[ t_{pd}=\max(t_{pLH},t_{pHL}) \]
作为保守的最坏传播延迟,或按特定库的定义使用平均值。做时序保证时必须确认所用参数的定义。
5.2 污染延迟
污染延迟(contamination delay, \(t_{cd}\))描述输入变化后,输出最早可能开始离开旧的保证值的时间。
对一个稳定输入在 \(t_0\) 改变的组合模块,可以用两个边界理解输出:
- \(t<t_0+t_{cd}\):输出保证仍是旧值;
- \(t>t_0+t_{pd}\):输出保证已经是新稳定值;
- 两者之间:输出可能仍是旧值、正在转换或出现中间值。
\(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 门。
蓝色短路径较早到达,橙色长路径较晚到达。整体输出只有在最慢路径也稳定后才获得最坏情况保证。关键路径会随输入方向、逻辑状态、负载、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;直接路径较快,反相路径较慢。
变化前,\(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 需要被同一个组覆盖。
原来的 \(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 对比三类输出波形,并把“稳定功能”与“暂态次数”分开。
13. 多输入同时变化与功能冒险
功能冒险(functional hazard)来自多个输入没有同时到达。即使每个逻辑门零延迟,电路也可能依次经过若干中间输入组合,而这些组合对应不同的合法函数值。
例如两位输入从 01 变到 10,物理上可能先经过
00 或
11。若函数在中间码上的输出不同,就可能出现暂态。单纯增加一个共识项通常不能解决所有多输入变化问题。
常见处理方式包括:
- 让协议保证一次只改变一个相关输入;
- 使用格雷码,使相邻状态只改变 1 bit;
- 在同步系统中让输入先进入寄存器,再在规定时刻采样输出;
- 对异步控制使用专门的无冒险设计方法。
本课程基础主线聚焦同步数字系统;高级异步无冒险设计不在本章展开。
14. 脉冲宽度与门的过滤作用
路径到达时间差可以形成毛刺宽度的第一层估计。若两个相关路径到末级门输入的到达时间分别是 \(t_1,t_2\),则理想传输延迟模型下:
\[ t_{glitch}\approx|t_2-t_1|. \]
真实门对很窄的输入脉冲可能没有完整响应,这种现象常用惯性延迟(inertial delay)直观描述。是否过滤以及过滤到什么程度依赖门的电气特性、脉冲幅度、负载和后级阈值。设计不能把“毛刺可能很窄”当作可靠消除方法。
15. 同步系统为什么在规定时刻采样
同步系统允许组合逻辑在一个时间窗口内传播和暂时变化,只要求在接收寄存器的采样边沿附近满足稳定要求。寄存器把连续传播过程分隔成一个个时钟周期。
图 10-6 展示输入在一个采样边沿后改变,组合输出经历暂态,并在下一个采样边沿前稳定。
这种结构并不让毛刺消失,而是让功能模块只在结果已经稳定的时刻使用它。若毛刺直接驱动异步复位、时钟门控、锁存器使能或芯片外部引脚,它仍可能造成问题。
第 14 章会把这里的直觉写成完整建立时间和保持时间约束。本章先记住:采样时刻必须晚于最坏组合传播完成时间,并保留接收元件所需裕量。
16. 降低毛刺风险的基本方法
不同方法解决的问题不同:
- 增加共识项:消除特定两级 SOP/POS 的单输入静态冒险;
- 平衡路径:缩小相关路径到达时间差,降低毛刺宽度或概率;
- 重新分解逻辑:减少重汇合或动态冒险来源;
- 限制输入变化方式:避免功能冒险,例如使用格雷码;
- 寄存器采样:让下一级只在规定时刻使用稳定结果;
- 时序仿真与静态分析:验证具体门延迟和约束条件下的行为。
路径平衡受 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 门有两条输入路径:
- 路径 1:反相器 20 ps、AND 35 ps、OR 25 ps;
- 路径 2:AND 35 ps、OR 25 ps。
按给定的简化相加模型:
\[ 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. 工程中的实际意义
组合时序决定模块能工作多快,也决定控制信号是否安全。实际设计流程通常包含:
- 逻辑综合生成门级网络;
- 单元库提供方向相关的延迟模型;
- 布局布线估算或提取互连延迟;
- 静态时序分析检查所有约束路径;
- 时序仿真用于观察特定激励下的暂态和毛刺;
- 功耗分析统计毛刺引起的额外开关活动。
本章的手算模型让你能读懂这些结果:为什么某条路径成为关键路径,为什么逻辑重构会改变时序,以及为什么真值表验证不能代替时序验证。
20. 本章知识链
门的物理充放电
↓ 压缩为门级时序参数
t_cd:最早可能变化 t_pd:最晚保证稳定
↓ 沿路径累加并加入输入到达时间
路径到达时间
↓ 对全部有效路径取最大值
关键路径
↓ 分叉后沿不同路径重汇合
路径差
├─ 稳定值应不变 → 静态 1 / 静态 0 冒险
├─ 稳定值应变化一次 → 动态冒险
└─ 多输入经过中间码 → 功能冒险
↓ 共识项、结构重构、输入协议或寄存器采样
控制暂态影响
21. 本章小结
- \(t_{cd}\) 给出最早变化边界,\(t_{pd}\) 给出最晚稳定边界。
- 上升/下降时间描述节点边沿,不等同于输入到输出传播延迟。
- 基础路径估算把门延迟和输入到达时间相加。
- 最坏传播路径是关键路径,它限制组合模块最晚稳定时间。
- 重汇合路径的到达时间差会产生毛刺风险。
- 静态 1/0 冒险表示输出本应保持不变却产生短暂相反值。
- 动态冒险表示输出本应变化一次却翻转多次。
- 两级 SOP/POS 的单输入静态冒险可以通过覆盖相邻状态的共识项消除。
- 多输入功能冒险通常需要输入协议、编码或同步采样处理。
- 同步系统允许组合逻辑在周期内暂态变化,但采样边沿必须留在最坏稳定时间之后。
22. 练习
先独立完成,再展开答案。题目 1~7 检查概念,8~13 训练路径与冒险分析,14~18 完成综合判断。
22.1 基础题
- 分别说明 \(t_{cd}\) 与 \(t_{pd}\) 回答什么问题。
- 传播延迟与上升时间的测量参考点有什么不同?
- 什么是组合路径?什么是关键路径?
- 什么是重汇合扇出?它为什么容易产生毛刺?
- 分别用一句话定义静态 1、静态 0 和动态冒险。
- 区分 hazard 与 glitch。
- 为什么稳定真值表等价不能证明两个电路时序行为相同?
22.2 计算与分析题
- 一条路径经过 NAND 28 ps、反相器 16 ps、NOR 32 ps。按简化相加模型求路径最大延迟。
- 某输入最晚在 40 ps 到达,通向输出的两条路径分别为 90 ps 和 125 ps。求输出最晚稳定时刻和关键路径延迟。
- 某模块最小路径污染延迟为 22 ps、最大传播延迟为 140 ps。输入在 100 ps 改变,分别写出输出保证保持旧值和保证得到新值的时间边界。
- 对 \(F=AB+\overline AC\),令 \(B=C=1\)、\(A:1\rightarrow0\)。说明为什么存在静态 1 冒险,并写出消除冒险的共识项。
- 对 \(F=(A+B)(\overline A+C)\),令 \(B=C=0\)、\(A\) 改变。判断冒险类型并写出对偶共识因子。
- 4 bit RCA 每级进位最大延迟为 50 ps,最高位进位到和位为 30 ps。估算 \(C_0\rightarrow C_4\) 和 \(C_0\rightarrow S_3\) 的延迟。
22.3 综合题
- 一个两级 SOP 电路的两个相邻 1 分别只由不同乘积项覆盖。输入只改变一个变量时,说明怎样从卡诺图判断静态 1 冒险,以及怎样修改分组。
- 两位编码从
01变为10。解释它可能经过哪些中间码、为什么这属于功能冒险问题,并给出一种降低风险的编码方法。 - 某组合输出最晚在 360 ps 稳定,寄存器计划在 420 ps 采样。先忽略建立时间,求时序裕量。若输入到达又推迟 80 ps,新的最晚稳定时刻和裕量是多少?
- 一个毛刺信号分别连接到普通数据输入和异步复位输入。说明为什么两种连接的风险不同。
- 比较三种处理方式:增加共识项、平衡路径、在输出后加寄存器。分别说明它们直接解决的问题和不能单独保证的内容。
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→10 或 01→11→10。若函数在
00、11
上的值与端点不同,就会出现暂态。这是多输入中间码导致的功能冒险。可以采用格雷码安排相邻状态,使一次合法转换只改变
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 章会加入反馈和内部状态,组合逻辑“输出只由当前输入决定”的条件将不再成立。