学习目标
- 认识 D 锁存器是一种单数据输入存储元件。
- 理解 D 锁存器如何消除 SR 锁存器的非法输入状态。
- 区分透明模式(enable = 1,Q 跟随 D)与保持模式(enable = 0,Q 保持不变)。
- 建立 D 锁存器结构与其底层 SR 锁存器之间的联系。
- 识别 D 锁存器是构成寄存器的基本单元。
工作原理
该电路包含两个输入开关、一个封装式 D 锁存器和两个输出指示灯。Data 开关驱动 D,Enable(使能) 开关驱动锁存器的电平敏感使能输入。两个指示灯分别显示 Q 和 ¬Q。
Enable = 1 时,锁存器处于透明模式:经过传播延迟后,Q 跟随 D。Enable = 0 时,锁存器处于保持模式:D 的变化不会改变 Q,先前捕获的位继续存储。其特征方程为 Qnext = Enable·D + ¬Enable·Q。
在 Enable 有效期间,常规门控 D 锁存器根据 D 和 ¬D 生成互斥的置位与复位控制信号,从而避免基本高电平有效 SR 锁存器中置位与复位同时有效的情况。封装式元件呈现所得行为,而不显示内部门电路。
由于锁存器为电平敏感器件,它可能在整个使能区间内响应 D 的每次跳变。边沿触发 D 触发器通过附加时序结构,使采样仅发生在时钟边沿。锁存器或触发器阵列可构成多位寄存器。
真值表
Qprev 是求值前存储的状态。Enable=0 时,无论 D 为何值都保持 Qprev;Enable=1 时,Qnext 等于 D。
| 输入 | 输出 | ||||
|---|---|---|---|---|---|
| E | D | Qprev | Q | ¬Q | |
| 0 | 0 | 0 | 0 | 1 | 保持 0;Enable 为低电平时忽略同为低电平的 D。 |
| 0 | 0 | 1 | 1 | 0 | 保持 1;Enable 为低电平时忽略处于低电平的 D。 |
| 0 | 1 | 0 | 0 | 1 | 保持 0;Enable 为低电平时忽略处于高电平的 D。 |
| 0 | 1 | 1 | 1 | 0 | 保持 1;Enable 为低电平时忽略处于高电平的 D。 |
| 1 | 0 | 0 | 0 | 1 | 透明模式捕获 D=0,并将 Q 清零。 |
| 1 | 0 | 1 | 0 | 1 | 透明模式下,由于 D=0,Q 保持低电平。 |
| 1 | 1 | 0 | 1 | 0 | 透明模式捕获 D=1,并将 Q 置 1。 |
| 1 | 1 | 1 | 1 | 0 | 透明模式下,由于 D=1,Q 保持高电平。 |
布尔表达式
Enable 为高电平时,D 项决定次态;Enable 为低电平时,反馈项保持当前 Q 值。
逐步尝试
在上方嵌入式电路中设置输入,然后阅读预期结果并验证。
- 1D = 0Enable = 1预期:
Q = 0,¬Q = 1观察结果: Enable 为高电平、D 为低电平时,透明锁存器将 Q 清零并使 ¬Q 有效。 - 2D = 1Enable = 1预期:
Q = 1,¬Q = 0观察结果: 保持 Enable 为高电平并将 D 置为高电平,Q 跟随 D 变为高电平。 - 3D = 0Enable = 0预期:
Q 保持为 1,¬Q 保持为 0观察结果: 将 Enable 置为低电平,再使 D 返回低电平。Q 仍保持高电平,体现存储状态而非缓冲器行为。 - 4D = 0Enable = 1预期:
Q = 0,¬Q = 1观察结果: D 为低电平时重新使 Enable 有效,锁存器再次进入透明模式并将 Q 清零。
所用元件
实际应用
译码器输出锁存。 地址译码器有时会锁存输出,避免带毛刺的地址跳变传播为多个片选脉冲。
处理器流水级。 早期流水线 CPU(中央处理器) 使用级间 D 锁存器保持下一时钟阶段所需的值;现代 CPU 更常使用边沿触发器。
配置寄存器存储。 初始化期间设置的配置位可使用 D 锁存器,并以一次性使能脉冲固定其值。
外设数据保持。 若外设输出总线每周期读取一次,可将总线选通信号作为使能,使用 D 锁存器保持数据。
教学过渡。 D 锁存器内部结构较为简单,通常先于 D 触发器讲授;理解透明模式与保持模式后,即可进一步理解边沿触发。
常见问题
Enable 是否等同于时钟边沿?
Enable 是电平敏感的门控信号,而非边沿触发时钟。Enable 为高电平期间,Q 可在整个使能区间内跟随 D 的变化;Enable 变为低电平后,锁存器保持最后捕获的值。边沿触发 D 触发器则仅在时钟跳变时采样。
该结构如何消除 SR 锁存器的非法输入状态?
D 输入及其反相信号 (D, ¬D) 构成底层的 S 与 R。由于 S = D、R = ¬D,两者始终互补,不会同时为高电平。因此,从结构上无法到达非法输入状态 S=R=1。
D 锁存器与缓冲器在实际行为上有何区别?
Enable 为高电平时,两者都会在传播延迟后传递 D。Enable 为低电平时,该锁存器保留先前的 Q 值,而缓冲器仍会继续跟随输入。能否保持状态是二者的本质区别。
为什么同时提供 Q 和 ¬Q 输出?
这是底层 SR 锁存器对称结构的结果。许多电路需要两种极性的信号,可由此省去外部反相器。教材中也常将 ¬Q 称为 Q-bar 或 Q-prime。
如何将该结构扩展为多位存储?
可并行复制锁存器。N 位寄存器由 N 个 D 锁存器并联构成,所有锁存器共用同一使能信号,且各自独立存储一位。这是构成 CPU 寄存器堆的基本结构之一。