1.形成原始状态图和原始状态表
原始状态图和原始状态表是对设计要求的最原始的抽象,是构造相应电路的依据。因此,建立正确的原始状态图和状态表是同步时序电路设计中最关键的一步。
原始状态图的形成是建立在对设计要求充分理解的基础之上的,设计者必须对给定的问题进行认真、全面地分析,弄清楚电路输出和输入的关系以及状态的转换关系。一般应考虑如下3个问题:
① 确定电路模型
将电路设计成Mealy型 还是 Moore型?有的问题已由设计要求规定,有的问题可由设计者选择。不同的模型对应的电路结构不同,设计者在选择时,应根据问题中的信号形式、电路所需器件的多少等综合考虑。
② 设立初始状态
时序逻辑电路在输入信号开始作用之前的状态称为初始状态。在建立原始状态图时,应首先设立初始状态,然后从初始状态出发考虑在各种输入作用下的状态转移和输出响应。
③ 根据需要记忆和区分的信息设立状态
在建立原始状态图时,应该根据问题中要求记忆和区分的信息去考虑设立每一个状态。一般来说,若在某个状态下出现的输入信号能用已有状态表示,则应转向已有状态。仅当某个状态下出现的输入信号不能用已有状态表示时,才令其转向新的状态。这样,从初始状态出发,逐个增加和完善,直到每个状态下各种输入取值均已考虑而没有新的状态出现为止。
④ 确定各时刻电路的输出
时序逻辑电路的功能是通过输出对输入的响应来体现的。在建立原始状态图时,必须确定各时刻的输出值。在Moore型电路中,应指明每种状态下对应的输出;在Mealy型电路中应指明从每一个状态出发,在不同输入作用下的输出值。
2.状态化简码
① 什么叫状态化简? 所谓状态化简,是指采用某种化简技术从原始状态表中消去多余状态,得到一个既能正确地描述给定的逻辑功能,又能使所包含的状态数目达到最少的状态表,通常称这种状态表为最小化状态表。
② 目的:简化电路结构。状态数目的多少直接决定电路中所需触发器数目的多少。设状态数目为n,所需触发器数目为m,则应满足如下关系:
为了降低电路的复杂性和电路成本,应尽可能状态表中包含的状态数达到最少。
③ 方法:常用方法有观擦法、输出分类法、隐含表法等。最常用的一种方法----隐含表法。
④相关概念
完全确定状态表的化简是建立在状态等效的概念基础之上的。必须熟悉如下几个概念:
● 等效状态
定义:设状态Si和Sj是完全确定状态表中的两个状态,若对于所有可能的输入序列,分别从状态Si和状态Sj出发,所得到的输出响应序列完全相同,则状态Si和Sj是等效的,记作(Si,Sj),又称状态Si和Sj 为等效对。
判断:若状态Si和Sj 是完全确定的原始状态表中的两个现态,则Si和Sj 等效的条件可归纳为在一位输入的各种取值组合下满足两条: 第一,输出相同;第二,次态相同、次态交错、次态为各自的现态、次态循环或为等效对。
性质:等效状态具有传递性。
● 等效类:由若干彼此等效的状态构成的集合。在同一个等效类中的任意两个状态都是等效的。
● 最大等效类:所谓最大等效类,是指不被任何别的等效类所包含的等效类。这里所指的最大,并不是指包含的状态最多,而是指它的独立性,即使是一个状态,只要它不被包含在别的等效类中,也是最大等效类。换而言之,如果一个等效类不是任何其他等效类的子集, 则该等效类被称为最大等效类。
⑤化简步骤
采用隐含表化简原始状态表的的一般步骤如图1所示。
图1
3.状态编码
状态编码是指给最简状态表中用字母或数字表示的状态,指定一个二进制代码,将其转换成二进制状态表,以便与电路中触发器的状态对应。状态编码也称状态分配,或者状态赋值。
状态编码的任务是:
① 确定二进制代码的位数(即所需触发器个数);
设最简状态表中的状态数为n,二进制代码的长度为m,则状态数n与二进制代码长度m的关系为
② 寻找一种最佳的或接近最佳的状态分配方案
在二进制代码的位数确定之后,具体状态与代码之间的对应关系可以有许多种方案。设计者应寻找一种最佳的或接近最佳的状态分配方案,以便使电路最简单。在实际工作中,工程技术人员通常按照一定的原则、凭借设计经验去寻找相对最佳的编码方案,一种常用的编码方法称为相邻编码法。
相邻编码法的状态编码原则如下:
★ 在相同输入条件下,具有相同次态的现态应尽可能分配相邻的二进制代码;
★ 在相邻输入条件下,同一现态的次态应尽可能分配相邻的二进制代码;
★ 输出完全相同的现态应尽可能分配相邻的二进制代码。
此外,从电路实际工作状态考虑,一般将初始状态分配为“0”状态。
4.确定触发器数目和类型
状态编码后,可根据二进制状态表中二进制代码的位数确定电路中所需触发器数目,所需触发器数目等于二进制代码的位数。触发器类型可根据问题的要求确定,当问题中没有具体要求时,可由设计者挑选。
5.确定激励函数和输出函数表达式
触发器类型确定后,应根据二进制状态表和所选触发器的激励表,求出触发器的激励函数表达式和电路的输出函数表达式,并予以化简。激励函数表达式和输出函数表达式的复杂度决定了同步时序电路中组合逻辑部分的复杂度。
6.画出逻辑电路图
最后,根据触发器数目和类型实现存储电路部分,根据激励函数和输出函数的最简表达式选择合适的逻辑门实现组合逻辑部分,画出完整的逻辑电路图。
以上步骤是就一般设计问题而言的。实际中设计者可以根据具体问题灵活掌握,在实际设计过程中不必拘泥于固定的步骤。