Appearance

第 4 章 时序逻辑电路

概述

概念

内容

  • 时序逻辑电路概述
  • 锁存器和触发器
  • 同步时序电路设计
  • 典型时序逻辑部件

第一讲 时序逻辑电路概述

组合逻辑电路和时序逻辑电路的区别

  • 组合逻辑:输出结果仅取决于当前的输入信号
  • 时序逻辑:输出结果不仅取决于当前时刻的输入值,而且取决于电路过去时刻的行为(当前状态)
    • 电路中有存储元件,用于记录电路过去时刻的行为(当前状态)。
    • 当电路输入值发生变化时,新的输入值可能使电路保持当前状态,也可能使电路壮发生改变,进入新的状态。

有限状态机

有限状态机:是一种刻画状态及状态转换的理论工具 通常用状态图描述有限状态机:

  • 状态:用包含状态符号的圆圈表示
  • 状态转换方向:用有向边表示,并在边上标注引起状态变换的输入信号值和相应的输出相应(若输出相应只与当前状态有关,则把输出相应标注在状态圆圈中) 用数字逻辑实现一个有限状态机,需要完成操作:
  • 设计一种电路能进行状态记忆
    • 可使用双稳态器件来记忆状态,如SR锁存器,D触发器等
    • 也可以使用电路的稳态来实现,如反馈时序逻辑电路等
  • 把状态机的输入、输出以及内部状态都转换成二进制表示
    • 这里的关键是状态的二进制编码
  • 设计出符合状态转换逻辑要求的状态记忆器件的激励函数和输出函数,并完成定时分析

时序逻辑电路的基本结构

状态记忆模块:由多个状态记忆单元构成 次态激励逻辑模块 F:激励函数(现态和外部输入的逻辑函数) 输出逻辑模块 G:输出函数(现态和外部输入的逻辑函数) Mealy型:输出依赖于当前状态和当前输入信号

Moore型:输出仅依赖于当前状态,和当前输入信号无关

根据状态转换方式的不同,可做出如下分类:

  • 同步时序逻辑电路:在统一的时钟信号控制下进行状态转换
  • 异步时序逻辑电路:没有统一的时钟信号来控制状态的改变

时序逻辑电路的定时

什么时候状态会发生变换?电平触发或边沿触发

  • 逻辑时序电路的状态多采取边沿触发方式
  • 边沿触发方式分为上升沿触发和下降沿触发两种类型
  • 边沿触发更加精准

第二讲 锁存器和触发器

