第 149 篇
考研数电·零基础讲义 第13讲(中)|脉冲触发与边沿触发的触发器
考研数电·零基础讲义 · 第 13 讲(中)|脉冲触发与边沿触发的触发器 学完本讲,你能说清楚边沿触发器和脉冲(主从)触发器"内部两道门怎么配合",记住三种触发方式各自的动作特点,并且会根据 CLK 和输入波形,正确画出边沿触发器和主从 JK 触发器的输出波形。预计用时 90 分钟。
本讲地图
- 问题从哪来:电平触发的触发器在 CLK 有效期间会被输入反复改写(甚至"空翻"),抗干扰差。
- 边沿触发:用两个 D 锁存器串起来、让它们"轮流开门",触发器只在 CLK 上升沿(或下降沿)那一瞬间按输入改变状态——最常用、最可靠。
- 脉冲触发(主从结构):主从 SR、主从 JK 触发器,输出在 CLK 下降沿变化,但 CLK=1 期间的输入变化都会被主触发器"记账",画波形时最容易错。
- 三种触发方式对比 + 触发器的动态参数(建立时间、保持时间、传输延迟、最高时钟频率)。
- 华师怎么考:考纲"触发器"条目下,给 CLK 和输入波形画输出波形、比较触发方式是基础题;后面计数器、寄存器、时序电路分析题(如 2026 回忆题第 7 题)默认都用边沿触发器,必须熟练。
- 教材对应:阎石第六版 5.3.2(边沿触发)、5.3.3(脉冲触发)、5.3.5(动态特性)。
前置知识
- SR 锁存器、电平触发 SR 触发器、D 锁存器及电平触发的动作特点,见第 13 讲(上)。
- CMOS 传输门的开关作用,见第 06 讲。
- 与非门"有 0 出 1"的封锁作用,见第 02 讲(上)。
一、电平触发到底哪里不好
1.1 回顾:门开着的时候谁都能改
上一讲的电平触发器,CLK=1 时就像一扇一直敞开的门:这段时间里输入变一次,输出就可能变一次。来一个干扰毛刺,状态就被改掉了。
1.2 更严重的问题:空翻
设想把 D 锁存器的接回自己的(),本意是"每来一个时钟,状态翻一次"。可是 CLK=1 期间锁存器是"透明"的:
变 1 又变 0
只要 CLK 还是高电平,它就会来回翻个不停,CLK 落下时停在哪个状态全凭运气。这种"一个时钟脉冲里翻了不止一次"的现象叫空翻。
我们真正想要的是:每个时钟只"动一下",而且只按某一瞬间的输入来动。这就是本讲两种新触发方式要解决的事。
二、边沿触发:只在那一瞬间"拍照"
2.1 大白话:录像机和照相机
- 电平触发像录像机:CLK=1 的整段时间都在"录",输入的一举一动都录进去。
- 边沿触发像照相机:只在 CLK 跳变的那一瞬间"咔嚓"拍一张,拍到的是那一刻的输入;拍照前后输入怎么变都无所谓。
怎么做出一台"照相机"?想想船闸:船闸有前后两道闸门,永远不会同时打开。船先进前闸(前门开、后门关),然后前门关上、后门打开,船才出去。水流永远不会一冲到底。
2.2 电路结构:两个 D 锁存器串联
把两个电平触发的 D 锁存器、串起来:的输出接的输入,的输出就是整个电路的输出。
- 叫主触发器(主锁存器),它的时钟是(CLK 经过一个反相器);
- 叫从触发器(从锁存器),它的时钟是。
因为两个时钟正好相反,两道门永远不会同时打开——这就是电路版的船闸。
图 1:用两个 D 锁存器组成的上升沿 D 触发器。CLK=0 时主开从关,CLK=1 时主关从开(动画循环切换两个阶段)
2.3 一步一步看它怎么工作
① CLK = 0 时:,主触发器门开, 跟着走;,从触发器门关, 保持不动。新数据只走到了"半路" 。
② CLK 由 0 跳到 1(上升沿)的瞬间:主触发器的门关上,被锁定为上升沿到达前一瞬间的;同时从触发器的门打开,。于是变成了"上升沿那一刻的"。
③ CLK = 1 期间:主触发器门关着,再怎么变也进不来;从触发器虽然开着,但它的输入不变,所以也不变。
④ CLK 由 1 回到 0(下降沿):从触发器关门,保持;主触发器开门,重新开始跟随。仍然不变。
结论:只在 CLK 上升沿改变,变成上升沿到达时刻的值,其余时间的变化对毫无影响。这就是上升沿触发的 D 触发器。
实际的 CMOS 边沿 D 触发器正是这样做的:两个由传输门和反相器组成的 D 锁存器,用互补的时钟、控制,教材里的 74HC 系列 D 触发器就是这种结构。此外还有维持阻塞结构、利用门电路传输延迟的结构等,内部不同,但对外表现一样。
2.4 特性表、符号和"下降沿"版本
| CLK | |||
|---|---|---|---|
| 非上升沿(×) | × | × | (保持) |
| ↑ | 0 | 0 | 0 |
| ↑ | 0 | 1 | 0 |
| ↑ | 1 | 0 | 1 |
| ↑ | 1 | 1 | 1 |
读表方法:特性表里的 ↑ 表示"上升沿",也就是说,只有出现上升沿时;没有上升沿就保持。
逻辑符号:CLK 输入端在方框里面画一个小三角">",表示边沿触发。
- 只有 ">"、外面没有小圆圈:上升沿触发(↑);
- ">" 外面再加一个小圆圈:下降沿触发(↓)。把图 1 中 CLK 那一路的反相器挪个位置(让主触发器在 CLK=1 时开门、从触发器在 CLK=0 时开门),就变成下降沿触发。
2.5 边沿触发的动作特点(必背)
触发器的次态仅取决于 CLK 上升沿(正边沿)或下降沿(负边沿)到达时刻输入信号的状态,在此之前和之后输入的变化对输出没有影响。
好处:大大提高了抗干扰能力和工作可靠性;而且每个时钟只动一次,没有空翻。把 D 端接,就能得到每个时钟翻转一次的电路(二分频),这在电平触发器上是做不到的。
2.6 例题 1:同一组输入,锁存器和边沿触发器的输出对比
题:CLK 与的波形如图 2 前两行。分别画出①电平触发 D 触发器(D 锁存器,CLK 高电平有效)和②上升沿 D 触发器的输出,初态都为 0。并画出②内部主触发器的。
图 2:同一组 CLK、D 作用下,D 锁存器(蓝)和上升沿 D 触发器(橙)的输出对比,灰线是边沿触发器内部主触发器的(扫描线动画循环播放)
解②(边沿触发器):只盯住 4 条虚线(上升沿),看沿前一瞬间的:
| 上升沿 | 沿前的 | |
|---|---|---|
| 第 1 个 | 0 | 0 |
| 第 2 个 | 1 | 1 |
| 第 3 个 | 0 | 0 |
| 第 4 个 | 1 | 1 |
两个沿之间一律保持。注意第 2 个 CLK 高电平期间出现了一个"凹口",第 3 个 CLK 高电平期间从 0 变成了 1——这些对边沿触发器统统没影响。
解①(D 锁存器):CLK=1 期间跟随,所以第 2 个高电平里也跟着凹了一下,第 3 个高电平里先 0 后 1,CLK 落下时——和②在很多时段完全不同。
主触发器:CLK=0 时跟随,CLK=1 时锁住。对比和就能看到"船闸"的两步:数据先在 CLK=0 时进到,上升沿时再送到。
这三条波形都是用 Python 按电路逻辑逐时隙模拟出来的,并且程序核对了"两个 D 锁存器组成的主从结构"与"理想上升沿 D 触发器"在每个时隙都完全相同。
2.7 易错点 ⚠️
- ⚠️ 边沿触发取的是沿到达前一瞬间的输入。如果输入恰好在时钟沿同时跳变,题目一般约定按跳变前的值算(真实电路要满足建立时间,见第五节)。
- ⚠️ 看清是上升沿还是下降沿:符号里 ">" 外有没有小圆圈、特性表里是 ↑ 还是 ↓。
- ⚠️ 画波形时,输出的跳变只能出现在有效边沿处,不能出现在别的地方(异步置位/复位端起作用时除外)。
三、脉冲触发:主从 SR 与主从 JK 触发器
3.1 主从 SR 触发器的结构
把图 1 里的两个 D 锁存器换成两个电平触发的 SR 触发器,就得到脉冲触发的 SR 触发器,以前叫主从 SR 触发器:
- 主触发器:受 CLK 控制,CLK=1 时按、动作;
- 从触发器:受控制,CLK=0 时照抄主触发器(,)。
工作过程:
- CLK=1:主触发器接收、,被置成相应状态;从触发器关门,不变。
- CLK 下降沿:主触发器关门,从触发器开门,变成的状态。
所以输出在 CLK 下降沿才改变,要等 CLK 的有效电平"过去"以后才改,因此也叫延迟触发。逻辑符号的方框内用"¬"形的延迟输出记号表示脉冲触发。CLK 高电平期间接收、下降沿输出,叫正脉冲触发;如果 CLK 端再加个反相器(符号上画小圆圈),就是 CLK 低电平期间接收、上升沿输出。
和边沿触发的关键区别:主触发器是个电平触发 SR 触发器,CLK=1 的整段时间里、的变化都会改变,而且可能改好几次。下降沿到来时,从触发器照抄的是 此刻的状态,它是整个高电平期间"历史"的结果,不一定等于"按下降沿时刻的、查表"的结果。
主触发器仍是 SR 型,所以主从 SR 触发器仍要遵守。
3.2 主从 JK 触发器:把约束条件也去掉
不让用,总觉得浪费了一种输入组合。能不能规定:两个输入同时为 1 时,让触发器翻转()?
做法:把输出和反馈回主触发器的输入门。输入端改名叫 J 和 K(没有特殊含义,就是两个字母),主触发器实际收到的是:
(这里的、是从触发器的输出,CLK=1 期间它们不变。)
逐种情况分析:
- ,:若,,主触发器置 1,下降沿后;若,,主触发器本来就跟从触发器一样是 1,保持。总之(置 1)。
- ,:同理(置 0)。
- :,主触发器不动,(保持)。
- :
- 若:被封锁,只有,主触发器置 1,下降沿后;
- 若:被封锁,只有,主触发器置 0,下降沿后。
- 合起来:,翻转。
因为和总有一个是 0,、 不可能同时为 1,主触发器永远不会碰到禁止输入——约束条件消失了。
脉冲触发 JK 触发器的特性表(CLK 一栏的 ⊓ 表示正脉冲:高电平期间接收、下降沿输出;表中假定 CLK=1 期间 J、K 不变):
| CLK | 功能 | ||||
|---|---|---|---|---|---|
| × | × | × | × | 无脉冲,保持 | |
| ⊓ | 0 | 0 | 0 | 0 | 保持 |
| ⊓ | 0 | 0 | 1 | 1 | 保持 |
| ⊓ | 1 | 0 | 0 | 1 | 置 1 |
| ⊓ | 1 | 0 | 1 | 1 | 置 1 |
| ⊓ | 0 | 1 | 0 | 0 | 置 0 |
| ⊓ | 0 | 1 | 1 | 0 | 置 0 |
| ⊓ | 1 | 1 | 0 | 1 | 翻转 |
| ⊓ | 1 | 1 | 1 | 0 | 翻转 |
有的芯片有多个 J、K 输入端(、,、),它们是与的关系,用、代入上表即可。
3.3 主从 JK 的"一次翻转"现象
主从 SR 触发器的主触发器在 CLK=1 期间可能翻来覆去改好几次;主从 JK 的主触发器在 CLK=1 期间最多只能翻转一次。为什么?
CLK=1 期间从触发器不动,是固定的:
- 若:,主触发器只能被"置 1",不能被"置 0"。一旦被置成 1,就再也回不去了。
- 若:,主触发器只能被"置 0",一旦置 0 就回不去。
所以只要 CLK=1 期间出现过一次能让主触发器翻转的输入(哪怕是一个毛刺),下降沿时输出就会翻转,哪怕下降沿那一刻 J、K 已经变回去了。这是主从 JK 抗干扰差的根源,也是画波形最容易错的地方。
3.4 脉冲触发的动作特点(必背)
- 翻转分两步:CLK=1 期间主触发器接收输入、被置成相应状态,从触发器不动;CLK 下降沿到来时,从触发器按主触发器的状态翻转。所以、的变化发生在 CLK 下降沿(CLK 低电平有效时在上升沿)。
- CLK=1 的全部时间里输入都对主触发器起作用。因此:只有 CLK=1 期间输入始终没变,才能用下降沿时刻的输入查特性表;否则必须考虑整个高电平期间输入的变化过程。
3.5 例题 2:主从 JK 触发器画波形(重点)
题:正脉冲触发的主从 JK 触发器,初态,CLK、、波形如图 3 前三行,画出主触发器和输出。
图 3:主从 JK 触发器例题波形,蓝底为 CLK 高电平(主触发器接收期),①~④为下降沿(扫描线动画循环播放)
解:方法是"先画,再画":CLK=1 期间按、画主触发器;每个下降沿把搬到。
第 1 个高电平:,、一直没变,,主触发器置 1。下降沿①后。(这一段输入不变,直接查表"置 1"也对。)
第 2 个高电平:现在,所以被封锁,只看。期间出现一个短正脉冲,,主触发器被置 0。之后回到 0,但主触发器已经是 0,而且(一次翻转)回不去了。下降沿②后。
❌ 错误做法:只看下降沿②时刻,判为"保持 1"。
第 3 个高电平:,所以被封锁,只看。高电平前半段,主触发器置 1;后半段、,但,置不了 0。下降沿③后。
❌ 错误做法:只看下降沿③时刻、,判为"置 0"。
第 4 个高电平:,、不变,,主触发器置 0,下降沿④后。
答:依次在①~④变为 1、0、1、0。如果只看下降沿时刻查表,会得到 1、1、0、0,第②、③两次都错。图中每个时隙都由 Python 按主从结构逐步模拟,程序同时算了"只看下降沿"的错误结果用来对照。
3.6 易错点 ⚠️
- ⚠️ 主从(脉冲)触发器的输出在下降沿变,但由整个高电平期间决定;边沿触发器的输出由沿那一刻决定。两者的符号不同:边沿触发有 ">",脉冲触发有延迟输出记号"¬"。
- ⚠️ 画主从 JK 波形,先确定这一个高电平期间的现态,从而判断哪一路被封锁(封 K,封 J),再看另一路有没有出现过 1。
- ⚠️ 主从 SR 触发器仍需;主从 JK 没有约束条件。
四、三种触发方式放在一起比
| 对比项 | 电平触发 | 脉冲触发(主从) | 边沿触发 |
|---|---|---|---|
| 典型电路 | 门控 SR 锁存器、D 锁存器 | 主从 SR、主从 JK | 两个 D 锁存器构成的 CMOS D 触发器、维持阻塞等 |
| 接收输入的时间 | CLK 有效电平全过程 | CLK 有效电平全过程(主触发器) | 仅时钟边沿那一刻 |
| 输出何时变化 | CLK 有效期间随时可变 | CLK 有效电平结束时(下降沿) | 时钟边沿 |
| 次态由什么决定 | CLK 回到无效前一瞬间的输入 | 整个 CLK 有效期间输入的变化过程 | 边沿到达时刻的输入 |
| 抗干扰能力 | 差,可能多次翻转 | 较差(JK 有一次翻转问题) | 好 |
| 符号特征 | C1,无 ">" | 输出旁有"¬"延迟记号 | C1 前有 ">" |
| 特性表 CLK 栏 | 1 / 0 | ⊓ | ↑ 或 ↓ |
教材特别强调:触发方式由电路结构决定,和逻辑功能(SR、JK、D、T)没有固定对应关系——同样是 D 触发器,可以是电平触发(D 锁存器),也可以是边沿触发;同样是边沿触发,可以做成 D 型,也可以做成 JK 型(如 CC4027)。逻辑功能的分类是下一讲的内容。
五、触发器的动态参数(了解即可,会说含义)
以边沿触发 D 触发器为例,教材假设每个门、每个传输门的延迟都是,分析得到:
- 建立时间(Setup time):输入信号必须比时钟有效沿提前到达的最短时间。数据要先穿过主锁存器的传输门和两个反相器、在上稳定下来,所以。
- 保持时间(Hold time):时钟有效沿到达之后,输入还必须保持不变的最短时间,。
- 传输延迟时间:从时钟有效沿到达,到输出新状态稳定建立所需的时间:,。
- 最高时钟频率:CLK 低电平至少、高电平至少,所以
若要求 CLK 占空比 50%,则高低电平都取,最高频率为。
例如时:,,,占空比 50% 时约(已用 Python 计算)。
这些只是定性说明物理概念的结果,真实芯片的参数要查手册,都是实测给出的范围。
速记卡
| 知识点 | 一句话 |
|---|---|
| 空翻 | 电平触发器在一个 CLK 有效期间翻转不止一次 |
| 边沿触发原理 | 两个 D 锁存器串联、时钟相反,像船闸两道门不同时开 |
| 上升沿 D 触发器 | CLK=0 主跟随 D、从保持;上升沿(沿前一瞬间的 D) |
| 边沿触发特点 | 次态只取决于有效沿到达时刻的输入,抗干扰强,无空翻 |
| 边沿符号 | 框内 ">";外加小圆圈为下降沿;特性表 ↑/↓ |
| 主从 SR | CLK=1 主接收、从不动;下降沿从照抄主;仍需 |
| 主从 JK | 、;时翻转,无约束 |
| 一次翻转 | 主从 JK 在 CLK=1 期间主触发器最多翻一次:只能被置 1,只能被置 0 |
| 脉冲触发画波形 | 先按高电平期间的经历画,再在下降沿把搬给 |
| 动态参数 | 沿前提前量,沿后保持量,输出延迟, |
自测练习
1. 上升沿 D 触发器初态,连续 5 个上升沿到达前一瞬间依次为 1、1、0、1、0,写出每个上升沿之后的。如果在两个上升沿之间来回变化了好几次,结果会变吗?
答案与提示
依次为 1、1、0、1、0()。两个上升沿之间怎么变都不影响结果,只看沿前一瞬间。
2. 一个触发器符号的 CLK 端框内有 ">",框外有小圆圈,它在什么时候改变状态?
答案与提示
">" 表示边沿触发,小圆圈表示低电平/下降沿有效,所以是下降沿触发,只在 CLK 由 1 变 0 的时刻按当时的输入改变状态。
3. 主从 JK 触发器初态。某个 CLK 高电平的前半段,后半段直到下降沿。下降沿之后等于多少?只看下降沿时刻查表会得到什么?
答案与提示
时被封锁,前半段,主触发器置 1;后半段,主触发器保持 1。下降沿后。只看下降沿时刻会误判为"保持 0"。(Python 模拟主从结构结果为 1。)
4. 主从 JK 触发器初态。某个 CLK 高电平期间:先,中间出现一个短正脉冲,之后、一直保持到下降沿。下降沿之后是多少?
答案与提示
时被封锁。的短脉冲使,主触发器置 0;之后但仍被封锁,主触发器回不到 1(一次翻转)。下降沿后。只看下降沿时刻、会误判为 1。(Python 模拟结果为 0。)
5. 把上升沿 D 触发器的接到自己的,CLK 频率为 1 MHz。的波形是什么样?频率是多少?为什么换成 D 锁存器就不行?
答案与提示
每个上升沿,依次 1、0、1、0……,每两个时钟周期一个周期,频率 500 kHz(二分频)。D 锁存器在 CLK=1 期间是透明的,会让它在高电平期间反复翻转(空翻),结果不确定。
6.(华师简答题风格)比较电平触发、脉冲触发和边沿触发三种方式的动作特点。
答案与提示
要点:电平触发——CLK 有效电平全过程中输入的变化都可能使输出变化,CLK 无效后保存无效前一瞬间的状态;脉冲触发——分两步,CLK 有效期间主触发器接收输入,有效电平结束时(如下降沿)从触发器按主触发器状态翻转,次态由整个有效期间的输入变化过程决定;边沿触发——次态仅取决于时钟有效沿到达时刻的输入,此前此后的输入变化不影响输出,抗干扰能力最强。
7. 按教材的简化模型(各门延迟均为),若,求边沿 D 触发器的、、和最高时钟频率;若要求时钟占空比为 50%,最高频率又是多少?
答案与提示
,();;占空比 50% 时。
下一讲预告
第 13 讲(下):抛开内部结构,只按"输入和次态的关系"把触发器分成 SR、JK、D、T、T' 五类,写出它们的特性方程和状态图,并学会互相转换。
👉 点击进入下一讲:第13讲(下)|触发器按逻辑功能分类:SR、JK、D、T、T'
评论
还没有评论。 来写第一条。