《数字电路与系统设计 》课件第4章.ppt

上传人(卖家):momomo 文档编号:8102658 上传时间:2024-11-28 格式:PPT 页数:127 大小:2.17MB
下载 相关 举报
《数字电路与系统设计 》课件第4章.ppt_第1页
第1页 / 共127页
《数字电路与系统设计 》课件第4章.ppt_第2页
第2页 / 共127页
《数字电路与系统设计 》课件第4章.ppt_第3页
第3页 / 共127页
《数字电路与系统设计 》课件第4章.ppt_第4页
第4页 / 共127页
《数字电路与系统设计 》课件第4章.ppt_第5页
第5页 / 共127页
点击查看更多>>
资源描述

1、第4章 时序逻辑电路分析与设计4.1 同步时序电路分析同步时序电路分析4.2 触发器级同步时序电路设计触发器级同步时序电路设计4.3 模块级同步时序电路设计模块级同步时序电路设计*4.4 异步计数器分析与设计异步计数器分析与设计4.1 同步时序电路分析同步时序电路分析4.1.1 触发器级电路分析触发器级电路分析 要确定一个用触发器构成的同步时序电路的功能,通常需要经过以下几个分析步骤:根据给定电路写出输出方程组、激励方程组和次态方程组;根据上述三个方程组列出电路的状态表;根据状态表画出电路的状态图,必要时还可画出电路的工作波形;根据状态图(或状态表、工作波形)确定电路的逻辑功。【例4-1】分析

