第6章时序逻辑电路(全) 联系客服

发布时间 : 星期日 文章第6章时序逻辑电路(全)更新完毕开始阅读c756890f76c66137ee0619a0

6.3 同步时序逻辑电路的设计

时序逻辑电路的设计过程是分析的逆过程,就是要求设计者根据给出的具体逻辑功能,求出实现这一逻辑功能的逻辑电路。所得到的设计结果应力求最简,即电路所使用的触发器和门电路的数目及输入端数目最少,或集成电路数目、种类最少,且互相连线也较少。本节只讨论同步时序电路的设计。

一般时序电路的设计可按下列步骤进行。

(1)根据逻辑问题的文字描述,建立原始状态表。进行这一步时,可借助原始状态图,再构成原始状态表。

建立原始状态图的具体做法是:首先分析给定的逻辑功能,确定输入变量和输出变量,确定有多少种输入信息需要“记忆”,并对每一种需“记忆”的输入信息规定一种状态来表示;其次分别以上述状态为现态,考察在每一个可能的输入组合作用下,应转入哪个状态及相应的输出,便可求得符合题意的状态图。

这一步得到的状态图和状态表是原始的,其中可能包含多余的状态。

(2)采用状态化简方法,将原始状态表化为最简状态表。状态化简的规则是:若两个电路状态在相同输入下有相同的输出,并且转换到同一个次态去,则这两个状态为等价状态,两个状态可以合并为一个状态,而不改变输入输出的关系。通过合并等价状态可以达到状态简化的目的。

(3)在得到简化的状态图后,要对每一个状态指定1组二进制代码,称为状态分配(或状态编码)。时序电路的状态是用触发器状态的不同组合来表示的。状态分配就是给这些触发器指定状态,每个触发器的状态组合都是一组二进制代码。如果编码方案得当,设计结果可以很简单。一般选用的状态编码都遵循一定的规律,如自然二进制码、移存码、循环码等。编码方案确定后,根据简化的状态图,画出编码形式的状态图及状态表。

(4)选定触发器类型。根据编码后的状态表及触发器的特性方程,求得电路的输出方程和各触发器的驱动方程。

(5)根据驱动方程和输出方程画出所要求的逻辑图。

(6)检查电路能否自启动,如不能自启动,则需采取措施加以解决。

6.3.1 建立原始状态表

建立原始状态表的方法可以先借助于原始状态图,画出原始状态图以后再列出原始状态表。建立原始状态图至今尚没有一个系统的方法,目前多采用的方法仍然是经验法。对于一个时序电路应该考虑包括几个状态,状态间如何进行转换以及怎样产生输出等内容。

画原始状态图的一般过程是:根据文字描述的设计要求,先假定一个初始状态,从初始状态开始,每加入一个输入,就可以确定一个次态(该次态可能是现态本身,也可以是另一个状态,或者是新增加的一个状态)和输出。这个过程一直到每个现态向其次态的转换都已经考虑,并且不再增加新的状态为止。

例6-6 试列出一个5进制的加1和加2计数器的状态表。

解 对于5进制计数器应有5个独立状态,用S0~S4分别表示十进制数的0~4。计数器既可加1计数,又可加2计数,故要设置控制信号x。设x=0时,做加1计数;x=1时,做加2计数。y为输出,表示计满5个脉冲。由此,可以直接画出图6-17所示的状态图及表6-6所示的状态表。

表6-6 例6-6的状态表

x/yS40/00/11/1S00/01/0S1x Q S0 S1 S2 S3 S4 0 S1/0 S2/0 S3/0 S4/0 S0/1 1 S2/0 S3/0 S4/0 S0/1 S1/1 1/11/0S30/01/00/0S2

例6-7 设计一个串行数据检测器,该电路具有一个输入端x和一个输出端y。输入为一连串随机信号,当出现连续3个或3个以上的1时,输出为1,其它输入情况输出为0。例如

输入序列 1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 输出序列 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0

解 设电路在没有输入1以前的初始状态为A,当第一次输入1时,电路由状态A转入状态B,输出0;连续输入两个1时,电路由状态B转入C,并输出0;第三个信号继续输入1时,电路由状态C转入D,并输出1;此后若电路继续输入1,电路仍停留在状态D,并输出1。当输入一个0时,不管当前电路处于何种状态,电路都将回到初始状态A,电路重新记录连续输入1的个数。

根据上面的分析可得检测器的原始状态图如图6-18所示和状态表如表6-7所示。

表6-7 例6-7的状态表

0/01/0图6-17 例6-6的状态图x A0/00/00/0B1/0 Q A B C D 0 A/0 A/0 A/0 A/0 1 B/0 C/0 D/1 D/1 D1/11/1Cx/y

图6-18 例6-7的状态图6.3.2 状态表的化简

根据设计要求建立的原始状态表,可能会引入多余的状态。因此,在得到原始状态表后,下一步工作就是进行状态表的化简。消去原始状态表中的多余状态,尽量减少所需状态的数目,使实现它的电路最简单。状态表可分为两类,一种是完全定义机(或完全描述时序机)状态表;另一种是不完全定义机(或不完全描述时序机)状态表。两种状态表的化简方法有所不同,本节将分别介绍完全定义机和不完全定义机两类状态表化简的具体步骤。

一、完全定义机状态表的化简

