3537 字
18 分钟
ECE2050-Chapter7
2025-08-24

第七章:时序逻辑设计#

第一部分:课程回顾与引入#

上周内容回顾(组合逻辑)#

在进入本章的学习之前,我们首先快速回顾一下上周关于组合逻辑电路的核心内容。组合逻辑电路的特点是,其任意时刻的输出仅仅取决于该时刻的输入信号,而与电路之前的状态无关。

我们上周学习了以下几种重要的组合逻辑电路:

  • 半加器 (Half Adders) 和全加器 (Full Adders):实现二进制数位相加的基本单元。
  • 并行二进制加法器 (Parallel Binary Adders):将多个全加器连接起来,实现多位二进制数的加法。
  • 行波进位 (Ripple Carry) 和超前进位 (Look-Ahead Carry) 加法器:两种处理多位加法中进位问题的电路设计,后者通过并行计算进位来提高运算速度。
  • 比较器 (Comparators):用于比较两个二进制数的大小。
  • 译码器 (Decoders):将n个输入信号转换为最多2^n个输出信号,每个输出对应一种输入组合。
  • 编码器 (Encoders):实现与译码器相反的功能,例如将十进制输入转换为BCD码(二进制编码的十进制数)。
  • 代码转换器 (Code Converters):用于不同编码系统之间的转换,如BCD码到二进制码的转换。
  • 多路复用器 (Multiplexers):也叫数据选择器,作用是从多个输入信号中选择一个作为输出。
  • 多路分用器 (Demultiplexers):将单个输入信号根据选择信号分配到多个输出线路之一。
  • 时序 (Timing):分析电路中信号传输的延迟问题。

本章引入:时序逻辑#

与组合逻辑不同,时序逻辑电路 (Sequential Logic) 的输出不仅取决于当前的输入,还与电路过去的状态有关。简单来说,时序逻辑电路具有记忆 (Memory) 功能。

核心定义:

  • 状态 (State):是指描述一个电路未来行为所需的所有必要信息。它记录了电路“过去”的经历。
  • 锁存器 (Latches) 和触发器 (Flip-flops):是存储一位(1 bit)状态信息的基本记忆元件。
  • 同步时序电路 (Synchronous sequential circuits):指电路中所有的触发器共享一个共同的时钟信号 (Clock),使得电路状态的改变在时钟信号的特定时刻同步发生。

时序电路的特点:

  1. 为事件赋予顺序:通过时钟信号控制,确保操作按预定的顺序发生。
  2. 拥有记忆功能:能够存储信息(状态)。
  3. 使用反馈 (Feedback):将输出信号的一部分重新引回输入端,这是实现记忆功能的关键。

第二部分:状态元件 (State Elements)#

状态元件是时序逻辑的核心,用于存储电路的状态。

  • 状态的定义:关于电路过去输入的所有信息,这些信息对于预测其未来行为是必需的。通常,一个基本状态元件只存储1比特的信息,即最后被“捕获”的值。

我们将依次学习以下几种基本的状态元件:

  • 双稳态电路 (Bistable circuit)
  • SR锁存器 (SR Latch)
  • D锁存器 (D Latch)
  • D触发器 (D Flip-flop)

1. 双稳态电路 (Bistable Circuit)#

双稳态电路是所有其他状态元件的基础构建模块。

  • 特点
    • 它是最基本的记忆单元。
    • 它有两个互补的输出:Q 和 Q’ (Q的反)。
    • 没有输入

这个电路由两个反相器(Inverter)首尾相连构成,形成一个反馈回路。这种结构被称为交叉耦合反相器 (Cross-coupled inverters)

  • 工作原理分析: 这个电路之所以能“记忆”,是因为它存在两个稳定状态。

    1. 状态一:Q = 0
      • 如果 Q = 0,那么这个信号进入第二个反相器(I2),使其输出 Q’ = 1。
      • Q’ = 1 的信号反馈给第一个反相器(I1),使其输出 Q = 0。
      • 这个状态是自洽和稳定的。
    2. 状态二:Q = 1
      • 如果 Q = 1,那么这个信号进入第二个反相器(I2),使其输出 Q’ = 0。
      • Q’ = 0 的信号反馈给第一个反相器(I1),使其输出 Q = 1。
      • 这个状态同样是自洽和稳定的。
  • 结论

    • 双稳态电路可以稳定地存储1比特的状态信息(0或1)。
    • 但它有一个致命的缺点:没有输入端口来控制或改变它所存储的状态。 我们无法从外部写入新的数据。

2. SR锁存器 (Set/Reset Latch)#