2、图4-1所示同步时序电路的功能,并画出电路的工作波形。图 4-1 例4-1的电路解解 输出方程组输出方程组nnnnQQXZ01激励方程组nnnnnnQXKQXJ0101nnnnXKXJ00 将激励函数代入JK触发器的次态方程 ,得次态方程组:nnnnnQKQJQ1nnnnnnnQXQQQXQ0101011)(表表4-1 例例4-1状态表状态表图 4-2 例4-1的状态图图 4-3 例4-3的电路工作波形 由状态图可见,当输入X=0时,电路始终处于保持状态;当输入X=1时,电路呈现出来一个CP脉冲状态加1的特点,且当电路处于状态11(3)时,下一个CP 脉冲到来后状态变为00且产生Z=1输出,为

3、四进制加法计数。因此,本电路为一个可控同步四进制加法计数器,X为控制端,Z为进位输出。当控制端X=0时,维持原态;X=1时,进行四进制加法计数。【例4-2】分析图4-4所示同步时序电路的功能,并画出电路的工作波形。图 4-4 例4-2的电路解解 输出方程组nnnnnnnQLQQEQG0011激励方程组:nnnnnnnnnnQYXQDQYXQD100011次态方程组:nnnnnnnnnnQYXQQQYXQQ10100111表表4-2 例例4-2状态表状态表图 4-5 例4-2的状态图 从状态图可见,状态“11”是一个死循环,因此,图4-4所示电路是一个非自启动电路,加电工作时必须先清0。清0后,

4、电路处于状态“00”。如果X=Y(即XY=00或11),维持状态“00”,输出GEL=010;如果XY(即XY=10),电路进入状态“10”,输出GEL=100;如果XY(即XY=01),电路进入状态“01”,输出GEL=001。一旦电路进入状态“10”或“01”,将不再进行状态转换,而是停止在这些状态上。由此可以判断,该电路是一个高位先入的串行二进制数比较器,X和Y是比较器的两个串行数据输入端,G、E、L是 XY、X=Y、XY等三种比较结果的输出端。图 4-6 例4-2的电路工作波形4.1.2 模块级电路分析模块级电路分析 【例例4-3】图4-7电路由两片4位二进制同步可预置加法计数器741

5、61和少量逻辑门组成,试分析其功能。图 4-7 例4-3的电路 解解 两片74161的连接电路极为相似,如果不考虑级联问题,二者完全相同。当QDQCQBQA=0100时,下一个CP脉冲将QDQCQBQA置为1000;当QDQCQBQA=1100时,下一个CP脉冲将QDQCQBQA置为0000。可见,每一片74161都是一个5421BCD码计数器。现在来看两片74161的级联关系。虽然二者的CP端都与时钟脉冲CP相连,但右侧74161的计数控制端P受与门输出控制,而与门输入接左侧74161的QD、QC。只有当左侧74161处于“1100”状态即“9”状态时,下一个CP脉冲到来时右侧74161才能

6、计数,同时左侧74161回到“0000”状态。也就是说,每来10个CP脉冲,左侧74161构成的5421BCD计数器向右侧74161构成的5421BCD计数器输出一个进位脉冲,使右侧5421BCD码计数器状态加1。因此,该电路是一个两位5421BCD码计数器,其中左侧74161构成个位计数器,右侧74161构成十位计数器。【例例4-4】分析图4-8所示电路的功能。图 4-8 例4-4的电路 解解 本题电路的存储器件只有1片74194,从连接情况看,它构成模8扭环形计数器。其它器件都是围绕74194来发挥作用的。画出电路的全状态图,有助于电路功能的分析。根据移位寄存器74194和译码器74154

7、的功能特点,容易画出电路的全状态图,如图4-9所示。从状态图可见,这是一个自启动的值发生器,周期性地在输出端Z3Z2Z1Z0依次产生3、1、4、1、5、9、2、6等8位值的8421BCD码输出。图 4-9 例4-4电路的全状态图4.2 触发器级同步时序电路设计触发器级同步时序电路设计 4.2.1 设计步骤设计步骤 (1)导出原始状态图或状态表。(2)状态化简。(3)状态分配。(4)触发器选型。(5)导出输出和激励函数表达式。(6)检查多余状态,打破无效循环。(7)画电路图。4.2.2 导出原始状态图或状态表导出原始状态图或状态表 1.状态定义法状态定义法 状态定义法的基本思路是,认真分析电路要

8、实现的功能,定义输入、输出变量和用来记忆输入历史的若干状态,然后分别以这些状态为现态,在不同的输入条件下确定电路的次态和输出,由此得到电路的原始状态图或状态表。本书将这种设计方法称为状态定义法,定义状态的原则是“宁多勿缺”,使原始状态图或状态表全面、准确地体现设计要求的逻辑功能。多余的状态可以在状态化简时消除。【例例4-5】导出“1111”序列检测器的原始状态图和状态表。当连续输入四个或四个以上的1时,电路输出为1;其它情况下电路输出为0。解解 上一章介绍移位寄存器的应用时,已经介绍过序列检测器。此处“1111”序列检测器的功能是:对输入X逐位进行检测,若输入序列中出现“1111”,则最后一个

9、1输入时,输出Z为1;若随后的输入仍为1,输出继续为1。其它情况下,输出Z为0。显然,该序列检测器应该记住收到X中连续的1的个数,因此可以定义以下状态:状态S0:表示未收到1,已收到的输入码是0。状态S1:表示已收到一个1。状态S2:表示已收到两个连续的1,即已收到11。状态S3:表示已收到三个连续的1,即已收到111。状态S4:表示已连续收到四个或四个以上的1。分别以S0S4为现态,按照功能要求确定在不同输入条件下的输出和次态,即可得到完整的原始状态图,如图4-10所示。图 4-10 例4-5的原始状态图 当电路处于状态S0时,表明电路未收到1。若此时输入X=0,则电路的输出为0,次态仍为S

10、0;若此时输入X=1,则电路收到第一个1,进入收到一个1的状态,输出为0,次态为S1。当电路处于S1时,表明电路已收到一个1。若此时输入X=0,接收1111的过程被打断,前面刚收到的1作废,电路返回到未收到有效1的状态,输出为0,次态为S0;若此时输入X=1,则电路连续收到两个1,进入连续收到两个1的状态,输出为0,次态为S2。当电路处于S2时,表明电路已连续收到两个1。若此时输入X=0,则接收1111的过程被打断,前面刚连续收到的11作废,电路返回到未收到有效1的状态,输出为0,次态为S0;若此时输入X=1,则电路连续收到三个1,进入连续收到三个1的状态,输出为0,次态为S3。当电路处于S3

11、时,表明电路已收到三个连续的1。若此时输入X=0,则接收1111的过程被打断,前面刚连续收到的111作废,电路返回到未收到有效1的状态,输出为0,次态为S0;若此时输入X=1,则电路连续收到四个1,进入连续收到四个1的状态,输出为1,次态为S4。当电路处于S4时,表明电路已收到四个或四个以上连续的1。若输入X=0,则接收1111的过程被打断,前面连续收到的多个1作废,电路返回到未收到有效1的状态,输出为0,次态为S0;若此时输入X=1,则电路已连续收到四个以上的1,根据题意,输出为1,次态仍为S4,电路停留在状态S4。由原始状态图得到原始状态表,如表4-3所示。从原始状态表可以清楚地看出,S3

12、和S4状态在相同的输入下有相同的次态和输出,说明二者的作用是等价的,因此S3和S4是等价状态,可以合并为一个状态。合并等价状态前,电路有5个状态,需要3个触发器才能实现;合并等价状态后,电路只有4个状态,用两个触发器就可以实现。由此可见状态化简对于简化电路、降低成本是非常重要的。表表4 3 表表4-5的原始状态表的原始状态表 2.列表法列表法 列表法的基本思路是:n位序列检测器需要记忆前面收到的n-1位,即需要2n-1个状态来记忆输入的历史,分别表示收到全0到全1的2n-1种情况,再根据收到的第n位,决定电路的输出和次态,从而得到电路的原始状态表和状态图。列表法本质上也属于状态定义法,只不过它

13、是先导出原始状态表,后导出原始状态图。这种方法特别适合序列长度较短的重叠型多序列检测。对于不允许输入序列码重叠的序列检测器,不能采用列表法,因为它不能区分前面的0或1是否已经被用过。此外,如果输入序列属于分组输入,也不能采用列表法,因为它也无法区分输入0、1的分组。【例例4-6】某序列检测器有一个输入X和一个输出Z,当收到的输入序列为“101”或“0110”时,在上述序列的最后一位到来时,输出Z=1,其它情况下Z=0,允许输入序列码重叠。试列出其原始状态表。解解 本题中是指,序列“101”中的最后一位1可以作为下一组“101”序列的第一个1,后两位“01”也可以作为下一组“0110”序列的前两

14、位;同理,序列“0110”的最后一位0可以作为下一组“0110”序列的第一个0,后两位的“10”也可以作为下一组“101”序列的前两位。本例也可以采用上例的状态定义法,先画出原始状态图,再列出原始状态表。此处采用列表法直接得到原始状态表。由于要检测的最长序列是0110,即n=4,所以电路要记住已收到的前3位数码。前3位数码共有000111等8种不同的取值,为此,设置S0S7 8个状态来分别记忆这8种不同取值。以S0S7为现态,结合当前第4位的输入值X就可以确定输出Z的取值和电路的次态,从而得到电路的原始状态表,如表4-4所示。表表4 4 例例4-6原始状态表原始状态表 表4-4中状态S0S7左

15、边的数码是各状态记忆的已收到的前面三位数码。当电路的现态是S0时,表示已收到000。若此时的输入是X=0,则收到的4位数码为0000、3位数码为000,均不是要检测的序列,所以输出Z=0;电路需要记住的后3位数码是000,所以次态是S0。若X=1,则收到的4位数码是0001、3位数码是001,也不是要检测的序列,所以输出Z=0;电路需要记住的后3位数码是001,所以次态是S1。由此构成了表4-4中的第000行。当电路的现态是S1时,表示已收到001。若输入X=0,则收到的4位数码是0010、3位数码是010,仍不是要检测的序列,所以输出Z=0;电路需要记住的后三位数码是010,所以次态是S2。

16、若X=1,则收到的4位数码是0011、3位数码是011,也不是要检测的序列,所以输出Z=0;电路需要记住的后三位数码是011,所以次态是S3。由此构成了表4-4中的第001行。当电路的现态是S2时,表示已收到010。若输入X=0,则收到的4位数码是0100、3位数码是100,都不是要检测的序列,所以输出Z=0;电路需要记住的后三位数码是100,所以次态是S4。若X=1,则收到的4位数码是0101,不是要检测的序列,但3位数码是101,是要检测的序列,所以输出Z=1;电路需要记住的后三位数码是101,所以次态是S5。由此构成了表4-4中的第010行。3 树干分支法树干分支法 状态定义法和列表法中

17、,状态的含义非常清楚,但在实际设计过程中,人们有时候并不需要预先将各个状态的含义定义得一清二楚,只要整个状态图或状态表能满足设计功能要求即可。此时可采用树干分支法直接画出原始状态图,省却逐个定义状态的麻烦。树干分支法的基本思路是:将要检测的序列作为树干,其余输入组合作为分支,先一厢情愿画树干,然后再画分支,由此得到电路的原始状态图和状态表。树干分支法和状态定义法一样,适合所有的序列检测。但对于多序列检测,因需要多个树干而使得原始状态数较多,这是树干分支法的不足之处。【例4-7】用树干分支法画出重叠型和非重叠型“1010”序列检测器的原始状态图。解:解:无论是否允许重叠,序列检测器的树干都是“1

18、010”,因此可以先画出“1010”这条树干,如图4-11所示。实际上,采用树干分支法画好原始状态图的树干后,各个状态的含义就已经清楚了,只不过一开始未定义而已。例如本例中,状态A作为初始状态表示未收到有效的“1”,状态B表示收到1个有效的“1”,状态C表示收到“10”,状态D表示收到“101”,状态E表示收到“1010”。图 4-11“1010”序列检测器的树干A1/0B0/0CDE1/00/1Xn/Zn图 4-12“1010”序列检测器的原始状态图 重叠型和非重叠型“1010”序列检测器的原始状态图仅在电路处于状态E时有所不同。状态E表示电路已经检测到“1010”序列,如果是重叠型序列检测

19、器,则后面的两位“10”可以作为下一组“1010”的前面两位“10”,因此再收到1时应转向收到“101”的状态D;如果是非重叠型序列检测器,因已经检测到了“1010”,所以后面的两位“10”不可再用,应从下一位开始重新检测“1010”,因此再收到1时应转向收到第一个“1”的状态B。【例4-8】画出重叠型“101”和“010”双序列检测器的原始状态图。解解 该序列检测器有两条树干,一条是“101”,另一条是“010”,其树干和完整的原始状态图如图4-13所示。图 4-13 重叠型“101”、“010”双序列检测器的原始状态图(a)树干;(b)完整状态图 【例例4-9】某同步时序电路有两个输入X1

20、、X0和一个输出Z,当连续两个或两个以上的时钟脉冲作用期间X1、X0都保持不变且取值相同时,电路输出Z=1,否则Z=0。画出其原始状态图。解解 在连续两个或两个以上的时钟脉冲作用期间X1、X0都保持不变且取值相同,即指X1X0连续输入序列为00 00 00或11 11 11,因此,可得原始状态图如图4-14所示。图 4-14 例4-9的原始状态图 【例4-10】某同步时序电路对高位先入的串行5421BCD码进行误码检测,每当检测到一个错误码组时,在输入码组的最后一位到来时输出Z=1,其它情况下Z=0。检测完一组代码后回到初始状态,准备检测下一个码组。试画出其原始状态图。解解 这是一种分组码检测

21、器,需要检测的错误码组有6个:0101、0110、0111、1101、1110和1111。由于需要记忆位数,所以可以按照细胞分裂的结构将各种输入情况全部记忆下来,这样状态数虽然多一些,但每个状态的含义特别清楚,画状态图时不易出错。图 4-15 例4-10的原始状态图4.2.3 状态化简状态化简 一般情况下原始状态图或原始状态表都存在多余状态,因此必须进行状态化简,消除多余状态。状态化简是建立在状态等价概念的基础上的。设Si 和Sj是原始状态图或状态表的两个状态,如果在任意一个输入序列作用下以Si为初始状态产生的输出序列,与同一个输入序列作用下以Sj为初始状态产生的输出序列完全相同,那么就称状态

22、Si和状态Sj相互等价,记作SiSj。相互等价的两个或多个状态可以合并为一个状态。对于完全确定的状态表,有观察法和隐含表法两种状态化简方法。1.观察化简法观察化简法 将原始状态表中的状态与等价状态的定义进行比较,从中找出等价状态的化简方法称为观察化简法,也称为合并条件化简法。但前面的状态等价定义不便使用,通常是按照下面的变通条件来判断两个状态是否等价的。如果在所有输入条件下,两个状态对应的输出相同,且对应的次态满足下列条件之一,则这两个状态相互等价:次态相同;维持现态或次态交错变化;次态互为隐含条件。次态交错是指状态Si的次态是Sj,状态Sj的次态是Si。次态互为隐含条件是指状态S1和S2等价

23、的前提条件是状态S3和S4等价,而S3和S4等价的前提条件又是状态S1和S2等价,此时,S1和S2等价,S3和S4也等价。相互等价的状态的集合称为等价类,全体等价状态的集合称为最大等价类。等价类可以用括号表示,例如S1和S2是等价状态,即S1S2,等价类记为(S1,S2)。一个等价类中的所有状态可以合并为1个状态,记为(S1,S2)=(S1)。等价状态具有传递性,即如果S1S2、S2S3,则有S1S2S3,即S1、S2、S3相互等价,最大等价类记为(S1,S2,S3)。观察化简法就是要找出原始状态表中所有的最大等价类,将每个最大等价类合并为1个状态,就可得到最简状态表。使用观察化简法化简原始状

24、态表时要注意,一些有去无回的状态可能并不符合上述等价条件,但也应该将其删除,因为它们并无实质意义,一般属于多余状态。例例4 11 化简表4-5所示的原始状态表。表表4-5 例例4-11的原始状态表的原始状态表 解解 仔细观察表4-5,可见:状态B和状态H在各种输入条件下对应的输出相同,次态也相同,符合条件,所以状态B和状态H是等价状态,即BH,等价类为(B,H)。状态D与状态E有相同的输出,次态或相同,或维持现态不变,符合条件和条件,所以状态D和状态E是等价状态,即DE,等价类为(D,E)。状态A和状态F在各种输入条件下对应的输出相同,X=0时次态交错变化,只要C、G等价,则A、F就等价;而状

25、态C和状态G在各种输入条件下对应的输出也相同,由于状态B和H等价,因此只要A、F等价C、G就等价,即A、F与C、G互为隐含条件,满足条件,所以A、F等价,C、G也等价,即AF,CG,等价类分别记为(C,D)和(E,F)。状态I与状态G在各种输入条件下对应的输出相同,X=0时次态相同,X=1时次态分别为A和D,必须A、D等价才有I、G等价,而A、D输出不同,不可能等价,所以I与G不等价,I单独构成1个等价类(I)。尽管从合并条件看状态I无等价状态而不能合并,但该状态属于有去无回的状态,应该将其删除。因此,删除有去无回的状态I后,本例中的原始状态表共有4个等价类,它们是(A,F)、B,H)、C,G

