第 146 篇

考研数电·零基础讲义 第13讲(上)|SR 锁存器与电平触发的触发器

约 21 分钟 6974 字 华南师范大学数字电子技术考研数电零基础讲义

考研数电·零基础讲义 · 第 13 讲(上)|SR 锁存器与电平触发的触发器 学完本讲,你能看懂"会记事"的最小电路——SR 锁存器,背得出、也讲得清它的特性表和约束条件,能根据输入波形一段一段画出输出波形,并理解"电平触发"到底是什么意思。预计用时 90 分钟。

本讲地图

  • 为什么要有存储电路:组合电路"手一松就忘",时序电路必须能记住过去,最小的记忆单元就是锁存器。
  • 两种 SR 锁存器:或非门组成(高电平有效)和与非门组成(低电平有效),会分析、会列特性表、懂约束条件SDRD=0S_DR_D=0⁠。
  • 波形分析:给出输入波形画QQ⁠、Q‾\overline{Q}波形——这是触发器部分最基础、也最常见的考法。
  • 电平触发的触发器:加上时钟 CLK 当"门卫",得到电平触发 SR 触发器和电平触发 D 触发器(D 锁存器),掌握"CLK 有效期间输出跟着输入变"的动作特点。
  • 华师怎么考:考纲写的是"时序逻辑电路:触发器、计数器、寄存器等",触发器是后面计数器、寄存器、时序电路分析(2026 回忆题第 7 题)的地基,概念、特性表、画波形都要熟。
  • 教材对应:阎石《数字电子技术基础》第六版 5.1、5.2 节,5.3.1 节。

前置知识

  • 与非门、或非门的真值表:"与非:有 0 出 1,全 1 出 0";"或非:有 1 出 0,全 0 出 1"。见第 02 讲(上)。
  • 高、低电平与逻辑 1、0 的对应(正逻辑),见第 05 讲(上);CMOS 与非、或非门见第 06 讲。
  • 组合逻辑电路"输出只取决于当前输入"的特点,见第 08 讲。

一、从"门铃"到"电灯开关":电路怎样才能记住东西

1.1 大白话:组合电路像门铃

前面十几讲学的全是组合逻辑电路:编码器、译码器、数据选择器、加法器……它们有一个共同脾气——输出只看现在的输入。就像门铃按钮:手按下去就响,手一松立刻不响,它根本不记得刚才有人按过。

可是生活里很多事要"记住":

  • 电灯的拨动开关:拨一下,灯一直亮着,手拿开也不灭;再拨一下才灭。
  • 计算器要记住你刚输入的第一个数,才能和第二个数相加。
  • 计数器要记住"已经数到几了"。

这种"输入撤掉以后,结果还能保留下来"的能力,叫记忆功能。能存储 1 位二值信号(0 或 1)的电路,叫存储单元。本讲和下两讲要学的锁存器、触发器,就是最基本的存储单元。

1.2 一个门为什么记不住

拿一个或非门G1G_1来看:另一个输入接 0 时,它就是一个反相器——输入 1 输出 0,输入 0 输出 1。输入一变,输出马上跟着变,输入信号消失了,输出也就"忘了"。

1.3 两个门首尾相连,就能记住

关键招数叫反馈:把输出再送回输入。

想象两个反相器首尾相接:第一个的输出接第二个的输入,第二个的输出又接回第一个的输入。

  • 如果第一个输出是 1,那么第二个输出是 0,0 送回第一个,第一个输出还是 1——自己撑住自己,稳定不变。
  • 如果第一个输出是 0,同理也能一直稳定下去。

所以这个环有两个稳定状态,正好可以代表 1 和 0,这就记住了 1 位!

不过两个反相器的环有个毛病:没有"入口",你没法告诉它"现在请存 1"。办法是把反相器换成或非门(或与非门)——多出来的那个输入端,正好当作"改写入口"。这就是 SR 锁存器。