为了解决双稳态电路无法控制的问题,我们引入了SR锁存器。它通过增加两个输入(S和R)来控制电路的状态。通常由两个交叉耦合的或非门 (NOR gate)与非门 (NAND gate) 构成。这里我们以与非门为例。

Image of SR Latch (NAND)

  • 输入:S (Set, 置位) 和 R (Reset, 复位)。
  • 输出:Q 和 Q’。

工作模式分析 (基于与非门的SR锁存器,其输入为低电平有效,但PPT中展示的是或非门的逻辑符号和与非门的输入行为,我们按PPT的分析逻辑来):

  1. 置位 (Set) 状态: S = 1, R = 0

    • 当S=1时,无论另一个输入是什么,下面的与非门输出都将依赖于Q。
    • 当R=0时,上面的与非门输出Q必定为1。
    • 这个Q=1反馈到下面的与非门,S=1和Q=1输入,使得Q’=0。
    • 最终结果:Q = 1, Q’ = 0。电路被设置为1。
  2. 复位 (Reset) 状态: S = 0, R = 1

    • 当S=0时,下面的与非门输出Q’必定为1。
    • 这个Q’=1反馈到上面的与非门,R=1和Q’=1输入,使得Q=0。
    • 最终结果:Q = 0, Q’ = 1。电路被复位为0。
  3. 记忆 (Memory) 状态: S = 0, R = 0 (PPT中此状态为 S=0, R=0, 但基于或非门的分析,此为记忆状态)

    • 当S=0, R=0时,两个与非门的输出都依赖于另一个输入。
    • 此时,电路的输出将保持上一次的状态不变。
    • 如果之前是Q=1,它将继续保持Q=1。如果之前是Q=0,它将继续保持Q=0。这就是记忆功能。
  4. 无效 (Invalid) 状态: S = 1, R = 1

    • 当S=1, R=1时,上面的与非门(输入R=1, Q’=?)和下面的与非门(输入S=1, Q=?)的输出都为0。
    • Q = 0, Q’ = 0
    • 这个状态是无效的,因为它违背了Q和Q’必须互补的基本原则。更糟糕的是,如果S和R同时从1变回0,电路的状态将变得不确定,可能进入Q=1也可能进入Q=0,产生竞争冒险。因此,在实际应用中必须避免这种情况。

3. D锁存器 (D Latch)#

为了解决SR锁存器的无效状态问题,我们设计了D锁存器。它只有一个数据输入D (Data) 和一个控制输入 CLK (Clock),也常被称为使能端 (Enable)

  • 功能

    • 当 CLK = 1 时 (透明状态):锁存器是“透明的”(transparent),输入D的值会直接传递给输出Q。即 Q = D
    • 当 CLK = 0 时 (不透明状态):锁存器是“不透明的”(opaque),它会锁住并保持CLK从1变为0那一瞬间Q的值,无论之后D如何变化,Q都保持不变。
  • 内部电路: D锁存器可以在SR锁存器的基础上构建。通过在S和R输入前增加一些门电路,确保S和R永远不会同时为1。

    • S = CLK AND D
    • R = CLK AND (NOT D) 这样,只要CLK=1,S和R的值就由D决定,且永远互补,从而避免了无效状态。

4. D触发器 (D Flip-Flop)#

锁存器是电平敏感 (level-sensitive) 的,即只要CLK为高电平,输出就可能随输入变化。在复杂的电路中,这可能导致时序问题。为了更精确地控制状态改变的时刻,我们使用触发器 (Flip-Flop)

D触发器是边沿触发 (edge-triggered) 的,意味着它只在时钟信号的上升沿 (positive/rising edge)下降沿 (negative/falling edge) 的瞬间才“捕获”输入D的值,并更新输出Q。在时钟信号的其他时间里(高电平或低电平期间),即使D发生变化,Q也保持不变。

  • 输入:CLK (时钟), D (数据)。

  • 真值表 (以正边沿触发为例)

    • 当CLK出现从低到高的跳变(↑)时,Q的值更新为当前D的值。
    • 在任何其他时间,Q保持不变。
  • 内部电路 (主从结构): 一种常见的实现方式是使用两个背靠背的D锁存器(一个主L1,一个从L2)。

    • 时钟信号CLK直接控制从锁存器L2,而其反向信号控制主锁存器L1。
    • 当CLK=0时:L1透明,接收输入D;L2不透明,保持旧的输出Q。
    • 当CLK=1时:L1不透明,锁住D的值;L2透明,将L1锁住的值传递给最终输出Q。
    • 整个过程的效果是:只有在CLK从0变为1的上升沿那一瞬间,数据才从D被“采样”并最终传递到输出Q。
  • 锁存器 vs. 触发器 (重要区别)

    • D锁存器:在整个CLK高电平期间,Q都跟随D变化(像一扇打开的窗户)。
    • D触发器:仅在CLK的边沿(例如上升沿)瞬间,Q才更新为D的值(像相机快门按下的瞬间)。