26、)和(D,E),合并后的状态分别用A、B、C和D表示,记作(A,F)=(F),(B,H)=(B),(C,G)=(C),(D,E)=(D)。由此得到化简后的状态表如表4-6所示。该状态表中,除了状态B、D在各种输入条件下对应的输出相同外,其余状态的输出各不相同,不可能等价。而要B、D等价,必须B和C、C和D等价,而B和C、C和D输出不同,不可能等价,因此B、D不等价,(A,F)、(B,H)、(C,G)和(D,E)已经是最大等价类,不能进一步合并,所以表4-6是最简状态表。表表4-6 例例4-11的最简状态表的最简状态表2.隐含表化简法隐含表化简法 隐含表化简法的基本过程如下:按照“缺头少尾”的结

27、构画出阶梯形隐含表。隐含表竖缺头,从第二个状态开始排;横少尾,不排最后一个状态。对原始状态表中的状态从头至尾进行两两比较,并将比较结果填入隐含表中对应的方格。明显等价的两个状态对应方格内填入“”,明显不等价的两个状态对应方格内填入“”,有可能等价的两个状态对应方格内填入等价的“隐含条件”。检查隐含条件是否满足。具体方法是,利用已知的不等价状态(“”)去找出隐含的不等价状态(新“”),然后再利用这些新的不等价状态(新“”)去进一步寻找新的不等价状态,依此进行,直到不能扩大为止。求出全部的最大等价类,进行状态合并,列出最简状态表。隐含表方格内无“”的状态对都是等价状态,可以进行状态合并;隐含表方格

