第四节 时序逻辑电路设计
无论是组合电路,还是时序电路,其电路设计的宗
旨是一样的:在达到功能要求的前提下,使电路最稳定、
最简单。
时序逻辑电路的设计思路是:针对某一给定逻辑要
求,选择几个逻辑状态(越少越好)来描述它,再用某
种类型的触发器来实现这一逻辑功能。
一、时序逻辑电路设计的一般步骤
根据设计要求设定 确定各触发器
若干状态、建立状 输入的连接及
态表 输出电路
状态化简,分配 NO
是否最佳?
用编码表示
给各个状态 YES
选择触发器 设计完成
的形式
下面举例说明如何实现一个时序逻辑的设计:
书例 7-9 一个串行输入序列的检测电路,要求当序
列连续出现 4 个,1”时,输出为 1,作为提示。其他情
况输出为 0。
如果不考虑优化、最佳,以我们现有的知识可以很
容易解决,Z
X
D Q D Q D Q D Q
0 1 2 3
/RD
CP
如果没要求最优化设计,上述电路就可以了。通常
我们为了节省设计时间,想出一种设计方案能够完成设
计要求就适可而止了。
但如果要求实现最优化设计,比如大批量应用的电
路、功耗要求苛刻的场合,我们就要把电路加以优化,
以降低成本、降低功耗。
下面我们就按照一个标准的设计步骤,完成这个设
计。
第一步:建立原始状态图和状态表
根据题意,我们需要记忆前三个状态,如果是全 1,
则新的输入如果为 1,就满足“连续四个 1,的条件,
输出为 1 。
设输入序列为 X,输出为 Z 。前三个状态的组合为:
000 100 010 110 001 101 011 111
表示为,A B C D E F G H
第二步,状态简化
前面我们根据前三位可能的所有组合,设定了 8 个
状态 A ~ H,其实仔细分析一下,根本用不了这么多状态。
我们可以从 Z=1的可能性大小的角度,将状态简化为
4 个状态:
a b c d
A 000 B 100 D 110 H 111
C 010 F 101
E 001
G 011
前途渺茫 有点可能 较有希望 特有希望
这说明通过寻找内在规律,可以达到化简的目的。
刚才我们采用倒叙的方法,直接给出了化简的结果。
但这个化简过程是根据我们发现的“可能性大小”的规
律完成的,带有一定的偶然性,如果我们没有发现什么
规律,就一定不能简化了吗?
因此,我们要找到一种科学严谨的方法,按部就班
地进行化简。
首先,我们先讲几个概念:
完全描述状态转移表
如果状态转移表中,在所有输入条件下,均有 明确
的状态转移和输出,则称为 ~ 。 (本例既是 )
非完全描述状态转移表
如果状态转移表中,有些 输入条件下,次态或输出
不确定,是任意的,以 X表示,则称为 ~ 。
定理, 在完全描述状态转移表中,如果两个状态
,等价,,则 可以合并 为一项。
那么,什么叫等价呢?
等价有两个条件:
( 1)在所有输入条件下,两状态对应的 输出完全相等 。
本例除 H状态外,均可满足这一条件 。
( 2)在所有输入条件下,两状态的状态 转移效果完全
相同。
那么,什么叫转移效果相同呢? 有三种可能:
( 1)在所有输入条件下,两个状态的下一状态一一
对应相同。 (如本例的 A和 E,B和 F)
( 2)在有些输入条件下,虽然状态转移的下一状态不同,
如 S1 S3,S2 S4;如果 S3 和 S4 是等价的,则
也转移效果相同。这里 S3 与 S4 等价 是 S1与 S2等价的隐
含条件。
本例中 A,C的转移效果就是相同的:
X=1 X=0
A B A A 因为 B,F等价
C F C E A,E等价
( 3)在有些输入条件下,( S1和 S2)与( S3和 S4)互为
等价的隐含条件,则 S1,S2转移效果相同; S3,S4转移
效果相同。
本例没有这种情况。
总之,如果两个状态的输出相同、转移效果 相同就
称为 等价,只要 等价就可以合并 。
另外,等价具有传递性,如果 S1和 S2等价,S2和 S3
等价,则 S1与 S3也等价。
看来,我们要想简化状态,首先要寻找全部等价状态
对。下面我们开始化简:
( 1)寻找全部等价状态对
为了便于观察,我们为所有状态建立一个关系图,
从中可以查看任意两个状态之间的等价情况,这个表
称为隐含表。
总之,等价对有 AE,BF 及以此为条件的
CG,AG,AC, CE, EG
( 2)在所有等价对中,寻找 最大等价类
等价对是特指两个状态之间的关系,如果三个、四
个以致更 多个状态都相互等价,则称为 等价类 。当然两
个等价状态也可以算一个小等价类。
如果一个等价类内已经包含了所有可能的等价状态,
没有遗漏,则这个等价类称为最大等价类。
本例中,BF既是一个等价对、又是一个等价类、而
且还是一个最大等价类。记为 ( BF)
由于 A状态的传递性,A,C,E,G之间都是等价的,
可以构成一个最大等价类。记为 ( ACEG)
( 3)选择等价类组成等价类集
从一个个独立的 原始状态,找出了 等价对 ;
从所有等价对中,找出 最大等价类 ;
现在我们该盘点了,我们这样处理现有的各种项,
? 能划入某个最大等价类的状态,就融入那个集体。
本例有两项:( ACEG)、( BF)
? 与任何状态都不等价的孤独状态,就自己当个体户。
本例有两项:( D)、( H)
我们将这些已经合并到极限的项集合到一起,构成
一个等价类集,该等价类集包含的项数应该少于原始状
态的个数(至少不多于原始状态数),这正是我们化简
的目的。
书上在构成等价类集时,提出了三个条件:
a.,集”中要包括所有的原始状态
b,任一等价类的隐含条件,都应包含在“集”中。
c,在满足上述条件的情况下,包含的等价类数最少。
( 4)将等价类集中的各个等价类作为新的状态,作出
简化状态表
设( ACEG)为 a ( BF)为 b ( D)为 d ( H) 为 h
至此,状态化简结束了,我们将 8 个状态,化简为 4 个。
第三步 状态编码(也叫状态分配)
前面我们将 A~H 8 个原始状态,化简为 a,b,d,h
四个状态,下面我们要为这四个新状态编码。
我们知道,对 M个状态进行二进制编码,需要 n 位,
n ? l o g 2M
本例 M=4,n=2 我们采用两位二进制码就可以了。
还有一个问题,四个编码 00,01,10,11如何与四
个状态 a b d h 对应,是随便分配,还是有一个原则?
编码分配应服从以下原则:
( 1)如果多个状态具有相同的次态,它们的编码应尽
可能相邻。(所谓相邻是指两个编码只有一位不同)
本例在 X=0 时,a,b,d,h 的次态都是 a,所以编码应
相邻,不过本例一共只有四个编码,照顾不过来。
( 2)当多个状态属于同一状态的次态,编码应尽可能
相邻。
对本例,a与 b,d,h分别是 a,b,d(h)的次态,也
有点照顾不过来了。
( 3)输出相同的状态,编码应尽可能相同。
本例 a,b,d的输出是完全一致的。
有时上述三个原则是相互抵触的,我们通常以第一个
原则为主,统筹兼顾。
本例的最终编码结果是:
a=00 b=01 d=11 h=10
我们把用 abdh表示的状态表修改为以编码表示:
第四步 选择触发器类型,确定输入其信号
逻辑问题明确后,经过简化,我们得到了状态分配表。
我们用什么样的电路来实现呢? 其实,我们用任何
一种触发器都可以实现这个逻辑。
我们先不急于用某一种触发器实现这个电路,而是
先学习 一种表示逻辑状态变化的抽象方法 ——转移特性
现在我们可以用转移特性来描述本例的状态变化
下面,我们再看一看常用触发器与转移特性的关系
以 J-K触发器为例,J=1 对应 W= ? J=0 对应 W=0
J=X 对应 W=? 和 W=1
K=1 对应 W=? K=0 对应 W=1
K=X 对应 W= ? 和 W=0
从触发器的转移特性,我们可以得到各种触发器输入
信号为 1 时,与转移特性符号之间的对应关系。
为什么关注输入信号为 1 时的对应关系,是因为我们习
惯于写“与或表达式”,将使函数为 1的所有项相加即可。
现在,我们已经知道了本例的转移特性,也知道了
转移特性与各种触发器输入的对应关系,下面的任务是
确定具体触发器形式,找出其输入端的表达式。
由本例的转移特性,可以画出卡诺图:
以转移特性表示的逻辑电路的卡诺图,具有通用性。
例如:我们决定 用 R-S触发器实现,当然要用两个触
发器。
要写出 R,S的与或式,只需找出所有使它为 1 的项,
相加就可以了。
R2=X,S2=X Q1n R1=X+Q2n = XQ2n
R对应 ?,0作为任意,?和 1排除。 S1= X Q2n
S对应 ?, 1 作为任意,? 和 0排除。
如果我们要用 J-K触发器实现,方法如下:
J2= X Q2n K2 = X K1 = X + Q2n = X Q2n
J1 = X Q2n
如果用 D触发器实现,方法如下:
D1=X Q2n
D2 =X Q1n
+ XQ2n
第五步 求输出函数
Z = X Q1n Q2n
第六步 画电路图(以 J-K触发器方案为例)