5. J-K 触发器 (J-K Flip-Flop)#

J-K触发器是功能最全的触发器,可以看作是SR触发器的增强版,它解决了SR的无效状态问题,并增加了一个有用的新功能。

  • 输入:CLK (时钟), J, K。
  • 功能
    • J=0, K=0: 记忆状态。时钟边沿到来时,Q保持不变。
    • J=0, K=1: 复位状态。时钟边沿到来时,Q被置为0。
    • J=1, K=0: 置位状态。时钟边沿到来时,Q被置为1。
    • J=1, K=1: 翻转 (Toggle) 状态。时钟边沿到来时,Q的值会翻转(0变1,1变0)。这是J-K触发器最有用的特性,常用于构建计数器。

第三部分:触发器的变种与应用#

1. 寄存器 (Registers)#

单个触发器只能存储1比特信息。当我们需要存储多比特数据时,就可以将多个触发器并联起来,构成一个寄存器

一个 N-bit 寄存器由 N 个触发器组成,它们共享同一个时钟信号CLK。在每个时钟有效边沿,N比特的数据会同时被锁存到这N个触发器中。

2. 带使能端的触发器 (Enabled Flip-Flops)#

有时我们不希望触发器在每个时钟周期都更新数据。通过增加一个使能输入 (EN),我们可以控制数据是否被加载。

  • 功能
    • EN = 1: 触发器正常工作,在时钟边沿到来时,Q会更新为D的值。
    • EN = 0: 触发器被禁用,无论D和CLK如何变化,Q都保持其先前的值不变。

3. 带复位端的触发器 (Resettable Flip-Flops)#

在系统启动或需要恢复到初始状态时,复位功能非常重要。

  • 输入:CLK, D, Reset

  • 功能

    • Reset = 1: 输出Q被强制为0。
    • Reset = 0: 触发器作为普通的D触发器工作。
  • 复位的两种类型

    1. 同步复位 (Synchronous Reset):只有在时钟的有效边沿到来时,复位信号才起作用。复位操作与其他数据操作同步。
    2. 异步复位 (Asynchronous Reset):复位信号立即生效,无需等待时钟边沿。它通常具有比时钟更高的优先级。

4. 带置位端的触发器 (Settable Flip-Flops)#

与复位类似,置位功能可以将触发器强制设置为初始的1状态。

  • 输入:CLK, D, Set
  • 功能
    • Set = 1: 输出Q被强制为1。
    • Set = 0: 触发器作为普通的D触发器工作。 置位功能同样可以分为同步和异步两种。

第四部分:章节回顾与自测#

本章内容总结#

  • 状态元件:时序电路中用于存储信息的基本单元。
  • 双稳态电路:最基本的存储单元,但无法外部控制。
  • D锁存器:电平敏感,CLK=1时输出跟随输入。
  • D触发器:边沿触发,仅在时钟边沿更新状态。
  • J-K触发器:功能强大的触发器,具有保持、置位、复位和翻转功能。
  • 触发器的变种
    • 寄存器:存储多位数据。
    • 带使能端:控制数据是否更新。
    • 带复位/置位端:强制电路进入初始状态。

自测 quiz (判断对错)#

  1. 一个锁存器只有一个稳定状态。

    • 错误 (False)。锁存器是双稳态器件,有两个稳定状态(0和1)。
  2. 当Q输出为低电平时,锁存器被认为是处于复位(RESET)状态。

    • 正确 (True)。复位通常指将输出Q清零。
  3. 一个门控D锁存器不能被用来改变状态。

    • 错误 (False)。当门控(CLK/EN)信号有效时,可以通过改变D输入来改变其状态。
  4. 触发器和锁存器都是双稳态设备。

    • 正确 (True)。它们都是基本的1比特存储单元,都有两个稳定状态。
  5. 一个边沿触发的D触发器在其D输入变化时就会改变状态。

    • 错误 (False)。它仅在时钟的有效边沿到来时,才会根据当时的D输入改变状态,而不是D一变它就变。
  6. 对于边沿触发的触发器,时钟输入是必需的。

    • 正确 (True)。正是时钟的“边沿”定义了状态改变的精确时刻。
  7. 当J和K输入都为高电平时,一个边沿触发的J-K触发器会在每个时钟脉冲到来时改变状态。

    • 正确 (True)。这就是J-K触发器的“翻转”(Toggle)模式。
ECE2050-Chapter7
https://chr0mium.link/posts/ece2050-chapter7/
作者
Cr
发布于
2025-08-24
许可协议
CC BY-NC-SA 4.0