28、内有“”的状态对都不是等价状态,不能进行状态合并。【例4-12】用隐含表化简法化简表4-7所示的原始状态表。表表4-7 例例4-12的原始状态表的原始状态表 解解 首先画出“缺头少尾”的阶梯形结构隐含表,如图4-16(a)所示。竖缺头,从B状态开始排;横少尾,不排H状态。隐含表的这种阶梯形结构和“缺头少尾”的状态排列方式可以保证原始状态表中的状态能够全部进行两两比较,做到既没有遗漏也没有重复。然后按隐含表中状态的排列顺序,对原始状态表中的状态从头至尾进行两两比较,并将比较结果填入对应方格。明显等价的两个状态对应方格内填入“”,明显不等价的两个状态对应方格内填入“”,有可能等价的两个状态对应方格

29、内填入等价的“隐含条件”,如图4-16(b)所示。以状态A和其它状态比较为例来说明比较和填表过程(隐含表第1列)。A和B、C比较,输出不同,明显不等价,对应的方格内填入“”;A和D比较,输出相同,可能等价,隐含条件是B和D等价及A和F等价,将BD、AF填入对应的方格;A和E比较,输出不同,明显不等价,对应的方格内填入“”;A和F比较,输出相同,次态或相同,或维持,或交错变化,明显等价,对应方格内填入“”(如看不出来,也可在方格内填入隐含条件AF);A和G比较,输出相同,可能等价,隐含条件是D和G等价及A和F等价,将DG、AF填入对应的方格;A和H比较,输出不同,明显不等价,对应的方格内填入“”