所谓完全定义机是指其状态表中的次态和输出都能完全确定。不完全定义机是指其状态表中的次态和输出不能完全确定,即存在不确定的次态和输出。不完全定义机在实际中会

经常遇到。如基本RS触发器不允许同时输入0就是其中一例。有时,即使是完全定义机,往往在给其状态表的状态进行二进制编码时,也会使完全定义机变成不完全定义机。

在介绍完全定义机状态表化简方法之前,先引入等价的几个概念。 (1)等价的概念

等价状态:设qa和qb是时序电路状态表的两个状态,如果从qa和qb开始,任何加到时序电路上的输入序列均产生相同的输出序列,则称状态qa和qb是等价状态或等价状态对,并记为(qa, qb)或{qa, qb}。等价状态可以合并。

等价状态的传递性:若状态qa和qb等价,状态qb和qc等价,则状态qa和qc也等价,记为(qa,qb),(qb,qc)?(qa,qc)。

等价类:彼此等价状态集合,称为等价类。如若有(qa, qb)和(qb, qc),则有等价类(qa, qb, qc)。

最大等价类:若一个等价类不是任何别的等价类的子集,则此等价类称为最大等价类。 根据上述定义,可以把两个状态合并为一个状态的条件归纳为两点: 第一:在各种输入取值下,它们的输出完全相同。

第二:在满足第一个条件的前提下,它们的次态满足下列情况之一,即 ① 两个次态完全相同;

② 两个次态为其现态本身或交错;

③ 两个次态的某一后继状态可以合并;

④ 两个次态为状态对循环中的一个状态对。

上述两个条件必须同时满足,而第一个条件是状态合并的必要条件。

原始状态表化简的根本任务在于找出最大等价类,并且每个最大等价类用一个状态来代替。下面介绍具体化简方法。

(2)化简方法—隐含表法

隐含表法又称为表格法,它是一种有规律的方法。它的基本思想是:首先对原始状态表中的所有状态都进行两两比较,找出等价对;然后利用等价状态的传递性,得到等价类,最大等价类;最后建立最小化状态表。

① 画隐含表。隐含表是一个直角边格数相等的三角形矩阵。设原始状态表中有n各状态q1~qn,在隐含表的垂直方向从上而下排列q2, q3, …, qqn;水平方向自左向右排列q1, q2, …, qn-1。简单地说,q23示。

② 顺序比较。顺序比较隐含表中各状态之间的关系,并将比较结果填入小方格内。

如果两个状态的输出完全相同,次态也相同,或者为现态本身或交错,表示两个状态等价,则在隐含表相应小方格内打“√”。

如果两个状态的输出不同,表示这两个状态不等

qqq...n-2n-1n垂直方向“缺头”,水平方向“少尾”。隐含表中每一个小方格表示一个状态对。隐含表的格式如图6-19所

qq12q3...qn-2qn-1图6-19 隐含表格式价,则在隐含表相应小方格内打“×”。

如果不能确定两个状态是否等价,需要进一步追踪比较,则在相应的小方格内填上两个状态的次态对。

③ 关联比较。关联比较是确定步骤②中的待定状态对是否等价。这一步在隐含表上直接进行,以追踪后续状态对的情况。若后续状态对等价或出现循环,则这些状态对都是等价

的;若后续状态对中出现不等价,则在它以前的状态对都是不等价的。

④ 找最大等价类,作最简状态表。关联比较后,根据等价状态的传递性,可确定最大等价类。每个最大等价类可以合并为一个状态,并用一个新符号表示。

注意:不与其它任何状态等价的单个状态也是一个最大等价类。 例6-8 化简表6-8所给出的原始状态表。

表6-8 例6-8的原始状态表 x Q A B C D 0 D/0 D/0 D/0 D/0 1 B/0 C/0 C/1 B/0 解 化简步骤如下:

① 画隐含表,如图6-20所示。

② 顺序比较。需要注意,每个状态都要与其他状态比较一次,将每次比较的结果填入隐含表内。如A状态和D状态比较,在x=0和x=1时,它们的输出和次态均相同,因此A和D为等价状态对,在A和D交叉的方格上画“√”。再如,A和C状态比较时,发现在x=1时,输出不同,A和C不可能等价,故在方格中打上“×”。再如,比较A和B状态,在x=0和x=1时,它们的输出分别相同,且x=0时次态相同,x=1时

次态分别为B和C,B和C是否等价还不知道,所以将B和C作为待比较的条件填入,依此类推,比较结果如图6-20所示。

③ 关联比较,隐含表中考察状态对AB,若要AB等价,就需要BC等价。但隐含表中BC不等价,因此AB也不等价。同理,BD也不等价,即

AB?BC?? BD?BC??

④ 列最大等价类。由关联比较结果,可得最大等价类为(A, D), (B), (C)。 令Q1?{A,D},Q2?{B},Q3?{C},得最简状态表如表6-9所示。 表6-9 例6-8的最简状态表 x Q Q1 Q2 Q3 0 Q1/0 Q1/0 Q1/0 1 Q2/0 Q3/0 Q3/1 BBCC××D√BC×ABC图6-20 例6-8的隐含表

例6-9 化简表6-10所给出的原始状态表。 表6-10 例6-9的原始状态表 x1x2 Q A B C 00 D/0 C/1 C/1 01 D/0 D/0 D/0 11 F/0 E/1 E/1 10 A/0 F/0 A/0