1.4 几个以后天天用的名词

  • 状态:存储单元里存的是 0 还是 1,就叫它的状态,用输出QQ表示。另一个输出Q‾\overline{Q}(读作"Q 非",图里常写作 Q')总是和QQ相反。
  • 规定:Q=1Q=1⁠、Q‾=0\overline{Q}=0叫 1 状态;Q=0Q=0⁠、Q‾=1\overline{Q}=1叫 0 状态。
  • 现态(初态) QQ⁠:输入信号作用之前的状态。
  • 次态 Q∗Q^{*}(读作"Q 星",有的书写作Qn+1Q^{n+1}⁠):输入信号作用之后的新状态。

一句话:次态Q∗Q^{*}不只由输入决定,还和现态QQ有关——这正是"有记忆"的数学表现。


二、或非门组成的 SR 锁存器

2.1 电路长什么样

两个或非门G1G_1⁠、G2G_2交叉连接:G1G_1的输出就是QQ⁠,它又接到G2G_2的一个输入;G2G_2的输出是Q‾\overline{Q}⁠,它又接回G1G_1的一个输入。剩下两个空着的输入端就是两个"入口":

  • SDS_D(读作"S D"):置位端 / 置 1 端,S 是 Set(设置)的首字母。
  • RDR_D⁠:复位端 / 置 0 端,R 是 Reset(复位)的首字母。
  • 下标 D 是 Direct(直接)的意思:信号直接加在输出门上,一来就起作用。

用逻辑式写出来就是:

Q=RD+Q‾‾,Q‾=SD+Q‾Q=\overline{R_D+\overline{Q}},\qquad \overline{Q}=\overline{S_D+Q}

注意等号右边又出现了QQ⁠、Q‾\overline{Q}——这就是反馈。

或非门 SR 锁存器的四个阶段 G1G2 RDSD QQ' 01=1=0置 1:S=1 把 Q 推成 1 00=1=0保持:输入撤掉,Q 仍是 1 10=0=1置 0:R=1 把 Q 拉成 0 00=0=1保持:输入撤掉,Q 仍是 0 橙色线 = 高电平 1

图 1:或非门 SR 锁存器。橙色线表示高电平 1,动画依次演示"置 1 → 保持 → 置 0 → 保持"(动画循环播放)

2.2 逐种情况分析(一定要自己推一遍)

或非门的口诀:有 1 出 0,全 0 出 1。

情况①:SD=1S_D=1⁠,RD=0R_D=0(要求置 1)

  1. 先看G2G_2⁠:它有一个输入是SD=1S_D=1⁠,"有 1 出 0",所以Q‾=0\overline{Q}=0⁠。
  2. 再看G1G_1⁠:两个输入是RD=0R_D=0和Q‾=0\overline{Q}=0⁠,"全 0 出 1",所以Q=1Q=1⁠。
  3. 结果Q=1Q=1⁠、Q‾=0\overline{Q}=0⁠,锁存器被置成 1 状态。
  4. 撤掉输入(⁠SDS_D回到 0):G2G_2的两个输入变成SD=0S_D=0和Q=1Q=1⁠,仍然"有 1 出 0",Q‾\overline{Q}还是 0;G1G_1仍然全 0 出 1。1 状态保持住了。

情况②:SD=0S_D=0⁠,RD=1R_D=1(要求置 0)

和情况①对称:G1G_1有RD=1R_D=1⁠,所以Q=0Q=0⁠;G2G_2两个输入SD=0S_D=0⁠、Q=0Q=0⁠,所以Q‾=1\overline{Q}=1⁠。锁存器被置 0,撤掉RDR_D后也能保持。

情况③:SD=0S_D=0⁠,RD=0R_D=0(什么都不做)

两个门各自只剩反馈那一个输入在起作用,就是 1.3 节说的"两个反相器的环",原来是什么状态就保持什么状态:Q∗=QQ^{*}=Q⁠。

情况④:SD=1S_D=1⁠,RD=1R_D=1(同时要求置 1 和置 0)

两个门都有一个输入是 1,都"有 1 出 0":Q=Q‾=0Q=\overline{Q}=0⁠。

这就麻烦了:

  • QQ和Q‾\overline{Q}本该相反,现在却都是 0,既不是 1 状态也不是 0 状态;
  • 更糟的是,如果SDS_D⁠、RDR_D 同时回到 0,两个门同时从"被压住"变成"自由",谁先翻过来全看两个门谁快那么一点点(这叫竞争),结果无法确定。

所以正常使用时不允许 SD=RD=1S_D=R_D=1⁠。这个要求叫约束条件:

SDRD=0S_DR_D=0

2.3 特性表

把现态QQ也当作一个输入变量,列成真值表,就得到锁存器的特性表(也叫功能表):

SDS_D RDR_D QQ Q∗Q^{*} 说明
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 0* 禁止:Q=Q‾=0Q=\overline{Q}=0⁠,输入同时撤销后状态不定
1 1 1 0* 同上

复习时可以只记压缩版:"00 保持,10 置 1,01 置 0,11 禁止"(顺序是SDRDS_DR_D⁠)。

这张表我用 Python 对两个或非门做了门级迭代模拟,8 行全部核对一致(见验算脚本 13-flipflops.py)。

2.4 例题 1:按输入序列推状态

题:或非门 SR 锁存器初态Q=0Q=0⁠,(SD,RD)(S_D,R_D)依次为(1,0)(1,0)⁠、(0,0)(0,0)⁠、(0,1)(0,1)⁠、(0,0)(0,0)⁠、(1,0)(1,0)⁠、(0,0)(0,0)⁠,求每一步之后的QQ⁠。

解:一步一步查特性表,每一步的"现态"就是上一步的结果。

步骤 SDS_D RDR_D 现态QQ 动作 次态Q∗Q^{*}
1 1 0 0 置 1 1
2 0 0 1 保持 1
3 0 1 1 置 0 0
4 0 0 0 保持 0
5 1 0 0 置 1 1
6 0 0 1 保持 1

答:QQ依次为 1、1、0、0、1、1。注意第 2、4、6 步输入全是 0,输出却不一样——同样的输入,结果取决于过去,这就是"记忆"。

2.5 易错点 ⚠️

  • ⚠️ 或非门 SR 锁存器是高电平有效:输入为 1 才"动手",为 0 是"不管"。
  • ⚠️ SD=RD=1S_D=R_D=1时输出不是"不定",而是确定的Q=Q‾=0Q=\overline{Q}=0⁠;"不定"指的是两个输入同时撤销以后的状态。考试问"为什么要约束",两点都要答。
  • ⚠️ 特性表里一定要有现态QQ这一列,漏掉它就写不出"保持"。

三、与非门组成的 SR 锁存器

3.1 大白话:换一种"按钮"

把两个或非门换成两个与非门,也能交叉连成锁存器。区别在于:与非门的口诀是有 0 出 1,全 1 出 0,所以这种锁存器要用**低电平(0)**去"按按钮"。

为了提醒大家"0 才有效",输入端写成SD‾\overline{S_D}(读作"S D 非")、RD‾\overline{R_D}⁠,逻辑符号的输入端还会画一个小圆圈,表示低电平有效。电路关系是:

Q=SD‾⋅Q‾‾,Q‾=RD‾⋅Q‾Q=\overline{\overline{S_D}\cdot\overline{Q}},\qquad \overline{Q}=\overline{\overline{R_D}\cdot Q}

3.2 逐种情况分析

① SD‾=0\overline{S_D}=0⁠,RD‾=1\overline{R_D}=1(置 1):G1G_1有一个输入为 0,"有 0 出 1",Q=1Q=1⁠;G2G_2的输入是RD‾=1\overline{R_D}=1⁠、Q=1Q=1⁠,"全 1 出 0",Q‾=0\overline{Q}=0⁠。撤销后SD‾\overline{S_D}回到 1,G1G_1的输入是 1 和Q‾=0\overline{Q}=0⁠,仍出 1,保持住了。

② SD‾=1\overline{S_D}=1⁠,RD‾=0\overline{R_D}=0(置 0):对称地得到Q=0Q=0⁠、Q‾=1\overline{Q}=1⁠。

③ SD‾=RD‾=1\overline{S_D}=\overline{R_D}=1(都不按):保持原状态。

④ SD‾=RD‾=0\overline{S_D}=\overline{R_D}=0(同时按):两个门都"有 0 出 1",Q=Q‾=1Q=\overline{Q}=1⁠,又是非定义状态;两个输入同时回到 1 后状态不定。所以同样要遵守约束SDRD=0S_DR_D=0⁠,也就是不允许SD‾=RD‾=0\overline{S_D}=\overline{R_D}=0。

3.3 特性表

SD‾\overline{S_D} RD‾\overline{R_D} QQ Q∗Q^{*} 说明
1 1 0 0 保持
1 1 1 1 保持
0 1 0 1 置 1
0 1 1 1 置 1
1 0 0 0 置 0
1 0 1 0 置 0
0 0 0 1* 禁止:Q=Q‾=1Q=\overline{Q}=1⁠,同时撤销后不定
0 0 1 1* 同上

两种锁存器放在一起比较:

或非门 SR 锁存器 与非门 SR 锁存器
有效电平 高电平(1)有效 低电平(0)有效
输入写法 SDS_D⁠、RDR_D SD‾\overline{S_D}⁠、RD‾\overline{R_D}
置 1 SD=1,RD=0S_D=1,R_D=0 SD‾=0,RD‾=1\overline{S_D}=0,\overline{R_D}=1
置 0 SD=0,RD=1S_D=0,R_D=1 SD‾=1,RD‾=0\overline{S_D}=1,\overline{R_D}=0
保持 SD=RD=0S_D=R_D=0 SD‾=RD‾=1\overline{S_D}=\overline{R_D}=1
禁止输入 SD=RD=1S_D=R_D=1(此时Q=Q‾=0Q=\overline{Q}=0⁠) SD‾=RD‾=0\overline{S_D}=\overline{R_D}=0(此时Q=Q‾=1Q=\overline{Q}=1⁠)
约束条件 SDRD=0S_DR_D=0 SDRD=0S_DR_D=0

记忆法:"或非怕两个 1,与非怕两个 0";禁止状态下,或非门两个输出都是 0,与非门两个输出都是 1。

3.4 例题 2:画波形(重点题型)

题:与非门 SR 锁存器,初态Q=0Q=0⁠,SD‾\overline{S_D}⁠、RD‾\overline{R_D}的波形如图 2 上两行所示(图中写作 S'、R'),画出QQ和Q‾\overline{Q}的波形。

方法:画波形题的通用套路只有三步——

  1. 切段:在输入任何一个发生跳变的时刻画竖线,把时间轴切成若干小段;
  2. 查表:每一段里输入不变,用"上一段的结果"当现态,查特性表得到这一段的输出;
  3. 连线:把各段输出连起来。
与非门SR锁存器例题波形 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 S' R' Q Q' 红色底色:S'=R'=0,Q=Q'=1(非定义状态);之后谁先回到 1,谁就"输"

图 2:与非门 SR 锁存器例题波形,红色底色为两个输入同时为 0 的区间(橙色竖线为扫描线,动画循环播放)

逐段分析(⁠t1∼t10t_1\sim t_{10}为图中竖线):

时间段 SD‾\overline{S_D} RD‾\overline{R_D} 动作 QQ Q‾\overline{Q}
t1t_1以前 1 1 保持初态 0 1
t1∼t2t_1\sim t_2 0 1 置 1 1 0
t2∼t3t_2\sim t_3 1 1 保持 1 0
t3∼t4t_3\sim t_4 1 0 置 0 0 1
t4∼t5t_4\sim t_5 1 1 保持 0 1
t5∼t6t_5\sim t_6 0 0 禁止输入,两个输出都为 1 1 1
t6∼t7t_6\sim t_7 1 0 SD‾\overline{S_D}先回到 1,相当于置 0 0 1
t7∼t8t_7\sim t_8 1 1 保持 0 1
t8∼t9t_8\sim t_9 0 1 置 1 1 0
t9∼t10t_9\sim t_{10} 0 0 禁止输入,两个输出都为 1 1 1
t10t_{10}以后 0→1 1 RD‾\overline{R_D}先回到 1,相当于置 1,之后保持 1 0

要点:t5∼t6t_5\sim t_6和t9∼t10t_9\sim t_{10}虽然出现了禁止输入,但两个输入不是同时撤销的——谁后撤销,谁就说了算(⁠t6t_6时SD‾\overline{S_D}先撤,剩下RD‾=0\overline{R_D}=0把它置 0;t10t_{10}时RD‾\overline{R_D}先撤,剩下SD‾=0\overline{S_D}=0把它置 1),所以次态仍然能确定。只有同时撤销才真正"不定"。这张波形图的每个时隙都由 Python 门级模拟生成,和表格一致。

3.5 易错点 ⚠️

  • ⚠️ 与非门锁存器输入是低电平有效,看到SD‾=0\overline{S_D}=0才是"置 1",千万别看成"S=0S=0置 0"。
  • ⚠️ 画波形时输入的每一次跳变都要切段,不能只在某一个输入跳变时切。
  • ⚠️ 禁止区间里QQ和Q‾\overline{Q}要画成同为 1(与非门)或同为 0(或非门),不要画成互补。

四、电平触发的 SR 触发器:给锁存器请个"门卫"

4.1 大白话:为什么要时钟

一个数字系统里往往有成百上千个存储单元。如果每个单元都是"输入一来就改",大家改的时机乱七八糟,系统就乱套了。我们希望:平时谁都别动,等统一的"口令"来了,大家再一起按各自的输入更新。

这个统一口令就是时钟信号,记作 CLK(Clock)。在锁存器前面加一道由 CLK 控制的"门",就成了触发器。

教材的定义:触发器与锁存器的区别在于,它除了置 1、置 0 输入端以外,又增加了一个触发信号(时钟)输入端,只有触发信号到来时,才按输入把状态置好并保持下去。

4.2 电路结构

电平触发 SR 触发器(也叫门控 SR 锁存器)由两部分组成:

  • 后级:与非门G1G_1⁠、G2G_2组成的 SR 锁存器(低电平有效);
  • 前级(输入控制门):与非门G3G_3⁠、G4G_4⁠,G3G_3的输入是SS和 CLK,G4G_4的输入是RR和 CLK,它们的输出分别送到锁存器的SD‾\overline{S_D}⁠、RD‾\overline{R_D}⁠。

4.3 逐步分析

CLK = 0 时(门关着):G3G_3⁠、G4G_4都有一个输入为 0,"有 0 出 1",输出恒为 1。锁存器的两个输入都是 1,处于"保持"。不管SS⁠、RR怎么变,QQ都不动。

CLK = 1 时(门开着):G3G_3输出=S⋅1‾=S‾=\overline{S\cdot 1}=\overline{S}⁠,G4G_4输出=R‾=\overline{R}⁠。于是锁存器收到的是S‾\overline{S}⁠、R‾\overline{R}——"取了两次反",正好变成高电平有效:S=1S=1置 1,R=1R=1置 0,S=R=0S=R=0保持。

这种"CLK 处于有效电平(这里是高电平)的整段时间里,输入都能影响输出"的方式,叫电平触发。

4.4 逻辑符号和特性表

逻辑符号是一个方框,框里写 C1(表示 CLK 是 1 号控制信号)、1S、1R(表示受 C1 控制的输入)。CLK 输入端外面没有小圆圈表示高电平有效;有小圆圈表示低电平有效。

CLK SS RR QQ Q∗Q^{*} 说明
0 × × 0 0 门关着,保持
0 × × 1 1 门关着,保持
1 0 0 0 0 保持
1 0 0 1 1 保持
1 1 0 0 1 置 1
1 1 0 1 1 置 1
1 0 1 0 0 置 0
1 0 1 1 0 置 0
1 1 1 0 1* 禁止,CLK 回到 0 后状态不定
1 1 1 1 1* 同上

("×"读作"任意",表示取 0 取 1 都一样。)

CLK=1 时它的功能和 SR 锁存器一样,所以同样要遵守约束条件SR=0SR=0。会出现"不定"的两种情形:

  1. CLK=1 期间SS⁠、RR 同时从 1 变回 0;
  2. S=R=1S=R=1的时候 CLK 回到 0(门一关,G3G_3⁠、G4G_4同时输出 1,相当于锁存器两个输入同时撤销)。

4.5 异步置位、复位端

实际芯片常常还有两个"后门":异步置 1 端SD‾\overline{S_D} 和异步置 0 端RD‾\overline{R_D},它们直接接到G1G_1⁠、G2G_2上,不经过时钟门:

  • SD‾=0\overline{S_D}=0⁠:立刻置 1;RD‾=0\overline{R_D}=0⁠:立刻置 0——不管 CLK 是什么。
  • "异步"就是"不跟时钟同步"的意思。
  • 正常按时钟工作时,这两个端要接高电平(不起作用)。
  • 用它们预置状态时,最好在 CLK=0 时进行,否则 CLK=1 期间SS⁠、RR也在影响锁存器,预置的结果不一定保得住。

4.6 电平触发的动作特点(必背)

  1. 只有 CLK 处于有效电平时,触发器才接受输入,按输入改变状态;
  2. 在 CLK=1 的全部时间里,SS⁠、RR的每一次变化都可能引起输出变化;CLK 回到 0 以后,触发器保存的是 CLK 回到 0 之前那一瞬间的状态。

由第 2 条可以推出它的缺点:如果 CLK=1 期间输入变了好几次(比如来了干扰毛刺),输出也会跟着翻好几次——抗干扰能力差。下一讲(中)要讲的边沿触发,就是为了解决这个问题。

4.7 例题 3:电平触发 SR 触发器画波形

题:电平触发 SR 触发器,初态Q=0Q=0⁠,CLK、SS⁠、RR波形如图 3 前三行所示,画出QQ⁠。

电平触发SR触发器与电平触发D触发器波形 CLK S R Q(SR) D Q(D) ←干扰 蓝色底色 = CLK 高电平("门开着"):这段时间里输入怎么变,输出就怎么变

图 3:电平触发 SR 触发器(前四行)和电平触发 D 触发器(后两行)的例题波形,蓝底为 CLK 高电平(扫描线动画循环播放)

解:先把 CLK 的高电平段找出来(图中蓝底),只在这些段里查特性表,低电平段一律保持。

  1. 第 1 个 CLK 高电平:一开始S=1S=1⁠、R=0R=0⁠,置 1;接着S=R=0S=R=0⁠,保持 1;后来S=0S=0⁠、R=1R=1⁠,置 0。所以 CLK 回到 0 时Q=0Q=0⁠。
  2. 第 1 个低电平期间:SS出现了一个高电平,但门是关着的,不起作用,QQ保持 0。
  3. 第 2 个 CLK 高电平:本来S=R=0S=R=0应该保持,可SS上来了一个短短的干扰脉冲,门正开着,于是触发器被置成 1,而且一直保持到下一次被改写。——这就是"抗干扰能力差"的实例。
  4. 第 3 个 CLK 高电平:R=1R=1⁠,置 0。

答:QQ的变化见图 3 第 4 行(每个时隙都由 Python 逐拍模拟得到)。

4.8 易错点 ⚠️

  • ⚠️ CLK=0 期间输入怎么变都不管,画波形时先圈出 CLK 有效段再分析。
  • ⚠️ CLK=1 期间输入变几次,输出就可能变几次;不是只看 CLK 上升沿那一刻(那是边沿触发,下一讲)。
  • ⚠️ CLK 端有没有小圆圈要看清:有圆圈表示 CLK=0 时"门开"。

五、电平触发的 D 触发器(D 锁存器)

5.1 大白话:把两根线并成一根

SR 触发器有两个麻烦:要两根输入线,还得时刻提防S=R=1S=R=1⁠。很多时候我们只想"把一个数据DD存起来"。办法很简单:

S=D,R=D‾S=D,\qquad R=\overline{D}

也就是在SS和RR之间接一个反相器。这样SS⁠、RR永远一个 0 一个 1,约束条件自动满足。这就是电平触发的 D 触发器,也常叫 D 型锁存器(D 是 Data,数据)。

5.2 特性表与功能

CLK DD QQ Q∗Q^{*}
0 × 0 0
0 × 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1

一句话:CLK=1 时Q∗=DQ^{*}=D(输出紧跟输入),CLK=0 时保持。因为 CLK=1 时输出就像一块透明玻璃,DD是什么QQ就是什么,所以也叫透明 D 锁存器。它仍然是电平触发,所以也具有电平触发的动作特点。

在 CMOS 电路里,D 锁存器常用两个传输门(第 06 讲)加两个反相器做成:CLK=1 时输入传输门TG1TG_1导通、反馈传输门TG2TG_2截止,Q=DQ=D⁠;CLK=0 时反过来,两个反相器和TG2TG_2组成闭合的自锁环,把状态保存下来。

5.3 例题 4:画 D 锁存器的波形

题:电平触发 D 触发器,初态Q=0Q=0⁠,CLK 与DD波形如图 3 的 CLK 行和DD行,画出QQ⁠。

解:

  1. 第 1 个 CLK 高电平:DD依次是 1、0、1,QQ就跟着 1、0、1;CLK 落下时D=1D=1⁠,所以之后保持 1。
  2. 第 1 个低电平:DD变来变去,QQ不理,保持 1。
  3. 第 2 个高电平:DD先是 1 后是 0,QQ跟着先 1 后 0,落下时Q=0Q=0⁠,保持。
  4. 第 3 个高电平:DD先 1 后 0,QQ跟着变,最后保持 0。

答:见图 3 最后一行(Python 逐时隙模拟)。

5.4 易错点 ⚠️

  • ⚠️ D 锁存器 CLK=1 期间是"跟随",不是"只采一次"。
  • ⚠️ CLK 下降后保存的是下降前一瞬间的DD,不是上升沿那一刻的DD⁠。

六、锁存器和触发器到底差在哪

对比项 SR 锁存器 电平触发触发器
有没有时钟 CLK 没有 有
输入何时起作用 输入信号存在的全部时间,直接改变输出 只有 CLK 处于有效电平时
典型用途 最基本的存储单元、开关去抖、异步置位复位 多个存储单元在同一时钟下同步工作
约束 SDRD=0S_DR_D=0 SR=0SR=0(D 型自动满足)

教材里有一句话要注意:锁存器不受时钟控制,所以不属于按逻辑功能分类时所说的"SR 触发器"。这一点在第 13 讲(下)还会再提。


速记卡

知识点 一句话
存储单元的原理 两个门交叉反馈,有两个稳定状态,能存 1 位
状态约定 Q=1,Q‾=0Q=1,\overline{Q}=0为 1 态;Q=0,Q‾=1Q=0,\overline{Q}=1为 0 态;QQ现态,Q∗Q^{*}次态
或非 SR 锁存器 高有效:SDRDS_DR_D = 00 保持、10 置 1、01 置 0、11 禁止(⁠Q=Q‾=0Q=\overline{Q}=0⁠)
与非 SR 锁存器 低有效:SD‾ RD‾\overline{S_D}\,\overline{R_D} = 11 保持、01 置 1、10 置 0、00 禁止(⁠Q=Q‾=1Q=\overline{Q}=1⁠)
约束条件 SDRD=0S_DR_D=0⁠;原因:禁止输入时两输出不互补,且同时撤销后状态不定
画波形三步 任一输入跳变处切段 → 用上一段结果作现态查表 → 连线
禁止输入后的去向 两输入先后撤销:后撤销的那个说了算;同时撤销:不定
电平触发 SR CLK=1 时同 SR 锁存器(高有效),CLK=0 时保持;仍需SR=0SR=0
电平触发动作特点 CLK 有效期间输入的每次变化都可能使输出翻转,抗干扰差
异步置位/复位 SD‾\overline{S_D}⁠、RD‾\overline{R_D}不受 CLK 控制,正常工作时接高电平
D 锁存器 S=D,R=D‾S=D,R=\overline{D}⁠;CLK=1 时Q∗=DQ^{*}=D(透明),CLK=0 时保持

自测练习

1. 或非门 SR 锁存器在SD=RD=1S_D=R_D=1时,QQ⁠、Q‾\overline{Q}各为多少?与非门 SR 锁存器在SD‾=RD‾=0\overline{S_D}=\overline{R_D}=0时呢?

答案与提示

或非门:两个门都"有 1 出 0",Q=Q‾=0Q=\overline{Q}=0⁠。与非门:两个门都"有 0 出 1",Q=Q‾=1Q=\overline{Q}=1⁠。两种情况都不是定义的 0 态或 1 态,所以都属于禁止输入。

2. 与非门 SR 锁存器初态Q=1Q=1⁠,(SD‾,RD‾)(\overline{S_D},\overline{R_D})依次为(1,0)(1,0)⁠、(1,1)(1,1)⁠、(0,1)(0,1)⁠、(0,0)(0,0)⁠、(1,0)(1,0)⁠,写出每一步之后的QQ和Q‾\overline{Q}⁠。

答案与提示
步骤 SD‾ RD‾\overline{S_D}\,\overline{R_D} 动作 QQ Q‾\overline{Q}
1 10 置 0 0 1
2 11 保持 0 1
3 01 置 1 1 0
4 00 禁止输入 1 1
5 10 SD‾\overline{S_D}先回到 1,剩RD‾=0\overline{R_D}=0⁠,置 0 0 1

第 5 步两个输入不是同时撤销,所以结果确定(已用 Python 门级模拟核对)。

3. 或非门 SR 锁存器初态Q=0Q=0⁠,(SD,RD)(S_D,R_D)依次为(0,1)(0,1)⁠、(0,0)(0,0)⁠、(1,0)(1,0)⁠、(1,1)(1,1)⁠、(0,1)(0,1)⁠,写出每一步之后的QQ⁠、Q‾\overline{Q}⁠。

答案与提示

依次为(Q,Q‾)=(0,1)(Q,\overline{Q})=(0,1)⁠、(0,1)(0,1)⁠、(1,0)(1,0)⁠、(0,0)(0,0)⁠、(0,1)(0,1)⁠。第 4 步禁止输入,两输出都为 0;第 5 步SDS_D先回到 0、RDR_D仍为 1,相当于置 0,结果确定。

4. 电平触发 SR 触发器(CLK 高电平有效)在 CLK=0 期间SS端出现一个正脉冲,QQ会不会变?若这个脉冲出现在 CLK=1 期间呢?

答案与提示

CLK=0 时G3G_3⁠、G4G_4被封锁,输出恒为 1,锁存器保持,QQ不变。CLK=1 时门打开,S=1S=1(⁠R=0R=0⁠)会把触发器置 1,而且脉冲消失后仍保持 1——这正是电平触发抗干扰能力差的表现。

5. 电平触发 D 触发器初态Q=0Q=0⁠,按时间顺序 8 个区间里 (CLK, D) 依次为 (0,1)、(1,1)、(1,0)、(0,1)、(0,0)、(1,0)、(1,1)、(0,0),写出每个区间的QQ⁠。

答案与提示

CLK=1 的区间Q=DQ=D⁠,CLK=0 的区间保持:QQ依次为 0、1、0、0、0、0、1、1。(第 4、5 区间 CLK=0,保持第 3 区间的 0;第 8 区间保持第 7 区间的 1。Python 逐区间模拟一致。)

6. 为什么 D 锁存器不需要约束条件?

答案与提示

D 锁存器内部S=DS=D⁠、R=D‾R=\overline{D}⁠,SS和RR永远一个为 1、一个为 0,SR=D⋅D‾=0SR=D\cdot\overline{D}=0恒成立,约束条件自动满足。

7.(华师简答题风格)什么是电平触发方式?它有什么动作特点和缺点?

答案与提示

答题要点:① 只有 CLK 处于有效电平(如高电平)时,触发器才接受输入信号并按输入改变状态,CLK 无效时保持;② CLK 有效的全部时间里,输入的每一次变化都可能引起输出改变,CLK 变为无效后保存的是变为无效前一瞬间的状态;③ 缺点:CLK 有效期间输入多次变化(含干扰)会使输出多次翻转,抗干扰能力差。


下一讲预告

第 13 讲(中):用"两道门不同时开"的主从结构解决电平触发的毛病,学会脉冲触发和边沿触发的触发器,以及怎样只看时钟边沿画波形。

👉 点击进入下一讲:第13讲(中)|脉冲触发与边沿触发的触发器

评论

还没有评论。 来写第一条。

留下一条评论

选填,不会公开

纯文本,链接会自动识别。