30、。接下来检查隐含条件。第一轮检查,因B、D不等价,所以以BD为等价条件的A和D、D和F不等价,对应的方格内隐含条件BD旁画“”(第一轮检查出来的不等价用“”表示,以与填表时的不等价记号“”区别);因B、G不等价,所以以BG为等价条件的D和G不等价,对应的方格内隐含条件BG旁画“”。第一轮检查过后,隐含表如图4-16(c)所示。第二轮检查,因D、F不等价,所以以DF为等价条件的B和E、C和E、E和H不等价,对应的方格内隐含条件DF旁画“”(第二轮检查出来的不等价用 表示,以与填表时的不等价记号“”和第一轮检查出来的不等价记号“”区别);因D、G不等价,所以以DG为等价条件的A和G、F和G不等价,

31、对应的方格内隐含条件DG旁画 。第二轮检查过后,再也不能找到新的不等价状态,隐含条件检查结束。图 4-16 例4-12隐含表化简过程(a)隐含结构;(b)填隐含表;表表4-8 例例4-12的最简状态表的最简状态表4.2.4 状态分配状态分配 在同步时序电路中,电路的状态是用触发器的状态来表示的。在得到最简状态表后,其中的每个状态都应该用一组二进制代码(即触发器的状态组合值)来表示,这个过程就是状态分配,也称为状态编码。用二进制代码表示的状态表称为编码状态表。状态编码的不同不会影响同步时序电路中触发器的个数,但会影响其中的组合网络部分,即影响触发器激励函数和输出函数的繁简程度。所以,应尽量采用有