锁存器和触发器次态方程
SR 锁存器{Q=S+R¯QSR1
D 锁存器/触发器Q=D
T 触发器Q=Q¯
JK 触发器Q=JQ¯+K¯Q

双稳态元件

串联两个反相器,则反相器输出状态不同,且保持稳定。 用于存储1位二进制数据,有两个互补的输出状态

  • 状态 1:置位(Set)状态,Q 为高电平,表示存储逻辑 1
  • 状态 0:复位(Reset)状态,Q 为低电平,表示存储逻辑 0 简单串联构建的双稳态元件,无法改变电路的状态。用1个或者多个输入信号能驱动双稳态元件进入特定的稳定状态,这样的双稳态元件才能成为实用的存储元件,这些输入信号被称为激励信号或激励输入。
  • 锁存器:通过激励输入的电平信号来控制存储元件的状态
    • 置位复位锁存器:具有置位和复位激励信号
      • 置位激励信号 Set 有效时,强制存储元件的输出Q为1
      • 复位激励信号 Reset 有效时,强制存储元件的输出Q为0
  • 触发器
    • 具有时钟控制信号
    • 通过时钟信号的边沿来触发存储元件改变状态

SR 锁存器

使用一对交叉耦合的或非门构成双稳态电路,也称为置位-重置(复位)锁存器。S是置位输入端,R是重置的输出端。 从输入驱动信号开始,到输出到稳定为止有一定的延迟,这个延迟成为触发延迟或锁存延迟。(在SR锁存器中,触发延迟为两级门延迟)

D 锁存器

数据输入端D和控制端C

  • C = 0:输出状态保持不变
  • C = 1:输出随输入状态而改变

D 触发器

由一对主、从锁存器,可以构成一个D触发器

只有在上升沿改变状态,其他时刻保持不变

  • 在 L 时,主写入,从锁定
  • 从 L 到 H(上升沿),主锁定,从开始写入
  • 在 H 时,主锁定,从写入 时间参数:
  • 锁存延迟 tCQ(latch prop),分为 tpLH(CQ)tpHL(CQ)
  • 建立时间 tsetup:输入信号 D 在时钟边沿到达前所需稳定的时间
  • 保持时间 thold:输入信号 D 在时钟边沿到达后需继续稳定的时间 次态方程:Q=D

扩展的 D 触发器

带使能端的 D 触发器

加入使能控制端 EN,来控制是否在时钟信号触发边沿进行写入。 通过 2 路选择器来实现 D 为外部输入或反接的 Q

具有预置和清零(复位)端的 D 触发器

在电路工作的最开始进行置位或复位(上电时获得稳定的初始值)。 预置端(PR)和清零端(CLR)都是低电平有效信号。 预置端和清零端有同步、异步之分,同步方式下只能在 CLK 的触发边沿进行预置和清零,异步方式下与时钟信号无关。

T 触发器

在每个时钟脉冲的触发边沿都会改变状态。 使用一个 T 触发器,输出频率是时钟信号的频率的一半。 可用于实现计数器、分频器等。

JK 触发器

次态方程:Q=JQ¯+K¯Q

  • 当两个输入端不全为 1 时,效果跟 SR 锁存器相同。此时 J 为置位端,K 为复位端。
  • 当两个输入端均为 1 时,发生跳转。

第三讲 同步时序逻辑设计

时序逻辑电路分析

  1. 写出激励方程
  2. 写出转移方程(次态方程)
  3. 写出输出方程
  4. 得到状态转移表
  5. 画出状态转移图
  6. 画出时序图

同步时序逻辑设计步骤

  1. 需求分析
  2. 状态图/表
    1. 设定电路初始状态
    2. 从初始状态开始,分析每一个状态在不同输入下的状态转移情况和输出取值
    3. 如果某状态下出现的输出响应(次态和输出)不能被已有状态所表示,则产生新的状态
    4. 重复 2、3 两步,直到不产生新的状态为止
    5. 检测互斥性和完备性
  3. 状态化简
  4. 状态编码
    • 通常在具体设计时采用相邻法寻求次优编码方案
      • 准则 1:若两个状态的次态相同,则其对应的编码应尽量相邻
      • 准则 2:同一个现态的各个次态其编码应尽量相邻
      • 准则 3:若两个现态的输出相同,则它们的编码应当尽量相邻
  5. 电路设计
    • 画出状态转移表:包含输入 X,现态 Y,次态 Y,输出 Z
  6. 电路分析
    • 未用状态分析
      • 电路加电后进入未用状态,且在未用状态前形成循环转换而无法进入工作状态,则称其为“挂起”现象。
      • 若时序逻辑电路中的触发器有预置功能,则可以通过预置处理,使电路进入正常的初始工作状态,避免“挂起”
      • 可利用未用状态的无关项进行化简。但需对未用状态进行分析,以判定电路进入未用状态时能否在有限个时钟周期后进入到工作状态。若能,且没有错误输出,则称电路为具有“自启动”能力;若不能,则需调整电路设计
    • 电路定时分析
      • 需要考虑的时间:
        • 组合电路传播延迟 tcomb
        • 建立时间 tsetup 和保持时间 thold
        • 触发器传播延迟 tffpd
        • 周期性时钟信号 tclk
      • 建立时间容限:tclktffpd(max)tcomb(max)tsetup
        • >0 才能正常工作,否则触发器无法正常工作
      • 保持时间容限:tffpd(min)+tcomb(min)thold
        • >0 才能正常工作,否则触发器无法稳定

难点:同步时序逻辑电路 vs 组合逻辑电路

同步时序逻辑电路的特点

  • 存在反馈回路(电路构成循环)
  • 分析电路时需要找到断点,将循环断开 现态 Q 和次态 Q
  • 注意时钟信号 Clk 的存在

第四讲 典型时序逻辑部件设计

计数器

计数器是一种对外部激励信号进行总数统计的时序逻辑元件:

  • 一般从0开始计数,在达到最大计数值时输出一次计数完成信号,并重新开始计数
  • 最大计数值为计数器的模 计数器的分类:
  • 按时钟:同步、异步
  • 按计数方式:加法、减法、可逆
  • 按编码方式:二进制、十进制 BCD 码、循环码
  • 按进位方式:行波(串行)进位、并行进位

异步行波加法计数器

利用 T 触发器实现,激励输入像波浪一样由低位向高位传递,每个时钟周期传送一次。

问题:当位数变多的时候,电路延迟会非常大(信号逐级下传,延时最大为 n×tTQ

同步并行加法计数器

所有触发器共用同一个时钟信号,在时钟信号到达边沿时,所有触发器的输出同时发生变化。

由与门连接使能端和低位的所有状态位,实现进位。 对比异步行波加法计数器,同步并行加法计数器的延迟只有多路与门 +tTQ 的延迟,代价是增加了与门的功耗。

功耗、成本速度
串行异步行波计数器
并行同步并行计数器

异步行波减法计数器

通过 Clear 信号来强制赋值为 0000

从 1 变 0 是一个下降沿,不会触发后一级触发器。而从 0 到 1 是一个上升沿,会让下一级的触发器取反。

寄存器和寄存器堆

寄存器

  • 寄存器是用来暂存信息的逻辑部件
  • 寄存器可直接由若干个触发器组成
  • 寄存器通过三态门和总线互联

寄存器堆(GPRs)

  • 寄存器堆(Register File):CPU内部用于暂存指令执行过程中的中间数据,也称通用寄存器组(General Purpose Register set,GPRs)
  • 由许多寄存器组成,每个寄存器有一个编号,CPU可对指定编号的寄存器进行读写。寄存器堆中共有 2k 个寄存器,每个寄存器位数为 n
  • RA 和 RB 分别是读口 1 和读口 2 的寄存器编号,RW 是写口的寄存器编号
  • 读操作属于组合逻辑操作; 写操作属于时序逻辑操作,需要时钟信号 Clk 和写使能信号 WE 的控制
  • 内部电路结构:
    • 读取操作:由 RA 和 RB 分别选择对应寄存器中的内容送至 busA 和 busB,是一个组合逻辑电路,主要由多路选择器实现。
    • 写入操作:通过译码器和寄存器实现,是一个时序逻辑电路。需要确保在时钟信号 Clk 到来前,地址 RW、数据 busW 和写使能信号 WE 都已经稳定在 setup time 以上即可。

位移寄存器

右移寄存器

X 是一段 01 序列,与时钟信号同步更新,每次遇到时钟信号,就向后传递一位,最后的一位的传递会被舍去,从而实现了右移的操作。

4 位通用移位寄存器

桶形移位器

是组合逻辑电路,一次可以循环移动多位,可采用多路选择器实现