第 161 篇
考研数电·零基础讲义 第12讲|组合逻辑电路中的竞争-冒险
考研数电·零基础讲义 · 第 12 讲|组合逻辑电路中的竞争-冒险 学完这一讲,你能说清"竞争"和"冒险"分别是什么、毛刺是怎么产生的,会用代数法和卡诺图法判断一个电路有没有竞争-冒险,并掌握三种消除方法(滤波电容、选通脉冲、增加冗余项)及各自的优缺点。预计用时 1.5~2 小时。
本讲地图
- 问题从哪来:前几讲都只看"稳定以后"的输出;实际门电路有延迟,输入跳变的一瞬间,输出可能出现极窄的错误脉冲(毛刺)。
- 竞争:门的两个输入同时向相反方向跳变;竞争-冒险:因竞争而可能在输出端产生毛刺。
- 判断:代数法——某些变量取定值后,式子能化成或;卡诺图法——两个圈"相切"。
- 消除:接滤波电容、引入选通脉冲、修改逻辑设计(增加冗余项)。
- 华师怎么考:概念填空、简答(三种方法比较),或给一个函数判断有无冒险并用冗余项消除。
- 教材对应:第 4 章 4.9 节。
前置知识
- 门电路的传输延迟时间(见第 05 讲下、第 08 讲)。
- 卡诺图化简、相邻格的含义(见第 04 讲中)。
- 常用公式(冗余项定理,见第 04 讲上)。
一、稳态看不见的问题
1.1 大白话:两个人换岗
想象一个仓库门口有两个保安:甲在白天值班、乙在晚上值班,规定"任何时候至少有一个人在岗"。交接班时,如果甲先走了,乙还没到,就会有一小段时间门口没人——这就是"漏洞"。稳定的白天、稳定的晚上都没问题,问题只出在切换的瞬间。
数字电路也是这样。每个门都有传输延迟,同一个信号走不同的路径,到达的时间不一样。在信号切换的一瞬间,就可能出现短暂的"错误状态"。
1.2 一个与门的例子(教材图 4.9.1)
与门。稳态下或,输出都是 0。现在让从 1 变 0,同时从 0 变 1:
- 如果先降下去、再升上来:中间经过,一直是 0,没问题。
- 如果先升上来、还没降下去:中间有极短的时间,冒出一个极窄的 1——这就是尖峰脉冲,俗称毛刺。
或门同理:两个输入一个 1→0、一个 0→1,如果"1 先走、另一个 1 还没来",输出会冒出一个极窄的 0。
1.3 正式定义
- 竞争:门电路的两个输入信号同时向相反的逻辑电平跳变(一个从 1 变 0,另一个从 0 变 1)的现象。
- 竞争-冒险:由于竞争而在电路输出端可能产生尖峰脉冲的现象。
逐词拆解:
- "同时":不是严格同时,而是在差不多的时间里各自变化,谁先谁后说不准。
- "可能":有竞争不一定就有毛刺——要看谁先到。但设计时往往没法精确知道两路信号的先后(它们走了不同的路径、上升下降时间也有差别),所以只要有竞争,就认为有产生毛刺的风险。
1.4 毛刺有什么危害?
毛刺很窄(一般在几十纳秒以内),接到灯泡上人眼根本看不见。但如果后面接的是对脉冲敏感的电路——比如第 13 讲的触发器,一个毛刺就可能让它误翻转,导致整个系统状态出错。教材举的 2 线-4 线译码器例子中,输入从 10 变为 01 时,本应保持 0 的输出端就会冒出毛刺。
1.5 易错点 ⚠️
- 竞争-冒险是动态现象,用真值表(稳态)是看不出来的。真值表正确的电路,照样可能有毛刺。
- "竞争"是原因,"冒险"是可能的后果。两个词别混用。
二、一个完整的例子:
2.1 电路
这是教材例 4.9.1 的电路:经过一个非门得到;与门算,与门算;或门算。
2.2 稳态分析
令:
无论是 0 还是 1,都应该恒为 1。
2.3 动态分析:逐步追踪
假设每个门的延迟都是 1 个单位。在某时刻从 1 跳到 0:
- 第 0 步:变成 0。
- 1 个后:非门输出才从 0 变成 1;同时与门看到,从 1 变成 0。
- 2 个后:与门看到,才从 0 变成 1。
- 或门的两个输入:在第 1 步后就变 0 了,要到第 2 步后才变 1——中间有 1 个的时间 !
- 再经过或门的 1 个,输出出现一个宽约的 0 毛刺。
关键原因:走到或门有两条路——一条直接经过(1 级门),一条先过非门再经过(2 级门)。两条路长度不同,到达时间不同,于是在或门处形成了竞争。
图 1:在时的波形(按每门 1 个单位延迟逐拍模拟得到)。由 1 变 0 后,冒出一个 0 毛刺;加冗余项后(绿线)毛刺消失(动画扫描线)
2.4 反方向呢?
从 0 跳到 1 时:在 1 个后变 1,在 2 个后才变 0。这次是"新的 1 先到、旧的 1 后走",或门两个输入有一段时间同时为 1,输出保持 1,不出毛刺。图 1 右半部分也能看到这一点。
所以竞争不一定产生冒险,要看具体的先后。但正如前面所说,实际电路的延迟有偏差,设计上两个方向都要当作有风险来对待。
2.5 两类毛刺
| 类型 | 稳态应为 | 毛刺 | 典型式子 |
|---|---|---|---|
| "1 型"冒险(静态 1 冒险) | 恒 1 | 跌落成极窄的 0 | 与或式化成 |
| "0 型"冒险(静态 0 冒险) | 恒 0 | 冒出极窄的 1 | 或与式化成 |
("静态 1/0 冒险"这个叫法教材没有展开,知道"输出应保持不变却出现毛刺"这个意思就够了。)
三、怎样判断有没有竞争-冒险
3.1 代数法(教材方法)
前提:每次只有一个输入变量改变状态。
判据:如果输出的逻辑式在其他变量取某组定值时,能化简成
就说明变量经过两条不同路径到达输出门,存在竞争-冒险。输出门是与非门、或非门时,对应写成或,同样有竞争-冒险。
操作步骤:
- 找出在式子中同时以原变量和反变量出现的变量(只有这种变量才可能"自己和自己竞争");
- 对每个这样的变量,把其余变量的各种取值代进去;
- 看能不能化成或的形式。
3.2 例题 1:与或式(教材例 4.9.1(a))
题目:判断有无竞争-冒险。
解:只有同时以和出现。考察、的四种取值:
| 化为 | 结论 | ||
|---|---|---|---|
| 0 | 0 | 无 | |
| 0 | 1 | 无 | |
| 1 | 0 | 无 | |
| 1 | 1 | 有 |
所以时,变化会产生竞争-冒险(1 型)。
3.3 例题 2:或与式(教材例 4.9.1(b))
题目:判断有无竞争-冒险。
解:同时以和出现。当时:
所以时,变化会产生竞争-冒险(0 型)。
3.4 卡诺图法(补充,非常直观)
原理:在与或式的卡诺图上,每个乘积项是一个圈。如果两个圈相邻但不重叠(俗称"相切"),说明存在一对相邻的 1 格分属两个圈——从一格走到相邻格(只变一个变量),就要从一个乘积项"交接"到另一个乘积项,正如两个保安换岗,可能出现空档。
判据:卡诺图中两个圈相切(有相邻的格分别属于两个圈,而这两格没有被任何一个公共圈同时圈住),就存在竞争-冒险。
图 2:的卡诺图。(蓝)与(橙)在、处相切;绿色虚线圈把两格圈在一起,即为消除冒险需要的冗余项
看图:()属于蓝圈,()属于橙圈,它们上下相邻(只差)。从走到就是"时由 1 变 0",正是代数法找到的那种情况。两种方法结论一致。
3.5 其他方法
教材还指出:代数法要求"每次只有一个变量变化",局限很大;实际中多个输入可能同时变化,变量一多更难找全。因此还有:
- 计算机辅助分析:用数字电路模拟软件检查;
- 实验检查:给输入加上包含所有可能变化的信号,用示波器看输出有没有毛刺。
教材强调:软件模拟用的是典型参数,和实际电路可能有出入,只有实验检查的结果才是最终结论。
3.6 易错点 ⚠️
- 只有原变量、反变量同时出现的变量才需要检查;一个变量如果只以原变量(或只以反变量)出现,它单独变化不会引起这类冒险。
- 代数法只针对"单个变量变化"。两个变量同时变化的竞争,代数法查不出来。
- 卡诺图上"相切"是指相邻但不重叠;如果两个圈本身有重叠的格,就不算相切。
四、怎样消除竞争-冒险
4.1 方法一:接入滤波电容
大白话:毛刺又窄又快,像水面上一个小小的涟漪。给输出端并一个小电容,就像在水管上加一个小水箱,突然的小波动会被"吸收"掉。
做法:在输出端与地之间并接一个很小的电容。毛刺一般只有几十纳秒宽,电容来不及充放电,毛刺的幅度就被削弱到门电路的阈值电压以下。TTL 电路中通常为几十至几百皮法;输出电阻较高的 CMOS 电路可以选得更小。
优点:简单易行。 缺点:输出波形的上升时间和下降时间变长,波形变坏。只适用于对输出波形前后沿要求不严格的场合。
4.2 方法二:引入选通脉冲
大白话:既然毛刺只发生在输入切换的瞬间,那就让输出"闭眼"度过这段时间——等电路稳定了再"睁眼"看结果。
做法:在输出门上加一个选通脉冲。的高电平只在电路已经稳定之后才出现;期间输出被封锁,毛刺出不来。
优点:比较简单,一般不需要增加电路元件。 缺点:
- 正常输出也变成了脉冲形式,宽度与选通脉冲相同——比如输入变成 11 以后,输出并不马上变高,要等选通脉冲来了才给出一个正脉冲;
- 必须设法得到一个与输入信号同步的选通脉冲,对它的宽度和作用时间都有严格要求。
4.3 方法三:修改逻辑设计(增加冗余项)
大白话:保安换岗出空档?那就再安排一个"机动保安",专门在交接班时站岗。
做法:以为例,冒险发生在、变化时。由冗余项定理(第 04 讲上):
加上这一项,函数值完全不变(对函数来说是多余的,所以叫冗余项),但在时,直接把输出"撑"在 1,怎么变都不影响。图 1 的绿线就是加上后模拟的结果:毛刺消失。
在卡诺图上:冗余项就是把两个相切的圈"桥接"起来的那个圈(图 2 绿色虚线圈)。
对或与式:在时有型冒险,对偶地乘上冗余因子:
时,直接把输出压在 0。(已用程序核对加入冗余项后函数不变、冒险消失。)
优点:运用得当时效果很好。如果需要的门本来就存在(比如这个与门电路中已有),只需加一根连线,既不增加门,也不给电路带来别的不利影响。 缺点:适用范围很有限。增加冗余项只消除了"时单独变化"引起的冒险;如果和同时变化(比如从 10 变到 01),电路仍然可能有竞争-冒险。
4.4 三种方法对比(简答题模板)
| 方法 | 做法 | 优点 | 缺点 |
|---|---|---|---|
| 接滤波电容 | 输出端并小电容 | 简单易行 | 波形前后沿变坏;只适合对波形要求不严的场合 |
| 引入选通脉冲 | 稳定后才用脉冲打开输出 | 简单,不需增加元件 | 输出变为脉冲;选通脉冲须与输入同步,宽度、时间要求严 |
| 修改逻辑设计 | 增加冗余项 | 运用得当效果好,有时只需加一根线 | 适用范围有限,只能消除特定单变量变化引起的冒险 |
4.5 例题 3:判断并消除
题目:,判断是否存在竞争-冒险;如有,用增加冗余项的方法消除。
解:
- 同时以原、反变量出现的是。
- 考察、的取值:时——存在竞争-冒险(变化时)。其他取值:时;时;时,都没有问题。
- 消除:在时让某一项恒为 1,加冗余项:
由冗余项定理,函数不变。在卡诺图上,和两个圈在()与()处相切,圈把这两格圈在一起。
4.6 易错点 ⚠️
- 冗余项的找法:把发生冒险时其余变量的取值写成乘积项。 → ; → ;若是 → 。
- 加冗余项后一定要确认函数没变(冗余项定理保证,但最好代几组数或用卡诺图看一眼)。
- 别把"消除冒险"误做成"化简":化简会把冗余项删掉,恰好把冒险带回来。最简电路未必是最可靠的电路。
五、把本讲和前几讲串起来
- 第 08 讲说组合电路"输出只取决于当前输入"——这句话说的是稳态;本讲补上了动态的一面。
- 第 09 讲的译码器输出接到触发器的时钟端时,一定要考虑毛刺,常用选通(使能端)来消除——74HC138 的片选端恰好可以接选通脉冲。
- 第 13 讲以后的时序电路,正是对毛刺最敏感的"负载"。
速记卡
| 项目 | 要点 |
|---|---|
| 竞争 | 门的两个输入同时向相反电平跳变 |
| 竞争-冒险 | 因竞争而输出可能出现尖峰脉冲(毛刺) |
| 根本原因 | 同一信号经不同路径(延迟不同)到达同一个门 |
| 代数判别 | 其他变量取定值后能化成(1 型)或(0 型) |
| 卡诺图判别 | 两个圈相切(相邻不重叠) |
| 消除①电容 | 简单;波形变坏 |
| 消除②选通 | 不增元件;输出变脉冲,选通须同步 |
| 消除③冗余项 | 运用得当效果好;只消除特定单变量变化的冒险 |
| 冗余项怎么找 | 冒险条件下其余变量的乘积项(或与式用对偶的和项) |
| 最终结论 | 以实验检查为准 |
自测练习
1. 什么是竞争?什么是竞争-冒险?有竞争是否一定会产生毛刺?
答案与提示
竞争:门电路两个输入信号同时向相反的逻辑电平跳变。竞争-冒险:由于竞争而在输出端可能产生尖峰脉冲的现象。有竞争不一定产生毛刺,取决于两个信号变化的先后(例如与门中先降到低电平、后升高,就不会有毛刺),但设计时难以确知先后,所以视为存在风险。
2. 判断是否存在竞争-冒险。
答案与提示
没有任何变量同时以原变量和反变量出现,单个变量变化不会化成,不存在(单变量变化引起的)竞争-冒险。已用程序核对。
3. 判断是否存在竞争-冒险;若有,写出消除冒险后的表达式。
答案与提示
时,变化时存在(0 型)竞争-冒险。乘上冗余因子:,函数不变。已用程序核对。
4. 判断在单变量变化时有哪些竞争-冒险,并用增加冗余项的方法全部消除。
答案与提示
三个变量都同时以原、反变量出现,逐个检查:时(变化有冒险);时(变化有冒险);时(变化有冒险)。分别加冗余项、、:。三个冗余项加入后函数不变,三处冒险全部消除。已用程序逐一核对。
5.(华师真题风格)比较消除竞争-冒险的三种方法的优缺点。
答案与提示
见本讲 4.4 表格:滤波电容简单但使波形变坏;选通脉冲简单不增元件,但输出变为脉冲、选通脉冲须与输入同步且对宽度和时间要求严格;增加冗余项运用得当效果好,但适用范围有限,只能消除特定条件下单变量变化引起的冒险。
6. 为什么说"化简得到的最简与或式电路,不一定是最好的电路"?举例说明。
答案与提示
最简式会删去冗余项,而冗余项恰好可能是消除竞争-冒险所需的。例如化简后为,但后者在、变化时存在竞争-冒险,前者没有(单变量变化时)。
7. 在中,若非门延迟为,与门、或门延迟为,,由 1 变 0,毛刺宽度约为多少?
答案与提示
在后变 0;在后变 1,在后变 1。或门两个输入同时为 0 的时间是,所以毛刺宽约(再晚出现在输出端)。规律:两条路径的延迟差就是毛刺宽度。
下一讲预告
组合逻辑部分到此结束。第 13 讲(上)进入时序逻辑:先认识能"记住"一位二进制数的 SR 锁存器,以及电平触发的触发器。
👉 点击进入下一讲:第13讲(上)|SR 锁存器与电平触发的触发器
评论
还没有评论。 来写第一条。