32、利于激励函数和输出函数化简的状态分配方案。下面给出三个实用的状态分配原则:次态相同,现态相邻,即在相同输入条件下具有相同次态的现态应分配相邻的编码,这有利于激励函数的化简。现态相同,次态相邻,即同一现态在相邻输入条件下的不同次态应分配相邻的编码。这也有利于激励函数的化简。输出相同,现态相邻,即在所有输入条件下具有相同输出的现态应分配相邻的编码。这有利于输出函数的化简。这三条原则用于实际分配时可能会产生矛盾,此时应按照原则、原则、原则的顺序进行分配,即首先满足原则,然后满足原则,最后满足原则。【例4-13】对表4-9所示的最简状态表,提出一种合适的的状态分配方案,列出其编码状态表。表表4-9 例

33、例4-13状态表状态表 解解 因为表中有4个状态,需要两位二进制编码。根据原则,A和B、A和C、B和C、B和D应分配相邻编码;根据原则,A和B、A和C、A和D、B和C应分配相邻编码;根据原则,B和D应分配相邻编码。其中一种状态分配方案是:A=00,B=01,C=10,D=11,仅B和C、A和D的编码不满足相邻性。编码状态表如表4-10所示。表表4-10 例例4-13的编码状态表的编码状态表4.2.5 设计举例设计举例 【例4-14】智能机器人能够识别并绕开障碍物,在充斥着障碍物的环境里自由行走。它的前端有一个接触传感器,当遇到障碍物时传感信号X=1,否则传感信号X=0。它有两个控制信号Z1和Z

34、0控制脚轮行走,Z1=1时控制机器人左转,Z0=1时控制机器人右转,Z1Z0=00时控制机器人直行。机器人遇到障碍物时的转向规则是:若上一次是左转,则这一次右转,直到未探测到障碍物时直行;若上一次是右转,则这一次左转,直到未探测到障碍物时直行。试用D触发器设计一个机器人控制器,控制机器人的行走方式。解解 根据题意,机器人有以下四种可能的工作状态:当前直行,但上一次是左转;探测到障碍物,正在右转;当前直行,但上一次是右转;探测到障碍物,正在左转。图 4 17 例4-14状态图表表4-11 例例4-14原始状态表原始状态表 4个状态需要两位二进制编码(即两个触发器),根据前面介绍的状态分配原则,状

35、态分配如下:A=00 B=01 C=11 D=10表表4-12 例例4-14的编码状态表的编码状态表 机器人控制器的输出卡诺图和次态卡诺图如图4-18所示,由卡诺图可得输出方程组和次态方程组分别为 nnnnnnQXZQXZ1111nnnnnnnnnnQXQXQQXQXQ01100111由D触发器的特征方程Qn+1=Dn,得激励方程组为nnnnnnnnnnQXQXDQXQXD010011图 4-18 例4-14的输入和次态卡诺图图 4-19 机器人控制器电路1DC1&1DC1Q01QQ110QX11CPZ0Z1 【例4-15】用JK触发器设计一个同步时序电路,实现图4-20所示状态图描述的功能。

