资源预览内容
第1页 / 共53页
第2页 / 共53页
第3页 / 共53页
第4页 / 共53页
第5页 / 共53页
第6页 / 共53页
第7页 / 共53页
第8页 / 共53页
第9页 / 共53页
第10页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
同步时序电路设计基础,同步时序逻辑电路的设计过程就是分析的逆过程,也就是根据特定的逻辑要求,设计出能实现其逻辑功能的时序逻辑电路。设计追求的目标是使用尽可能少的触发器和逻辑门实现给定的逻辑要求。 同步时序电路设计的一般步骤如下: (1) 建立原始状态表。 根据对时序电路的一般文字描述说明电路的输入、输出及状态的关系,进而形成状态图和状态表。由于开始得到的状态图和状态表是对逻辑问题最原始的抽象,其中可能包含多余的状态,所以称为原始状态图和原始状态表。,(2) 状态化简。 对原始状态表进行状态化简,消去多余的状态,求得最小化状态表。 (3) 状态分配(或称状态编码)。 把状态表中用字母或数字标注的每个状态用二进制代码表示。 (4) 选择触发器类型(如D或JK触发器)。 通常在开始设计时,已经初步选择了触发器。这一步是最后确定合适的触发器的类型。同一状态表选用不同类型的触发器,得到的电路复杂程度也不同。 (5) 确定激励函数和输出函数表达式。 根据选定的触发器类型,列出激励函数表,并求出激励函数和输出函数的最简表达式。 (6) 画出逻辑电路图。,上述各步骤中,第一步是最重要的。这一步要完成从文字描述到逻辑符号的转换,一旦完成了这步转换,下面的步骤就可以用较为完善的设计方法进行设计。 以上是一般同步时序电路的设计步骤。对于一些典型的或选用MSI芯片的电路设计,由于状态数、状态编码和触发器类型已给定,设计步骤可以简化。实际设计中可以根据具体问题灵活掌握。,同步时序电路设计步骤,建立原始状态表,建立原始状态表是同步时序电路设计中最重要的一步。一般应考虑如下几个方面: 1.确定电路模型。 同步时序电路有Mealy型和Moore型两种模型,不同模型结构对应的电路结构不同。 2.设立初始状态。 时序逻辑电路在输入信号开始作用之前的状态称为初始状态。 3.根据需要记忆的信息增加新的状态。 从初始状态出发,逐个增加和完善,直到每个状态下各种输入取值均已考虑而没有新的状态出现为止。 4.确定各时刻电路的输出。,例1,例1. 某模5加1和加2计数器有一个输入x和一个输出Z。输入x为加1、加2控制信号,当x=0时,计数器在时钟脉冲作用下进行加1计数;当x=1时,计数器在时钟脉冲作用下进行加2计数。当电路计满5个状态后,输出Z产生一个1信号作为进位输出,平时Z输出为0。试建立该计数器的Mealy型原始状态图和状态表。 解: 该问题已指定电路模型为Mealy型,且输入和状态、输出之间的关系也非常清楚,所以状态图的建立很容易。 假设模5计数器的5个状态分别用A、B、C、D、E表示,其中A为初始状态。根据题意可作出原始状态图如右图所示,相应的原始状态表如右表所示。,例2,例2. 某序列检测器有一个输入端x和一个输出端Z。输入端x输入一串随机的二进制代码,当输入序列中出现011时,输出Z产生一个1输出,平时Z输出0。典型输入、输出序列如下。 输入x: l 0 1 0 1 1 1 0 0 1 1 0 输出Z:0 0 0 0 0 1 0 0 0 0 1 0 试作出该序列检测器的原始状态图和原始状态表。 解 假定用Mealy型同步时序逻辑电路实现该序列检测器的逻辑功能,则原始状态图的建立过程如下。 设电路的初始状态为A。当处在初始状态下电路输入为0时,输出Z为0,由于输入0是序列“011“中的第一个信号,所以应该用一个状态将它记住,假定用状态B记住收到了第一个0,则在状态A输入0时应转向状态B;当处在初始状态A电路输入为1时,输出Z为0,由于输入1不是序列“011“的第一个信号,故不需要记住,可令其停留在状态A。该转换关系如图(a)所示。,当电路处于状态B时,若输入x为0,则它不是序列“011”的第二个信号,但仍可作为序列中的第一个信号,故可令电路输出为0,停留在状态B;若输入x为1,则意味着收到了序列“011”的前面两位01,可用一个新的状态C将它记住,故此时电路输出为0,转向状态C。部分状态图如图(b)所示。 当电路处于状态C时,若输入x为0,则收到的连续3位代码为010,不是关心的序列011,但此时输入的0依然可以作为序列的第一个信号,故此时应输出0,转向状态B;若输入x为1,则表示收到了序列“011“,可用一个新的状态D记住,此时应输出1,转向状态D。部分状态图如图(c)所示。,当电路处于状态D时,若输入x为0,则应输出0,转向状态B;若输入x为l,则应输出0,转向状态A。至此,得到了该序列检测器完整的Mealy型状态图,如图(d)所示。相应的原始状态表如右所示。 从上述建立原始状态图的过程可知,实现一个序列检测器的功能所需要的状态数与要识别的序列长度相关,序列越长,需要记忆的代码位数越多,状态数也就越多。实际上在建立序列检测器的原始状态图时,可以先根据序列中要记忆的信息设立好每一个状态,并建立起当输入信号正好按指定序列变化时各状态的相互关系;然后再确定每个状态下输入出现不同取值时的输出和状态转移方向,即可得到一个完整的状态图。,例3,例3.若用Moore型同步时序电路实现上例“011”序列检测器,则电路输出完全取决于状态,而与输入无直接关系。在作状态图时,应将输出标记在代表各状态的圆圈内。 假定电路初始状态为A,并用状态B、C、D分别表示收到了输入X送来的0、01、011。显然,根据题意,仅当处于状态D时电路输出为1,其他状态下输出均为0。当状态从初始开始,输入端X正好依次输入0、1、1时,则状态从A转到B、B转到C、C转到D。据此可得到部分状态图如右图(a)所示。然后,考虑到A状态下输入为1时,它不是指定序列中的第一位信号,不必记忆,可令状态停留在A;B状态下输入为0时,它不是指定序列的第二位,但可作为指定序列的第一位,故可令其停留在B;C状态下输入为0时,不是指定序列的第三位,但同样可作为第一位,故令其转向状态B;D状态下输入0时,同样应转向B,而输入为1时,则应令其进入状态A。得到完整的Moore型原始状态图如右图(b)所示。,例4,例4. 某同步时序电路用于检测串行输入的8421码,其输入的顺序是先低位后高位,当出现非法数字(即输入1010,1011,1100,1101,1110,1111)时,电路的输出为1。试作出该时序电路的Mealy型模型状态图和状态表。 解:根据题意,电路有一个输入和一个输出。设输入x用来接收8421码,输出Z用来指示在输入端出现了非法数字。 假定起始状态为A,当第一位输入代码到来时,有两种可能的情况,即1和0,故需用两个状态B和C来表示这两种可能;从状态B和C出发,当x输入的第二位代码到来时,又各有两种可能的情况,分别用状态D,E,F,G表示;从状态D,E,F,G出发,当x输入的第三位代码到来时,同样,各有两种可能,共有8种不同的情况,分别用状态H,I,J,K,L,M,N,P表示。当x输入的第四位代码到来时,即一组8421码全部被接收。对输入的8421码进行判断,若出现非法数字,电路的输出为1,否则为0,并返回到起始状态A。根据以上分析,可以得到如下的状态图:,从状态图可以看出,由于串行输入是先低位后高位,因此,判断输入的8421码是否为非法数字时,应从低位到高位查看各位输入值。待4位代码检测完后,则应转向初始状态A,以便检查下一组代码。,将状态图转换成状态表,则如下表所示:,上述各例所建立的原始状态图和原始状态表中,对于所设立的每一个状态,在不同输入取值下都有确定的次态和输出。通常将这类状态图和状态表称为完全确定状态图和状态表,由它们所描述的电路称为完全确定电路。实际应用中,根据某些设计要求建立的原始状态图和原始状态表中往往存在不确定的次态或输出,即存在某些状态,它们在某些输入取值下的次态或输出是随意的。这种状态图和状态表被称为不完全确定状态图和状态表,所描述的电路称为不完全确定电路。,例5,例5. 设计一个用于引爆控制的同步时序电路,该电路有一个输入端x和一个输出端Z。平时输入x始终为0,一旦需要引爆,则从x连续输入4个1信号(不被0间断),电路收到第四个1后在输出端Z产生一个1信号点火引爆,该电路连同引爆装置一起被炸毁。试建立该电路的Mealy型状态图和状态表。 解: 该电路实际上是一个用于特殊场所的“1111”序列检测器。它与一般序列检测器有两点不同。一是输入带有约束条件,即一旦输入出现1,则一定是不被0间断的连续4个l;二是收到4个1后产生的引爆信号,同时使电路自毁,故此时不再存在次态问题。,设状态A表示电路初始状态,状态B表示收到了第一个1输入,状态C表示收到了连续2个1输入,状态D表示收到了连续3个1输入。根据题意,A状态下x为1时,输出为0转向状态B;B状态下x为1时,输出为0转向状态C;C状态下x为1时,输出为0转向状态D;而D状态下x为1时,输出为1,次态随意(实际上已不存在次态)。其次,A状态下x为0时,可令输出为0,停留在状态A,而B、C、D这3个状态下由于x不会为0,故可令输出和次态作为无关处理。据此,可得到该电路的Mealy型原始状态图如下图所示,原始状态表如下表所示。图表中用“d”表示不确定次态或不确定输出。,在时序电路设计中,利用不完全确定状态表中不确定次态和不确定输出的随意性,通常可使设计方案变得更简单。这一点和组合电路设计中利用函数包含的无关最小项简化电路结构是类似的,只不过在处理上要复杂一些。,状态化简,在建立原始状态图和原始状态表时,主要考虑的是如何清晰、正确地反映设计要求,而没有刻意追求如何使图、表中包含的状态数目达到最少。因此,在构造的状态图和状态表中往往存在多余状态。但在设计具体电路时,状态数目的多少将直接决定电路中所需触发器数目的多少。所以,为了降低电路的复杂性和电路成本,应尽可能地使描述设计要求的状态表中包含的状态数达到最少。 所谓状态化简,就是采用某种化简技术从原始状态表中消去多余状态,得到一个既能正确地描述给定的逻辑功能,又能使所包含的状态数目达到最少的状态表,通常称这种状态表为最小化状态表。 状态化简的方法很多,最常用的一种方法是隐含表法。在利用隐含表进行化简时,对于完全给定原始状态表和不完全给定原始状态表引用了不同的概念,并且处理过程有所不同。下面分别进行讨论。,1完全确定状态表的化简 完全确定状态表的化简是建立在状态等效这个概念的基础之上的。为此,在讨论化简方法之前,先介绍化简时涉及的几个概念。 (1)等效状态和等效类 等效状态:假设状态Si和Sj是完全确定状态表中的两个状态,如果对于所有可能的输入序列,分别从Si和Sj出发,所得到的输出响应序列完全相同,则状态Si和Sj是等效的,记作(Si,Sj),或者说,状态Si和Sj是等效对。 这里所说的所有可能的输入序列,是指输入序列的长度和结构是任意的,它包含无穷多位,且有无穷多种组合。如果企图通过检测所有可能输入序列下的输出来确定两个状态是否等效,显然是不现实的。事实上,由于在形成原始状态表时,对每个状态均考虑了在一位输入各种取值下的次态和输出,因此,从整体上讲,原始状态表已经反映了各状态在任意输入序列下的输出。从而,可以根据状态表上所列出的一位输入各种组合下的次态和输出来判断某两个状态是否等,效。假定Si和Sj是完全确定的原始状态表中的两个现态,则Si和Sj等效的条件可归纳为在一位输入的各种取值组合下满足如下两条。 第一,它们的输出相同。 第二,它们的次态属于下列情况之一: a次态相同; b次态交错或为各自的现态; c次态循环或为等效对。 这里,情况b中所谓的次态交错,是指在某种输入取值下,Si的次态为Sj,而Sj的次态为Si。而所谓次态为各自的现态,即Si的次态仍为Si,Sj的次态仍为Sj。情况c中的次态循环是指确定两个状态是否等效的关联状态对之间,其依赖关系构成闭环。而两个次态为状态对循环体中的一个状态对。,例如,S1和S2在某种输入取值下的次态是S3和S4,而S3和S4在该种输入取值下的次态又是S1和S2,则称这种情况为次态循环。而次态为等效对是指Si和Sj的次态
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号