Download presentation
Presentation is loading. Please wait.
Published byHadi Adi Kusumo Modified 5年之前
1
第 6 章 时序电路的分析与设计 6.1 时序电路概述 6.2 同步时序逻辑电路的分析 6.3 异步时序电路的分析方法
第 6 章 时序电路的分析与设计 6.1 时序电路概述 6.2 同步时序逻辑电路的分析 6.3 异步时序电路的分析方法 6.4 同步时序电路的设计方法
2
6.1 时序电路概述 6.1.1 时序电路的特点 逻辑电路分为两类:一类是组合逻辑电路,另一类是时序逻辑电路。在组合逻辑电路中,任一时刻的输出仅与该时刻输入变量的取值有关,而与输入变量的历史情况无关;在时序逻辑电路中,任一时刻的输出不仅与该时刻输入变量的取值有关,而且与电路的原状态,即与过去的输入情况有关。
3
与组合逻辑电路相比,时序逻辑电路有两个特点:第一,时序逻辑电路包含组合逻辑电路和存储电路两部分,存储电路具有记忆功能,通常由触发器组成;第二,存储电路的状态反馈到组合逻辑电路的输入端,与外部输入信号共同决定组合逻辑电路的输出。组合逻辑电路的输出除包含外部输出外,还包含连接到存储电路的内部输出,它将控制存储电路状态的转移。 图 6-1 时序逻辑电路的结构框图
4
在图6-1时序逻辑电路的结构框图中,X(x1, x2, …, xn)为外部输入信号; Q(q1, q2, …, qj)为存储电路的状态输出, 也是组合逻辑电路的内部输入;Z(z1, z2, …, zm)为外部输出信号;Y(y1, y2, …, yk)为存储电路的激励信号,也是组合逻辑电路的内部输出。在存储电路中,每一位输出qi(i = 1, 2, …,j )称为一个状态变量, j个状态变量可以组成2j个不同的内部状态。时序逻辑电路对于输入变量历史情况的记忆就是反映在状态变量的不同取值上,即不同的内部状态代表不同的输入变量的历史情况。
5
… … …
6
其中,第一个方程组称为输出方程,第二个方程组称为驱动方程(或激励方程), 第三个方程组称为状态方程。方程中的上标n和n+1表示相邻的两个离散时间(或称相邻的两个节拍),如 表示存储电路中每个触发器的当前状态(也称现状态或原状态), 表示存储电路中每个触发器的新状态(也称下一状态或次状态)。 以上三个方程组可写成如下形式:
7
从以上关系式不难看出:时序逻辑电路某时刻的输出Zn决定于该时刻的外部输入Xn和内部状态Qn;而时序逻辑电路的下一状态Qn+1同样决定于Xn和Qn。时序逻辑电路的工作过程实质上就是在不同的输入条件下,内部状态不断更新的过程。 以上三个方程人们习惯写成如下形式:
8
6.1.2 时序电路的分类 图 6-2 同步二进制加法计数器
9
图 6-3 异步二进制加法计数器
10
时序电路按输出信号的特点又可以分为米里(Mealy)型和摩尔(Moore)型时序电路两种。Mealy型时序电路的输出函数为 Z= F(X,Q),即某时刻的输出决定于该时刻的外部输入X和内部状态Q,如图6-4所示的Mealy型串行加法器电路。在该电路中,ai、bi为串行数据输入,si为串行数据输出,si=ai+bi+ci-1,或si= ai+bi+Q。Moore型时序电路的输出函数为 Z = F(Q),如图6-5所示的Moore型串行加法器电路。在该电路中串行数据输出si=Q1。Mealy型串行加法器电路和Moore型串行加法器电路具有相同的逻辑功能,但Moore型串行加法器电路的输出比Mealy型串行加法器的输出迟一个节拍。
11
图 6-4 Mealy型串行加法器电路
12
图 6-5 Moore型串行加法器电路
13
时序电路的功能描述 1. 逻辑方程式
14
2. 状态转移表 状态转移表也称状态迁移表或状态表,是用列表的方式来描述时序逻辑电路输出Z、次态Qn+1和外部输入X、现态Q之间的逻辑关系。 表 6-1 Mealy型时序电路状态表
15
表 6-2 Moore型时序电路状态表
16
表 6-3 Moore 型电路简化状态表
17
3. 状态图 图 6-6 时序逻辑电路状态图
18
4. 时序图 时序图即为时序电路的工作波形图,它以波形的形式描述时序电路内部状态Q、外部输出Z随输入信号X变化的规律, 其具体画法将在下面讨论。 以上几种同步时序逻辑电路功能描述的方法,各有特点,但实质相同,且可以相互转换,它们都是同步时序逻辑电路分析和设计的主要工具。
19
6.2 同步时序逻辑电路的分析 6.2.1 同步时序逻辑电路的一般分析方法
6.2 同步时序逻辑电路的分析 6.2.1 同步时序逻辑电路的一般分析方法 ① 根据逻辑图求出时序电路的输出方程和各触发器的激励方程。 ② 根据已求出的激励方程和所用触发器的特征方程, 获得时序电路的状态方程。 ③ 根据时序电路的状态方程和输出方程, 建立状态转移表, 进而画出状态图和波形图。 ④ 分析电路的逻辑功能。
20
【 例 6-1 】分析图6-7 所示同步时序电路的逻辑功能。
图 6-7 例 6-1 时序逻辑电路
21
解: ① 求输出方程和激励方程。 ② 求状态方程。
22
③ 列状态表, 画状态图。 表 6-4 例 6-1 时序电路状态表
23
图 6-8 例 6-1 次态与输出卡诺图
24
图 6-9 例 6-1 状态图
25
④ 画波形图。 设Q1Q0的初始状态为00,输入变量X的波形如图6-10第二行所示。根据表6-4状态表即可画出波形图。例如第一个CP来到前X=0,Q1Q0=00,从表中查出 , 因此在画波形时应在第一个CP来到后使Q1Q0进入01。以此类推,即可以画出Q1Q0的整体波形如图6-10第三、 四行所示。外部输出 ,它是组合电路的即时输出,只要外部输入或内部状态一变化,外部输出Z就会跟着改变,画波形时要特别注意。
26
图 6-10 例 6-1 时序图
27
⑤ 逻辑功能分析。 从以上分析可以看出,当外部输入X=0时,状态转移按00→01→10→11→00→…规律变化,实现模4加法计数器的功能;当X=1时,状态转移按00→11→10→01→00→…规律变化,实现模4减法计数器的功能。所以,该电路是一个同步模4可逆计数器。X为加/减控制信号,Z为借位输出。
28
【 例 6-2 】 分析图6-11 所示同步时序电路的逻辑功能。
图 6-11 例 6-2 时序逻辑电路
29
解: ① 求输出方程和激励方程。 D2=Q1, D1=Q0, Z2=Q2, Z1=Q1, Z0=Q0 ② 求状态方程。
30
③ 列状态表, 画状态图。 表 6-5 例 6-2 时序逻辑电路状态表
31
图 6-12 例 6-2 状态图
32
④ 画波形图。 图 6-13 例 6-2 波形图
33
⑤ 逻辑功能分析。 从以上分析可以看出,该电路在CP脉冲作用下,把宽度为T的脉冲以三次分配给Q0、 Q1和Q2各端,因此,该电路是一个脉冲分配器。由状态图和波形图可以看出,该电路每经过三个时钟周期循环一次,并且该电路具有自启动能力。
34
6.2.2 典型时序逻辑电路的分析 1. 寄存器和移位寄存器 1) 寄存器
寄存器用于寄存一组二进制代码,它被广泛用于各类数字系统和数字计算机中。因为一个触发器能存储一位二进制代码, 所以用n个触发器组成的寄存器能存储一组n位二进制代码。对寄存器中使用的触发器只要求具有置1、置0的功能即可, 因而无论是用基本RS结构的触发器,还是用数据锁存器、主从结构或边沿触发结构的触发器,都能组成寄存器。
35
(1) 二拍接收四位数据寄存器 图6-14是由基本RS触发器构成的二拍接收四位数据寄存器。当清0端为逻辑1,接收端为逻辑0时,寄存器保持原状态。 当需将四位二进制数据存入数据寄存器时,需二拍完成:第一拍,发清0信号(一个负向脉冲),使寄存器状态为0(Q3Q2Q1Q0=0000);第二拍,将要保存的数据D3D2D1D0送数据输入端(如D3D2D1D0=1101),再送接收信号(一个正向脉冲),要保存的数据将被保存在数据寄存器中(Q3Q2Q1Q0=1101)。从该数据寄存器的输出端Q3Q2Q1Q0可获得被保存的数据。
36
图 6-14 二拍接收四位数据寄存器
37
(2) 单拍接收四位数据寄存器 图6-15是由数据锁存器构成的单拍接收四位数据寄存器。 当接收端为逻辑0时,寄存器保持原状态;当需将四位二进制数据存入数据寄存器时,单拍即能完成——将要保存的数据D3D2D1D0送数据输入端(如D3D2D1D0=1101),再送接收信号(一个正向脉冲),要保存的数据将被保存在数据寄存器中(Q3Q2Q1Q0=1101)。同样从数据寄存器的输出端Q3Q2Q1Q0可获得被保存的数据。 对于功能完善的触发器,如主从JK触发器、维持—阻塞式D触发器等,都可构成这类数据寄存器。
38
图 6-15 单拍接收四位数据寄存器
39
2) 移位寄存器 对于串行数据,则采用移位寄存器输入并加以保存。移位寄存器的功能和电路形式较多,按移位方向来分有左向移位寄存器、右向移位寄存器和双向移位寄存器;按接收数据的方式可分串行输入和并行输入;按输出方式可分串行输出和并行输出。
40
(1) 单向移位寄存器 图6-16所示电路是由维持—阻塞式D触发器组成的四位单向移位(右移)寄存器。在该电路中,Ri为外部串行数据输入(或称右移输入),Ro为外部输出(或称移位输出),输出端Q3Q2Q1Q0为外部并行输出,CP为时钟脉冲输入端(或称移位脉冲输入端,也称位同步脉冲输入端), 清0端信号将使寄存器清0( Q3Q2Q1Q0 =0000)。 在该电路中, 各触发器的激励方程为 或
41
图 6-16 四位单向移位(右移)寄存器
42
设输入Ri=1011,则清0后在移位脉冲CP的作用下,移位寄存器中数码移动的情况如表6-6所示,各触发器输出端Q3Q2Q1Q0的波形如图6-17所示。
表 6-6 移存器数码移动状况
43
图 6-17 移位寄存器工作波形图
44
(2) 双向移位寄存器 图 6-18 四位双向移位寄存器
45
图6-18所示电路是由维持—阻塞式D触发器组成的四位双向移位寄存器。在该电路中,Q5为右移串行输入,Q0为左移串行输入,Q1为右移串行输出,Q4为左移串行输出,输出端Q4Q3Q2Q1为并行输出端,CP为移位脉冲输入端,D4D3D2D1为并行数据输入端,M端为工作方式控制端,清0端信号将使寄存器清0( Q4Q3Q2Q1 =0000),接收信号将并行输入数据D4D3D2D1写入到移位寄存器中。 本电路采用二拍接收并行数据的工作方式。
46
由逻辑电路图可以写出组合电路的输出函数和激励函数。 对于由k级触发器构成的移位寄存器来讲,其激励函数和次态方程分别为
当M=1时, 电路实现右移功能。 当M=0时, 电路实现左移功能。
47
2. 计数器 计数器的主要功能是累计输入脉冲的个数。它不仅可以用来计数、 分频, 还可以对系统进行定时、顺序控制等, 是数字系统中应用最广泛的时序逻辑部件之一。计数器是一个周期性的时序电路,其状态图有一个闭合环,闭合环循环一次所需要的时钟脉冲的个数称为计数器的模值M。由n个触发器构成的计数器,其模值M一般应满足2n-1<M≤2n。 计数器有许多不同的类型。按时钟控制方式来分,有异步、同步两大类; 按计数过程中数值的增减来分,有加法、减法、可逆计数器三类;按模值来分,有二进制、十进值和任意进制计数器。
48
表 6-7 计数器分类
49
1) 同步二进制加法计数器 图 6-19 同步二进制加法计数器
50
电路的输出函数和控制函数为 将控制函数代入T触发器的特征方程 , 可得状态转移函数:
51
表 6-8 同步二进制加法计数器状态表
52
图 6-20 同步二进制加法计数器状态图
53
图 6-21 同步二进制加法计数器波形图
54
2) 同步十进制可逆计数器(加减控制式) 图 6-22 同步十进制可逆计数器
55
由逻辑电路可以写出其输出函数和激励函数为
56
由T触发器的特征方程(Qn+1=TQ)和其激励函数可求得各触发器的状态方程。但由T触发器的特征表已知:当T=1时,触发器发生状态转换;当T=0时,触发器保持原状态, 因此,根据Ti及Qi的取值可直接求得 。由此,可得到该电路有效状态的转移情况如表6-9所示。根据表6-9可画出有效状态转移图如图6-23所示。当M=1、初始状态为全0时的工作波形如图6-24所示。该电路具有多余状态,对多余状态的检查如表6-10所示,不难看出该电路具有自启动特性。
57
表 6-9 同步十进制可逆计数器状态表一(有效状态)
58
续表
59
图 6-23 同步十进制可逆计数器状态图
60
图 6-24 可逆计数器M=1时的波形图
61
表 6-10 同步十进制可逆计数器状态表二(无效状态)
62
(a) 逻辑电路图; (b) 状态图; (c) 工作波形图
3. 脉冲分配器 图 6-25 脉冲分配器 (a) 逻辑电路图; (b) 状态图; (c) 工作波形图
63
由电路可写出输出函数和激励函数为 结合JK触发器的特征方程 , 可得新状态方程:
64
由输出函数和新状态方程可得状态转换表如表6-11,状态转换图和工作波形分别如图6-25(b)、(c)所示。由工作波形图可清楚地看到,电路在时钟脉冲的作用下,按一定顺序轮流地输出脉冲信号。由于电路能在时钟脉冲作用下将脉冲信号按顺序分配到各个输出端,故称其为脉冲分配器。
65
表 6-11 脉冲分配器状态表
66
4. 序列信号发生器 图6-26(a) 所示为序列信号发生器的逻辑电路图。由图可见,该电路由三个D触发器构成的移位寄存器和与非门构成的组合电路组成。由电路可写出其输出函数和激励函数分别为 结合D触发器的特征方程Qn+1=D,可得新状态方程:
67
(a) 逻辑电路图; (b) 状态图; (c) 工作波形图
图 6-26 序列信号发生器 (a) 逻辑电路图; (b) 状态图; (c) 工作波形图
68
表 6-12 序列信号发生器的状态表
69
6.3 异步时序电路的分析方法 图 6-27 异步十进制加法计数器
70
由电路可写出其输出函数和激励函数为 结合JK触发器的特征方程 ,可得新状态方程:
71
式中的CPi表示时钟信号,它不是一个逻辑变量。对下降沿动作的触发器而言,CPi=1仅表示输入端有下降沿到达;对上升沿动作的触发器而言,CPi=1仅表示输入端有上升沿到达; CPi=0表示没有时钟信号有效沿到达,触发器保持原状态不变。该电路的状态表(表6-13)须逐步完成,因为该状态表是针对CP0而列,CP0仅加到FF0。因此,首先求出FF0的状态转换关系,从而就获得了CP1(CP3)的变化情况;再求出FF1和FF3的状态转换关系,也获得了CP2的变化情况;最后求出FF2的状态转换关系。
72
例如,当Q3Q2Q1Q0=0111时,CP0到达(下降沿), CP1(CP3)产生下降沿,可求得 , ,此时CP2也产生下降沿,因而可求出 。这样,当Q3Q2Q1Q0=0111,CP0到达后,新状态为Q3Q2Q1Q0=1000。由状态表6-13可画出脉冲异步十进制加法计数器的状态图如图6-28所示。由状态图可以看出,该电路是一个十进制加法计数器,并具有自启动能力。图6-29为该电路的工作波形图,图中标出了第八个时钟脉冲到达后,各触发器的状态转换过程。
74
图 6-28 异步十进制加法计数器状态图
75
图 6-29 脉冲异步十进制加法计数器工作波形图
76
6.4 同步时序电路的设计方法 图 6-30 同步时序电路设计过程
77
6.4.1 建立原始状态图和状态表 根据设计命题要求初步画出的状态图和状态表,称为原始状态图和原始状态表,它们可能包含多余状态。从文字描述的命题到原始状态图的建立往往没有明显的规律可循,因此,在时序电路设计中这是较关键的一步。画原始状态图、列原始状态表一般按下列步骤进行: ① 分析题意, 确定输入、 输出变量。 ② 设置状态。 首先确定有多少种信息需要记忆, 然后对每一种需要记忆的信息设置一个状态并用字母表示。 ③ 确定状态之间的转换关系, 画出原始状态图, 列出原始状态表。
78
【例6-3】 建立“111”序列检测器的原始状态图和原始状态表。
该电路的功能是当连续输入三个或三个以上“1”时, 电路输出为1,否则输出为0。 解: ① 确定输入变量和输出变量。 设该电路的输入变量为X, 代表输入串行序列,输出变量为Z,表示检测结果。根据设计命题的要求,可分析出输入X和输出Z之间的关系为 X Z
79
② 设置状态。 状态是指需要记忆的信息或事件,由于状态编码还没有确定,所以它用字母或符号来表示。分析题意可知,该电路必须记住以下几件事:收到了一个1;连续收到了两个1;连续收到了三个1。因此,加上初始状态,共需四个状态,并规定如下: S0: 初始状态, 表示电路还没有收到一个有效的1。 S1: 表示电路收到了一个1的状态。 S2: 表示电路收到了连续两个1的状态。 S3: 表示电路收到了连续三个1的状态。
80
③ 画状态图,列状态表。 以每一个状态作为现态,分析在各种输入条件下电路应转向的新状态和输出。该电路有一个输入变量X,因此,每个状态都有两条转移线,画状态图时应先从初始状态S0出发 当电路处于S0状态时,若输入X=0,则输出Z=0,电路保持S0状态不变,表示还未收到过1;若输入X=1,电路应记住输入了一个1,因此,电路应转向新状态S1,输出Z=0。当电路处于S1状态时,若输入X=0,则输出Z=0,电路回到S0状态重新开始;若输入X=1,电路应记住连续输入了两个1因此,电路应转向新状态S2,输出Z=0。以此类推,可以画出完整的状态图如图6-31所示,并可作状态表如表6-14所示。
81
图 6-31 例 6-3Mealy型原始状态图
82
表 例6-3Mealy型原始状态表
83
当电路处于S0状态时,表示电路还没有收到一个有效的1,则输出Z=0;若输入X=0,则电路保持S0状态不变;若输入X=1, 电路应记住输入了一个1, 电路应转向新状态S1。当电路处于S1状态时,表示电路收到了一个1,则输出Z=0;若输入X=0,电路回到S0状态重新开始;若输入X=1,电路应记住连续输入了两个1,因此,电路应转向新状态S2。当电路处于S2状态时, 表示电路收到了两个1,则输出Z=0;若输入X=0,电路回到S0状态重新开始;若输入X=1,电路应记住连续输入了三个1, 因此,电路应转向新状态S3。当电路处于S3状态时,表示电路收到了三个1,则输出Z=1;若输入X=0,电路回到S0状态重新开始;若输入X=1,根据题意,电路可保持原状态S3不变即可。 这样,就可以得到Moore型结构的原始状态图如图6-32所示, 并可作状态表如表6-15所示。
84
表 6-15 例 6-3 Moore型原始状态表
85
图 例 6-3Moore型原始状态图
86
【例 6-4】 建立一个余3码误码检测器的原始状态图和原始状态表。
余3码高位在前、低位在后串行地加到检测器的输入端。电路每接收一组代码,即在收到第四位代码时判断一下。若是错误代码,则输出为1,否则输出为0,电路又回到初始状态并开始接收下一组代码。 解: ① 确定输入变量和输出变量。 输入变量X为串行输入余3码, 高位在前, 低位在后; 输出变量Z为误码输出。
87
② 设置状态。 该电路属于串行码组检测,对输入序列每四位一组进行检测后才复位,以表示前一组代码已检测结束并准备下一组代码的检测,因此,初始状态表示电路准备开始检测一组代码。本命题的状态图采用树形结构,从初始状态开始,每接收一位代码便设置一个状态。例如,电路处于初始状态S0,收到余3码的第一位(最高位),代码可能是1,也可能是0。若为0,状态转到S1分支;若为1,状态转到S2分支。当电路分别处于S1或S2状态时,表示电路将接收第二位代码,当第二位代码到达,由S1派生出S3和S4分支,由S2派生出S9和S10分支。 若电路处于S5,表示已收到了输入序列的高三位(余3码的高三位)为000,因而,不论收到第四位数码是0还是1,均应回到S0状态(一组代码检测结束),且输出Z=1,表示收到的是错误代码。
88
图 例 6-4 原始状态图
89
6.4.2 状态化简 在建立原始状态图和原始状态表时,将重点放在正确地反映设计要求上,因而往往可能会多设置一些状态,但状态数目的多少将直接影响到所需触发器的个数。对于具有M个状态的时序电路来说, 所需触发器的个数n由下式决定: 可见,状态数目减少会使触发器的数目减少并简化电路。 因此,状态简化的目的就是要消去多余状态,以得到最简状态图和最简状态表。
90
1. 状态的等价 设Si和Sj是原始状态表中的两个状态,若分别以Si和Sj为初始状态,加入任意的输入序列,电路均产生相同的输出序列, 即两个状态的转移效果相同,则称Si和Sj是等价状态或等价状态对,记作[SiSj]。凡是相互等价的状态都可以合并成一个状态。
91
在状态表中判断两个状态是否等价的具体条件如下:
第一,在相同的输入条件下都有相同的输出。 第二,在相同的输入条件下次态也等价。 这可能有三种情况: ① 次态相同; ② 次态交错; ③ 次态互为隐含条件。
92
表 原始状态表
93
例如,在表6-16 所示的原始状态表中,对于状态S2和S5, 当输入X=0时,输出相同(输出都为1),次态也相同(次态都为S5);当输入X=1时,输出相同(输出都为0),次态也相同(次态都为S3)。即可以确定,若分别以S2和S5为初始状态,加入任意的输入序列,电路均产生相同的输出序列。因此,状态S2和S5为等价状态,记作[S2S5]。 再看S6和S7 两个状态。当输入X=1时,输出相同,次态也相同;当输入X=0时,次态交错。这说明无论以S6还是以S7为初始状态,在接收到输入1以前将不断地在S6和S7之间相互转换,且保持输出为1;一旦收到了输入1,则都转向S5。 因此,从转移效果来看它们是相同的,这两个状态等价, 记作[S6S7]
94
对于S1和S3这两个状态,当输入X=1时,输出相同,次态交错;当输入X=0时,输出相同,次态分别是S2和S4,而S2和S4是否等价的隐含条件是S1和S3等价,这就是互为隐含条件的情况,其转移效果也是相同的,所以S1和S3等价,S2和S4也等价,记作[S1S3]、 [S2S4]。
95
等价状态具有传递性:若Si和Sj等价,Si和Sk等价,则Sj和Sk也等价,记作[SjSk]。相互等价状态的集合称为等价类, 凡不被其它等价类所包含的等价类称为最大等价类。例如, 根据等价状态的传递性可知,若有[SiSj]和[SiSk],则有[SjSk],它们都称为等价类,而只有[SiSjSk]才是最大等价类。另外,在状态表中,若某一状态和其它状态都不等价,则其本身就是一个最大等价类。状态表的化简, 实际就是寻找所有最大等价类,并将最大等价类合并,最后得到最简状态表。所以,表6-16中所有最大等价类为[S1S3][S2S4S5][S6S7],化简后的状态表如表6-17所示。
96
表 6-17 最简状态表
97
表 6-18 原始状态表
98
2. 隐含表化简 1) 作隐含表 隐含表格是一种两项比较的直角三角形表格,对于表6 18的原始状态表其隐含表如图6-34(a)所示。隐含表的纵坐标为B、C、D、E、F、G六个状态(缺头),横坐标为A、B、C、D、E、F六个状态(少尾),表中的每一个小格用来表示一个状态对的等价比较情况。这种表格能保证每两个状态进行比较,而且可以逐步确定所有的等价状态,使用方便。
99
2) 顺序比较 对原始状态表中的每一对状态逐一比较, 结果有三种情况: ① 状态对肯定不等价, 在小格内填×。 ② 状态对肯定等价, 在小格内填。 ③ 状态是否等价取决于隐含条件的, 则把隐含状态对填入, 需作进一步比较。 按上述规则将表6 18顺序比较后, 所得的隐含表如图6-34(b)所示。
100
图 6-34 隐含表简化状态
101
3) 关连比较——对顺序比较中需要进一步比较的状态对进行比较
从图6-34(b)可见,顺序比较后只有C和F已确定是等价状态对,记为[CF]。但AB、AE、BE、DG是否为等价状态对还需要检查其隐含状态对,其余状态均不等价。 状态A和B是否等价决定于隐含状态对C、F。因为C、F为等价,所以状态A和B为等价状态对,记为[AB]。 状态A和E是否等价决定于隐含状态对B、E,而状态B和E是否等价决定于隐含状态对C、F和A、E,而已有[CF],故又回到了自身,所以有[AE]和[BE]。 状态D和G是否等价决定于隐含状态对C、D 和D、E,而状态对C、 D 和D、 E不等价, 所以状态D和G不等价。
102
4) 找出最大等价类 根据以上求得的全部等价状态对,可求得该状态表的最大等价类为 [ABE] 、 [CF] 、 [D]和[G]。 5) 列出最简状态表 从每一个最大等价类中选出一个为代表,现分别从最大等价类[ABE] 、 [CF] 、 [D]和[G]中选出A 、 C 、D 和G,作为简化后的四个状态, 最后可作出最简状态表如表6 - 19所示。
103
表 最简状态表
104
6.4.3 状态分配 状态分配是指将状态表中每一个字符表示的状态赋以适当的二进制代码,得到代码形式的状态表(二进制状态表),以便求出激励函数和输出函数, 最后完成时序电路的设计。状态分配合适与否,虽然不影响触发器的级数,但对所设计的时序电路的复杂程度有一定的影响。然而,要得到最佳分配方案是很困难的。这首先是因为编码的方案太多,如果触发器的个数为n,实际状态数为M,则一共有2n种不同代码。 若要将2n种代码分配到M个状态中去,并考虑到一些实际情况,有效的分配方案数为
105
可见,当M增大时,N值将急剧增加,要寻找一个最佳方案很困难。此外,虽然人们已提出了许多算法,但也都还不成熟,因此在理论上这个问题还没解决。
在众多算法中,相邻法比较直观、简单,便于采用。它有三条原则,即符合下列条件的状态应尽可能分配相邻的二进制代码: ① 具有相同次态的现态。 ② 同一现态下的次态。 ③ 具有相同输出的现态。 三条原则以第一条为主, 兼顾第二、 第三条。
106
【例 6-5】 试对表6-20所示的状态表进行状态分配。
解:从表6-20状态表可见,它有四个状态S1、S2、S3、 S4,故电路使用两个触发器,即需要两个状态变量Q1、Q0进行编码。为方便起见,通常用卡诺图来表示分配结果。 按原则一, S1S2、S2S3应分配相邻代码。 按原则二, S1S3、S1S4、S2S3应分配相邻代码。 按原则三, S2S3应分配相邻代码。 根据三条原则,将状态分配方案填入图6-35的卡诺图中, 它仅未满足S1S3相邻。所以,分配结果为S1=00, S2=01, S3=11, S4=10。 最后可得到二进制状态表如表6-21所示。
107
表 例 6-5 状态表 表 6-21 例 6-5二进制状态表
108
图 例 6-5 编码表
109
同步时序电路的设计举例 【例6-6】 试用JK触发器完成“111”序列检测器的设计。 表 6-22 状态表
110
① 状态化简。 由表6-22(a)原始状态表用直接观测法可知,S2、S3为等价状态对,简化后可得如表6-22(b)最简状态表。 ② 状态分配。 该时序电路共有三个状态,采用两个JK触发器,状态变量为Q1、Q0。 按原则一,S1S2相邻;按原则二,S0S1和S0S2相邻; 按原则三,S0S1相邻。综合考虑后分配S0S1和S1S2相邻,这样就不能兼顾S0S2相邻,状态分配编码表如图6-36所示。 最后状态分配为S0=00, S1=10,S2=11。状态分配后得到如表6-22(c)二进制状态表,它是一个非完全描述时序电路的设计。
112
③ 确定激励函数和输出函数。 根据状态表填写次态和输出函数卡诺图,从而求得次态和输出方程组,然后将各状态方程与所选用的触发器的特征方程对比,便可求出激励函数。这种方法称为状态方程法。 当选用JK触发器时,为了使状态方程与触发器的特征方程便于对比,尽可能将状态方程写成 的形式,因此,必须将次态卡诺图按现态Qi=1和Qi=0分成两个子卡诺图,然后分别在子卡诺图中画圈简化,这样就可方便地求得Qi和Qi的系数Ji和 。
113
图 例 6- 6 次态与输出卡诺图
114
在图6-37(a)、(b)中,粗虚线将卡诺图按Qi=1和Qi=0划分为两个子卡诺图,化简后得
最后的激励函数和输出函数为
115
④ 自启动检查。 图 例6-6 状态图
116
表 6-23 完全状态表
117
⑤ 根据以上方程,画出“111”序列检测器的逻辑图如图6-39所示。
图 “111”序列检测器逻辑图
118
【例 6-7】 用JK触发器设计一个五进制同步计数器,要求状态转换关系为
解:本例属于给定状态时序电路设计问题。 ① 列状态表。 根据题意,该时序电路有三个状态变量,设状态变量为Q2、Q1、Q0,可作出二进制状态表如表6 24所示,它是一个非完全描述时序电路的设计。
119
表 例 6-7 状态表一
120
② 确定激励函数和输出函数。 图 表6-24 次态卡诺图
121
由次态卡诺图求出其状态方程和激励函数如下:
③ 自启动检查。 根据以上状态方程,检查多余状态的转移情况如表6-25所示,其完整的状态图如图6-41所示。
122
表 6-25 多余状态转移表
123
图 6-41 例 6-7 状态图
124
从图6-41可以看出,该电路一旦进入状态100,就不能进入计数主循环,因而该电路不能实现自启动,需要修改设计。
在非完全描述时序电路中,由于存在无效状态,使得在激励函数的获取过程中出现了任意项。在求取激励函数时,如果某任意项被圈入,则该任意项被确认为1,否则被确认为0。 由于圈法的随意性,故无效状态的转移可能出现死循环而使电路不能自启动。当电路不能自启动时,解决的方法有多种。
125
第一种方法,将原来的非完全描述时序电路中没有描述的状态的转移情况加以定义,使其成为完全描述时序电路。如将表6-24状态表中的无效状态的转移方向均定义为000,则可得到一个完全描述时序电路的状态表如表6-26。显然,按照表6-26设计的时序电路,不存在死循环问题,因为它是完全描述的。这种方法由于失去了任意项,会增加电路的复杂程度。 表 例 6-7 状态表二
126
第二种方法,改变原来的圈法。如果盲目地改变所有激励函数的圈法,则其工作量大,效果差。若在分析观察的基础上改变某激励函数的圈法,则能获得较满意的效果。观察图6-40 次态卡诺图,如果希望能尽量使用任意项,只能对(a)和(c)的圈法作修改。现对(c)的圈法作修改,它仅改变Q0的转移,新的圈法如图6 - 42所示。 分析新圈法可知:状态010将转移到100(原转移到101, 现在最后一位Q0转为0),状态100将转移到101(原转移到100,现最后一位Q0转为1)。 由分析可以看出,新圈法将克服死循环,也不增加激励函数的复杂程度。
127
由新圈法得 图 6-42 修整后圈法
128
重新检查多余状态的转移情况如表6-27所示,其状态图如图6-43所示,可以看到该电路具有自启动能力。如果修改6- 40(a)的圈法,可以得到同样的效果。
表 6-27 多余状态转移表
130
④ 画逻辑图。 图 6-44 例 6-7 逻辑图
131
【 例 6-8 】用D触发器设计一个模七同步加法计数器。 解: 本例属于给定状态时序电路设计问题。
① 列状态表。 根据题意,该时序电路有三个状态变量。设状态变量为Q2、 Q1、Q0,可作出二进制状态表如表6-28所示,它是一个非完全描述时序电路的设计。 ② 确定激励函数和输出函数。 由表6-28状态表分别画出Q2、Q1、Q0的次态卡诺图如图6- 45(a)、(b)、 (c)所示。
132
表 例 6-8 状态表
133
图 例 6-8 次态卡诺图
134
当使用D触发器实现时序电路时,由于D触发器的特征方程为Qn+1=D,因此,可从次态卡诺图直接求出D触发器的激励函数:
135
③ 自启动检查。 观察次态卡诺图激励函数的圈法,多余状态111的新状态为100,电路的状态图如图6-46所示,该电路具有自启动能力。 图 6-46 例 6-8 状态图
136
④ 画逻辑图。 图 例 6-8 逻辑图
Similar presentations