第4章时序逻辑电路分析与设计第4章时序逻辑电路分析与设计4.1同步时序电路分析4.2触发器级同步时序电路设计4.3模块级同步时序电路设计*4.4异步计数器分析与设计第4章时序逻辑电路分析与设计4.1同步时序电路分析4.1.1要确定一个用触发器构成的同步时序电路的功能,通常需要经过以下几个分析步骤:①根据给定电路写出输出方程组、激励方程组和次态方程组;②根据上述三个方程组列出电路的状态表;③根据状态表画出电路的状态图,必要时还可画出电路的工作波形;④根据状态图(或状态表、第4章时序逻辑电路分析与设计【例4-1】分析图4-1所示同步时序电路的功能,并画出电路的工作波形。图4-1例4-1的电路&&1JC1&1KQ11JC11KQ0XCPZ1Q0Q第4章时序逻辑电路分析与设计解输出方程组nnnnQQXZ01激励方程组nnnnnnQXKQXJ0101nnnnXKXJ00将激励函数代入JK触发器的次态方程,得次态方程组:nnnnnQKQJQ1nnnnnnnQXQQQXQ0101011)(第4章时序逻辑电路分析与设计表4-1例4-1状态表第4章时序逻辑电路分析与设计图4-2例4-1的状态图0001Q1Q011100/00/01/11/01/01/00/00/0Xn/Zn第4章时序逻辑电路分析与设计图4-3例4-3的电路工作波形CPXQ1Q0Z第4章时序逻辑电路分析与设计由状态图可见,当输入X=0时,电路始终处于保持状态;当输入X=1时,电路呈现出来一个CP脉冲状态加1的特点,且当电路处于状态11(3)时,下一个CP脉冲到来后状态变为00且产生Z=1输出,为四进制加法计数。因此,本电路为一个可控同步四进制加法计数器,X为控制端,Z为进位输出。当控制端X=0时,维持原态;X=1时,进行四进制加法计数。第4章时序逻辑电路分析与设计【例4-2】分析图4-4所示同步时序电路的功能,并画出电路的工作波形。图4-4例4-2的电路S1DC1R11≤&1≤Q1S1DC1R11≤&1Q00Q1XY1Q清0CPLEG第4章时序逻辑电路分析与设计解输出方程组nnnnnnnQLQQEQG0011激励方程组:nnnnnnnnnnQYXQDQYXQD100011次态方程组:nnnnnnnnnnQYXQQQYXQQ10100111第4章时序逻辑电路分析与设计表4-2例4-2状态表第4章时序逻辑电路分析与设计图4-5例4-2的状态图00/010Q1Q0/GnEnLn00/00100111010/10011/101XnYn01第4章时序逻辑电路分析与设计从状态图可见,状态“11”是一个死循环,因此,图4-4所示电路是一个非自启动电路,加电工作时必须先清0。清0后,电路处于状态“00”。如果X=Y(即XY=00或11),维持状态“00”,输出GEL=010;如果X>Y(即XY=10),电路进入状态“10”,输出GEL=100;如果X<Y(即XY=01),电路进入状态“01”,输出GEL=001。一旦电路进入状态“10”或“01”,将不再进行状态转换,而是停止在这些状态上。由此可以判断,该电路是一个高位先入的串行二进制数比较器,X和Y是比较器的两个串行数据输入端,G、E、L是X>Y、X=Y、X<Y等三种比较结果的输出端。第4章时序逻辑电路分析与设计图4-6例4-2的电路工作波形CPXYQ1Q0GEL第4章时序逻辑电路分析与设计4.1.2【例4-3】图4-7电路由两片4位二进制同步可预置加法计数器74161和少量逻辑门组成,试分析其功能。图4-7例4-3的电路74161COQDQCQBQALDCLRCPDCBA1≥11CPPT11000&174161QDQCQBQALDCLRCPDCBA1≥1PT0001CO第4章时序逻辑电路分析与设计解两片74161的连接电路极为相似,如果不考虑级联问题,二者完全相同。当QDQCQBQA=0100时,下一个CP脉冲将QDQCQBQA置为1000;当QDQCQBQA=1100时,下一个CP脉冲将QDQCQBQA置为0000。可见,每一片74161都是一个5421BCD码计数器。第4章时序逻辑电路分析与设计现在来看两片74161的级联关系。虽然二者的CP端都与时钟脉冲CP相连,但右侧74161的计数控制端P受与门输出控制,而与门输入接左侧74161的QD、QC。只有当左侧74161处于“1100”状态即“9”状态时,下一个CP脉冲到来时右侧74161才能计数,同时左侧74161回到“0000”状态。也就是说,每来10个CP脉冲,左侧74161构成的5421BCD计数器向右侧74161构成的5421BCD计数器输出一个进位脉冲,使右侧5421BCD码计数器状态加1。因此,该电路是一个两位5421BCD码计数器,其中左侧74161构成个位计数器,右侧74161构成十位计数器。第4章时序逻辑电路分析与设计【例4-4】分析图4-8所示电路的功能。图4-8例4-4的电路0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y10Y11Y12Y13Y14Y15Y741541&&&A3A2A1A0Z3Z2Z1Z0QAQBQCQD74194S1S0CLRCP011&CP12G1G00ABCDSLSR第4章时序逻辑电路分析与设计解本题电路的存储器件只有1片74194,从连接情况看,它构成模8扭环形计数器。其它器件都是围绕74194来发挥作用的。画出电路的全状态图,有助于电路功能的分析。根据移位寄存器74194和译码器74154的功能特点,容易画出电路的全状态图,如图4-9所示。从状态图可见,这是一个自启动的π值发生器,周期性地在输出端Z3Z2Z1Z0依次产生3、1、4、1、5、9、2、6等8位π值的8421BCD码输出。第4章时序逻辑电路分析与设计图4-9例4-4电路的全状态图0000/00110001/01100011/00101000/0001QAQBQCQD/n0n1n2n3ZZZZ1100/01001110/00011111/01010111/10011101/00001010/00000100/00001001/00000010/00000101/00001011/00000110/0000第4章时序逻辑电路分析与设计4.2触发器级同步时序电路设计4.2.1(1)导出原始状态图或状态表。(2)状态化简。(3)状态分配。(4)触发器选型。(5)导出输出和激励函数表达式。(6)检查多余状态,打破无效循环。(7)画电路图。第4章时序逻辑电路分析与设计4.2.2导出原始状态图或状态表1.状态定义法状态定义法的基本思路是,认真分析电路要实现的功能,定义输入、输出变量和用来记忆输入历史的若干状态,然后分别以这些状态为现态,在不同的输入条件下确定电路的次态和输出,由此得到电路的原始状态图或状态表。本书将这种设计方法称为状态定义法,定义状态的原则是“宁多勿缺”,使原始状态图或状态表全面、准确地体现设计要求的逻辑功能。多余的状态可以在状态化简时消除。第4章时序逻辑电路分析与设计【例4-5】导出“1111”序列检测器的原始状态图和状态表。当连续输入四个或四个以上的1时,电路输出为1;其它情况下电路输出为0。解上一章介绍移位寄存器的应用时,已经介绍过序列检测器。此处“1111”序列检测器的功能是:对输入X逐位进行检测,若输入序列中出现“1111”,则最后一个1输入时,输出Z为1;若随后的输入仍为1,输出继续为1。其它情况下,输出Z为0。显然,该序列检测器应该记住收到X中连续的1的个数,因此可以定义以下状态:第4章时序逻辑电路分析与设计状态S0:表示未收到1,已收到的输入码是0。状态S1:表示已收到一个1。状态S2:表示已收到两个连续的1,即已收到11。状态S3:表示已收到三个连续的1,即已收到111。状态S4:表示已连续收到四个或四个以上的1。分别以S0~S4为现态,按照功能要求确定在不同输入条件下的输出和次态,即可得到完整的原始状态图,如图4-10所示。第4章时序逻辑电路分析与设计图4-10例4-5的原始状态图S1S2S30/00/01/0S41/00/01/01/10/01/1Xn/Zn0/0S0第4章时序逻辑电路分析与设计当电路处于状态S0时,表明电路未收到1。若此时输入X=0,则电路的输出为0,次态仍为S0;若此时输入X=1,则电路收到第一个1,进入收到一个1的状态,输出为0,次态为S1。当电路处于S1时,表明电路已收到一个1。若此时输入X=0,接收1111的过程被打断,前面刚收到的1作废,电路返回到未收到有效1的状态,输出为0,次态为S0;若此时输入X=1,则电路连续收到两个1,进入连续收到两个1的状态,输出为0,次态为S2。第4章时序逻辑电路分析与设计当电路处于S2时,表明电路已连续收到两个1。若此时输入X=0,则接收1111的过程被打断,前面刚连续收到的11作废,电路返回到未收到有效1的状态,输出为0,次态为S0;若此时输入X=1,则电路连续收到三个1,进入连续收到三个1的状态,输出为0,次态为S3。当电路处于S3时,表明电路已收到三个连续的1。若此时输入X=0,则接收1111的过程被打断,前面刚连续收到的111作废,电路返回到未收到有效1的状态,输出为0,次态为S0;若此时输入X=1,则电路连续收到四个1,进入连续收到四个1的状态,输出为1,次态为S4。第4章时序逻辑电路分析与设计当电路处于S4时,表明电路已收到四个或四个以上连续的1。若输入X=0,则接收1111的过程被打断,前面连续收到的多个1作废,电路返回到未收到有效1的状态,输出为0,次态为S0;若此时输入X=1,则电路已连续收到四个以上的1,根据题意,输出为1,次态仍为S4,电路停留在状态S4。第4章时序逻辑电路分析与设计由原始状态图得到原始状态表,如表4-3所示。从原始状态表可以清楚地看出,S3和S4状态在相同的输入下有相同的次态和输出,说明二者的作用是等价的,因此S3和S4是等价状态,可以合并为一个状态。合并等价状态前,电路有5个状态,需要3个触发器才能实现;合并等价状态后,电路只有4个状态,用两个触发器就可以实现。由此可见状态化简对于简化电路、降低成本是非常重要的。第4章时序逻辑电路分析与设计表4–3表4-5的原始状态表第4章时序逻辑电路分析与设计2.列表法列表法的基本思路是:n位序列检测器需要记忆前面收到的n-1位,即需要2n-1个状态来记忆输入的历史,分别表示收到全0到全1的2n-1种情况,再根据收到的第n位,决定电路的输出和次态,从而得到电路的原始状态表和状态图。列表法本质上也属于状态定义法,只不过先导出原始状态表,后导出原始状态图。这种方法特别适合序列长度较短的重叠型多序列检测。对于不允许输入序列码重叠的序列检测器,不能采用列表法,因为它不能区分前面的0或1是否已经被用过。此外,如果输入序列属于分组输入,也不能采用列表法,因为它也无法区分输入0、1的分组。第4章时序逻辑电路分析与设计【例4-6】某序列检测器有一个输入X和一个输出Z,当收到的输入序列为“101”或“0110”时,在上述序列的最后一位到来时,输出Z=1,其它情况下Z=0,允许输入序列码重叠。试列出其原始状态表。解本题中是指,序列“101”中的最后一位1可以作为下一组“101”序列的第一个1,后两位“01”也可以作为下一组“0110”序列的前两位;同理,序列“0110”的最后一位0可以作为下一组“0110”序列的第一个0,后两位的“10”也可以作为下一组“101”序列的前两位。第4章时序逻辑电路分析与设计本例也可以采用上例的状态定义法,先画出原始状态图,再列出原始状态表。此处采用列表法直接得到原始状态表。由于要检测的最长序列是0110,即n=4,所以电路要记住已收到的前3位数码。前3位数码共有000~111等8种不同的取值,为此,设置S0~S78个状态来分别记忆这8种不同取值。以S0~S7为现态,结