36、要求电路能够自启动。图 4-20 例4-15的状态图 解解 由图4-20所示编码状态图可知,本题电路需要3个JK触发器,编码状态表如表4-13所示。利用卡诺图,从编码状态表得到触发器次态方程组(多余状态的次态为):nnnnnnQQQQQQ110211012将次态方程组变换为与JK触发器特征方程相同的形式:nnnnnnnnnnnnnnnnnnnnnnnnnnQQQQQQQQQQQQQQQQQQQQQQQQQQQ010100111012121122112020220012)()()(并与JK触发器的特征方程 进行比较,求出各个JK触发器的激励函数表达式为nnnnnQKQJQ1nnnnQKQJ020

37、2nnnnQKQJ2121nnnnQKQJ1010 本电路有两个多余状态010和101,由已经求出的次态方程组可知,010的次态是101,101的次态是010,它们构成一个循环,因此电路是非自启动的,必须采取措施打破无效循环。打破无效循环的第一种方法是设置一个检测门,检测无效循环中的某一个状态,例如010。当遇到010状态时,检测门输出低电平,该低电平送到各个JK触发器的异步清0端D,使各个JK触发器异步清0,从而打破无效循环。打破无效循环的第二种方法是修改逻辑设计。原来设计电路时,为了简化电路,所有多余状态的次态都作为来处理。现在,为了打破无效循环,可以选12个最简单的无效循环予以打破,规定

38、这些无效循环中某个状态的次态为主循环中的一个状态,重新进行逻辑设计。本题中只有1个无效循环,可选择其中的010状态来打破无效循环。原来010的次态为101,现在改高高位,使010的次态变为001,这样仅最高位的激励函数表达式发生变化,只需重新求出最高位的激励函数表达式即可。此时Q2的次态卡诺图如图4-21所示(其中010方格中的0原来为)。图 4 21 的卡诺图12nQQ2的次态方程为nnnnnnnnnnnnnnnnQQQQQQQQQQQQQQQQ20201022201020112)(由此得到:nnnnnQKQQJ02012图 4-22 例4-15的电路1JC12Q1K&Q21JC11Q1KQ

39、11JC11KQ00QCP4.3 模块级同步时序电路设计模块级同步时序电路设计4.3.1 基于计数器的电路设计基于计数器的电路设计 当计数器模块的状态数不少于原始状态表的状态数时,不必进行状态化简。这不仅没有增加硬件成本,而且可以保持原始状态表中各个状态的清晰含义。状态分配时要充分考虑到计数器模块的状态变化规律,尽量使用计数器的自然计数功能实现电路的状态转换,以减少辅助器件的数目。【例例4-16】用计数器74163实现图4-23所示状态图描述的同步时序电路功能。解解 图4-23所示状态图有7个状态,1片74163有16个状态,所以不必进行状态化简。为了尽量简化电路,根据计数器模块74163的计

40、数规律,S0、S1、S2、S3应分配连续的编码,S4、S5、S6也应分配连续的编码。7个状态,用3位二进制编码即可,也就是只需要使用74163的QCQBQA。状态分配如下:S0000 S1001 S2010 S3011S4100 S5101 S6110图 4-23 例4-16的状态图图 4-24 例4-16的编码状态图 00101001110011010/100/101/101/100/110/100/000/000/001/100/110/110/100/101/1n0n1XX/Zn000101表表4-14 例例4-16中中74163的控制激励表的控制激励表从控制激励表可直接写出0101BT

41、QCACLRnB图图 4 25 例例4-16的电路的电路4.3.2 基于移位寄存器的电路设计基于移位寄存器的电路设计 用MSI移位寄存器作为存储器件设计同步时序逻辑电路时,其步骤也与前面介绍的触发器级电路设计基本相同,不同之处主要在于以下两个方面:当移位寄存器模块的状态数不少于原始状态表的状态数时,不必进行状态化简。这不仅没有增加硬件成本,而且可以保持原始状态表中各个状态的清晰含义。状态分配时要充分考虑到移位寄存器模块的状态变化规律,尽量使用移位寄存器的移位功能实现电路的状态转换,以减少辅助器件的数目。【例例4-17】某同步时序电路有两个输入信号X1、X0和四个输出信号Z3、Z2、Z1和Z0,

42、其状态图如图4-26所示。试用移位寄存器74194实现该时序电路的功能。图 4-26 例4-17状态图 解解 图4-26所示状态图有5个状态,用1片74194及少量组合逻辑器件就可实现该电路的功能。为了尽量简化电路,根据移位寄存器模块74194的移位规律,A、B、C、D、E应分配连续移位的编码。5个状态,用3位二进制编码即可,也就是只需要使用74194的QAQBQC(假设采用右移方式)。状态分配如下:A011 B001 C100 D110 E111图 4-27 例4-17的编码状态图表表4-16 例例4-17中中74194的控制激励表的控制激励表 从控制激励表可直接写出 、S0、SR、A、B、

43、C的表达式分别为:CLRnAnAnAnCnBRQCQBQAQQSSCLR,1,10 S1用八选一数据选择器74151直接产生,且以QAQBQC为地址选择变量,数据选择表如表4-17所示。输出Z3、Z2、Z1和Z0用译码器74138实现。74138对QAQBQC进行译码,则Z3、Z2、Z1和Z0的输出表达式分别为110441662773,YMZYMZYMZYMZ图 4-28 例4-17的电路 【例4-18】用移位寄存器74194构成移位型00001101周期序列产生器。解解:实现周期序列产生器一般有两种方法。第一种方法如上一章介绍计数器的应用一样,利用计数器外加数据选择器的办法产生周期序列。序列

44、的周期M作为计数器的模,序列本身作为数据选择器的各路数据输入。本题序列周期为8,可将74194接为8进制扭环形计数器,然后外加一个数据选择器,就可产生特定的周期序列。第二种方法就是状态分配法,按照周期序列的顺序分配产生器的状态编码,以状态编码的方式来直接产生周期序列。此处介绍这种实现方法。由于要产生的序列为00001101,序列周期为8,所以至少需要3位二进制编码。考虑到移位寄存器的特点,采用3位分组,按照移位方式划分序列00001101,如图4-29所示。图 4-29 例4-18中按3位分组划分序列00001101采用4位分组划分序列00001101,如图4-30所示。图 4-30 例4-1

45、8中按4位分组划分序列00001101 从图4-30可见,采用4位分组后,能够唯一地确定状态,因而分组是可行的。产生00001101周期序列的状态图如图4-31所示,其中QA端输出的正是周期序列00001101。显然,用74194实现图4-31所示功能时,必须采用左移方式,左移数据输入端SL的卡诺图如图4-32所示,化简可得:CBCBACBCBALQQQQQQQQQQS图 4-31 例4-18的编码状态图图 4 32 SL的卡诺图110010001111000010001110QCQDQAQB图 4-33 移位型00001101周期序列产生器电路 在通信系统中,经常用到一种m序列产生器,它实际

46、上就是由n级移位寄存器经过线性反馈构成的周期为2n-1的移位型序列产生器。所谓线性反馈是指反馈函数F为移位寄存器的某些Q输出的异或函数。这种m序列产生器产生的序列中,0、1的出现概率几乎相同,常常称为伪随机序列。n10的m序列产生器反馈函数如表4-18所示,其中反馈函数接至首级Q0的输入端。例如,由74194构成的的一种4级m序列产生器电路及全状态图如图4-34所示。此处采用左移方式,QD相当于Q0,QA相当于Q3,从QA输出的m序列的周期为15。其中的无效循环可使用74194的置数功能来打破。表表4 18 n10的的m序列产生器反馈函数序列产生器反馈函数图 4-34 一种4级m序列产生器电路

47、及全状态图*4.4 异步计数器分析与设计异步计数器分析与设计4.4.1 异步计数器分析异步计数器分析 根据电路写出各个触发器的激励表达式和触发脉冲表达式;画出工作波形图;根据工作波形图列出状态表,画出状态图;根据状态图或状态表判断电路的逻辑功能。【例4-19】分析图4-35所示异步时序电路,指出其逻辑功能。图 4-35 例4-19电路nnnQCPKJ122211CPQQQCPKJnnnnn12011111CPCPKQQJnnnn111211解解各JK触发器的激励函数表达式为 图 4-36 例4-19的电路工作波形图 4-37 例4-19的全状态图000001010011100Q2Q1Q0101

48、1101114.4.2 异步计数器设计异步计数器设计 上一章介绍的非2n进制异步计数器的构成方法异步置0置1法,利用反馈支路将脉冲引导至2n进制计数器的某些触发器的异步置0端或异步置1端,使各级触发器在进入某一个状态后,通过反馈识别门产生反馈脉冲,使这些触发器在反馈脉冲的作用下产生额外的变化,从而实现非2n进制计数器。这种方法本质上属于脉冲反馈法,它存在两个缺陷。一个缺陷是由于暂态的存在导致波形毛刺,另一个缺陷是多个触发器异步置0置1时可能会因速度不同而导致不能可靠地将各个触发器置0或置1。除了这种脉冲反馈法外,非2n进制异步计数器还可以采用阻塞反馈法进行设计。它通过控制触发器的激励输入,阻止

49、某个状态的产生,强迫计数器进入另一个状态,从而实现任意进制的计数器。采用阻塞反馈法设计的异步计数器,可以有效地克服脉冲反馈法存在的不足,因而是异步计数器设计的主流方法。【例4-20】用JK触发器设计一个8421BCD码异步加法计数器。解解 8421BCD码异步加法计数器是一个十进制计数器,需要4个JK触发器构成。而4个触发器有16个状态,如果在计数过程中计数器从0000计数到1001时,能够阻塞10101111 6个状态产生,使下一个状态自动回到0000,就可以实现十进制计数。现在的主要工作就是确定各个触发器的激励和触发脉冲。观察表4-19所示的8421BCD计数器状态变化表,并注意标有*处的

50、情况。触发器Q0 每来1个CP脉冲时,状态就翻转1次,因此激励J0K0=11、CP0=CP。触发器Q1的状态变化都发生在Q0的下降沿,所以可以用Q0作为Q1的触发脉冲,即CP1=Q0,但Q0的第5个下降沿到来时Q1保持0状态不变,因此需控制Q1的激励J1、K1,使计数过程中Q0出现第5个下降沿时Q1仍保持0状态不变,可以借助卡诺图求出J1、K1的表达式。触发器Q2的状态变化都发生在Q1的下降沿,所以可以用Q1作为Q2的触发脉冲,即CP2=Q1,激励J2K2=11。触发器Q3的状态变化都发生在Q0的下降沿,所以可以用Q0作为Q3的触发脉冲,即CP3=Q0,但Q0的前面3个下降沿到来时Q3保持0状

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《数字电路与系统设计 》课件第4章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|