1、5.1 时序逻辑电路概述时序逻辑电路概述 组合逻辑电路:组合逻辑电路:在任何时刻产生的稳定输在任何时刻产生的稳定输出信号都仅与该时刻电路的输入信号相关。出信号都仅与该时刻电路的输入信号相关。如译码器,全加器,数据选择器。如译码器,全加器,数据选择器。 时序逻辑电路:时序逻辑电路:在任何时刻产生的稳定输在任何时刻产生的稳定输出信号不仅与电路该时刻的输入信号有关,出信号不仅与电路该时刻的输入信号有关,而且与电路过去的输入信号有关。如触发而且与电路过去的输入信号有关。如触发器,寄存器,计数器和移位寄存器等器,寄存器,计数器和移位寄存器等时序电路结构图时序电路结构图输输入入输输出出 q1qkz1zrz
2、1z2zmx1x2xn内内部部输输入入内内部部输输出出组合逻辑电组合逻辑电路路触发器触发器特点特点:包含组合逻辑电路和记忆(存储)电路;包含组合逻辑电路和记忆(存储)电路;在电路的结构上,具有反馈。在电路的结构上,具有反馈。 ),(),(),(2121212122212111knmmknknqqqxxxfyqqqxxxfyqqqxxxfy输输出出方方程程 ),(),(),(2121212122212111knrrknknqqqxxxgzqqqxxxgzqqqxxxgz驱驱动动方方程程 ),(),(),(2121121212122121111nknnrknknknnrnnknnrnqqqzzzh
3、qqqqzxzhqqqqzzzhq状状态态方方程程表示存储电路中每个触发器的现态表示存储电路中每个触发器的现态1121121,,nknnnknnqqqqqq表示每个触发器的次态表示每个触发器的次态时序逻辑电路的分类时序逻辑电路的分类 根据电路工作方式分类:根据电路工作方式分类: 同步时序电路:同步时序电路:各个触发器的时钟脉冲接在一起,即电路中各个触发器的时钟脉冲接在一起,即电路中有一个统一的时钟脉冲,每来一个时钟脉冲,电路的状态有一个统一的时钟脉冲,每来一个时钟脉冲,电路的状态只改变一次。只改变一次。 异步时序电路:异步时序电路:各个触发器的时钟脉冲不同,即电路中没有各个触发器的时钟脉冲不同
4、,即电路中没有统一的时钟脉冲来控制电路状态的变化,电路状态改变时,统一的时钟脉冲来控制电路状态的变化,电路状态改变时,电路中要更新状态的触发器的翻转有先有后,是异步进行电路中要更新状态的触发器的翻转有先有后,是异步进行的。的。 。 根据电路的输入根据电路的输入/ /输出关系分类:输出关系分类:米利(米利(Mealy)型电路:)型电路:某时刻的输出是该时刻的输入和电某时刻的输出是该时刻的输入和电路状态的函数路状态的函数摩尔(摩尔(Moore)型电路)型电路:某时刻的输出仅是该时刻电路状态:某时刻的输出仅是该时刻电路状态的函数,与该时刻的输入无关,如同步计数器。的函数,与该时刻的输入无关,如同步计
5、数器。同步时序电路的描述方法同步时序电路的描述方法 研究同步时序电路时,除逻辑函数表达式之外,研究同步时序电路时,除逻辑函数表达式之外,一般采用状态表、状态图去描述一个电路的逻辑一般采用状态表、状态图去描述一个电路的逻辑功能。功能。1、逻辑函数表达式、逻辑函数表达式 (1) 输出函数表达式输出函数表达式 反映电路输出反映电路输出Z与输入与输入x和状态和状态y之间关系表达式之间关系表达式 (2) 激励函数表达式激励函数表达式 反映存储电路的输入反映存储电路的输入Y与电路输入与电路输入x和状态和状态y之间的关系之间的关系 (3) 次态函数表达式次态函数表达式 反映同步时序电路次态反映同步时序电路次
6、态yn+1与激励函数与激励函数y和现态和现态yn2、状态表、状态表 反映同步时序电路输出反映同步时序电路输出Z、次态、次态yn+1和电路输入和电路输入x,现态,现态y之间关系的表格。之间关系的表格。3、状态图、状态图 反映同步时序电路状态转移规律及相应输入反映同步时序电路状态转移规律及相应输入/输输出取值关系的有向图。出取值关系的有向图。4、时间图、时间图 用波形图的形式来表示输入信号、输出信号和用波形图的形式来表示输入信号、输出信号和电路状态等的取值在各时刻的对应关系。电路状态等的取值在各时刻的对应关系。同步时序逻辑电路分析同步时序逻辑电路分析 所谓时序逻辑电路分析,就是对一个给定所谓时序逻
7、辑电路分析,就是对一个给定的时序逻辑电路,研究在一系列输入信号的时序逻辑电路,研究在一系列输入信号作用下,电路将会产生怎样的输出,进而作用下,电路将会产生怎样的输出,进而说明该电路的逻辑功能。说明该电路的逻辑功能。 分析过程和方法分析过程和方法 求取上面的几个步骤求取上面的几个步骤逻辑电逻辑电路图路图列列驱动方程驱动方程和和输出方程输出方程表达式表达式状态方程状态方程画画状态图状态图、状态表状态表或或时时序图序图分析电路分析电路逻辑功能逻辑功能1235写次态变写次态变化真值表化真值表4例例1:分析如下图时序逻辑电路:分析如下图时序逻辑电路 解:列写方程解:列写方程 时钟方程时钟方程: CP0=
8、CP1=CP2=CP 输出方程输出方程: C=Qn0Qn1Qn2 驱动方程驱动方程: J0=K0=1, J1=K1=Qn0, J2=K2=Qn0Qn1 (2)将驱动方程代入)将驱动方程代入JK触发器的特性方程触发器的特性方程,求各个求各个触发器的状态方程。触发器的状态方程。JK触发器的特性方程为触发器的特性方程为 各个触发器的状态方程为各个触发器的状态方程为 (3)根据状态方程和输出方程进行计算)根据状态方程和输出方程进行计算,列状态表列状态表,nn+1nQ=JQ +KQn+0n10nnn+1nn10101nn+1nnnnn2201012Q=QQ=Q Q +Q Q Q=Q Q Q +Q Q Q
9、同步时序逻辑电路的状态表同步时序逻辑电路的状态表画状态图画状态图画时序图画时序图Q0Q0FF0 FF1CP YQ1Q11T C11T C1&=1 X“1”例例2、分析下面电路的功能、分析下面电路的功能输出方程:输出方程:输出与输入有关,输出与输入有关,为为Mealy型时序电型时序电路。路。同步时序电路,时钟方程省去。同步时序电路,时钟方程省去。驱动方程:驱动方程:1写写方方程程式式n1n1QXQXY 1TQXT0n01 n0n0n00n0n1n0n111n1QQ1QTQQQXQTQ2求状态方程求状态方程T触发器的特性方程:触发器的特性方程:将各触发器的驱动方程代入,即得电路的状态方程:将各触发
10、器的驱动方程代入,即得电路的状态方程:n1nQTQ 3计算、列状态表计算、列状态表n1n0n0n1n01n1QXYQQQQXQ 100100000011YQQnn100011100011YQQnn110101010011YQQnn110010110011YQQnn001101001011YQQnn001010101011YQQnn111100011011YQQnn111Y01Q1111Qn01n1 4 00 01 11 10 0/1 1/0 1/1 0/1 0/1 0/0 1/1 0/1 CP X Q0 Q1 Y (a) 状状态态图图 (b) 时时序序图图 5电电路路功功能能由状态图可以看出,
11、当输入由状态图可以看出,当输入X 0时,在时钟脉冲时,在时钟脉冲CP的作用下,电路的的作用下,电路的4个状态按递增规律循环变化,即:个状态按递增规律循环变化,即:0001101100当当X1时,在时钟脉冲时,在时钟脉冲CP的作用下,电路的的作用下,电路的4个状态个状态按递减规律循环变化,即:按递减规律循环变化,即:0011100100可见,该电路既具有递增计数功能,又具有递减计数可见,该电路既具有递增计数功能,又具有递减计数功能,是一个功能,是一个2位二进制同步可逆计数器。位二进制同步可逆计数器。画状态图画状态图时序图时序图CPQ2Q21D C11D C1Q1Q1FF0 FF1 FF21D C
12、1Q0Q0电路没有单独的输出,为穆尔型时序电路。电路没有单独的输出,为穆尔型时序电路。异步时序电路,时钟方程:异步时序电路,时钟方程:驱动方程:驱动方程:1写写方方程程式式CPCPQCPQCP00112 ,n00n11n22QDQDQD , 上升沿时刻有效上升沿时刻有效上升沿时刻有效上升沿时刻有效上升沿时刻有效上升沿时刻有效CP QDQQ QDQQ QDQn001n00n111n11n221n2DQ1n 2求状态方程求状态方程D触发器的特性方程:触发器的特性方程:将各触发器的驱动方程代入,即得电路的状态方程:将各触发器的驱动方程代入,即得电路的状态方程:3计算、列状态表计算、列状态表 CP Q
13、QQ QQQ QQn01n00n11n11n21n2CP, 10Q, 10Q , 1010011112nnnQQQCP, 0100101112nnnQQQ不变不变CP, 10Q, 0101001112nnnQQQ不变CP, 0110101112nnnQQQ不变不变CP, 10Q, 10Q , 0110011112nnnQQQCP, 010 , 1101112nnnQQQ不变不变CP, 10Q, 0111001112nnnQQQ不变 CP, 01Q1Q1Q1n01n11n2不变不变不变不变 000001010011 111110101100 (a) 状态图状态图 (b) 时序图时序图 CP Q0
14、 Q1 Q2 排列顺序排列顺序:nnnQQQ012 45电路功能电路功能由状态图可以看出,在时钟脉冲由状态图可以看出,在时钟脉冲CP的作用下,电路的的作用下,电路的8个状个状态按递减规律循环变化,即:态按递减规律循环变化,即:000111110101100011010001000电路具有递减计数功能,是一个电路具有递减计数功能,是一个3位二进制异步减法计数器。位二进制异步减法计数器。画状态图、时序图画状态图、时序图同步时序逻辑电路的设计同步时序逻辑电路的设计设计步骤设计步骤建立原始状态表建立原始状态表 直接从设计命题的文字描述得到的状态表直接从设计命题的文字描述得到的状态表称为原始状态表。称为
15、原始状态表。 对时序命题的逻辑功能有了清楚的了解之对时序命题的逻辑功能有了清楚的了解之后,才能建立正确的原始状态表。所谓正后,才能建立正确的原始状态表。所谓正确也就是原始状态表中,状态个数不能少,确也就是原始状态表中,状态个数不能少,状态之间的转移关系不能错。状态之间的转移关系不能错。 例一:某序列检测器有一个输入端例一:某序列检测器有一个输入端x和一个输出端和一个输出端Z。从。从x端输入一组按时间顺序排列的串行二进制端输入一组按时间顺序排列的串行二进制码。当输入序列中出现码。当输入序列中出现101时,输出时,输出Z1,否则,否则Z0。试作出该序列检测器的原始状态表和原始状。试作出该序列检测器
16、的原始状态表和原始状态图。态图。 解题分析:解题分析: (1) 逻辑功能框图逻辑功能框图序列检测器序列检测器xZCP 例二:假设某同步时序电路,用于检测串行输入的例二:假设某同步时序电路,用于检测串行输入的8421BCD码,其输入的顺序是先高位后低位,当出现非码,其输入的顺序是先高位后低位,当出现非法数字法数字(即输入即输入1010,1011,1100,1101,1110,1111)时,电路的输出为时,电路的输出为1。试作出该时序电路的原始状态表和。试作出该时序电路的原始状态表和原始状态图。原始状态图。 解题分析:解题分析: 根据题意,该电路有一个输入根据题意,该电路有一个输入x,用来接收,用
17、来接收8421BCD码,码,对于所接收的对于所接收的8421BCD码判别,用输出码判别,用输出Z来指示。来指示。 要求对输入的二进制码四位一组一组的检测,要检测的要求对输入的二进制码四位一组一组的检测,要检测的序列有序列有16种,这样我们建立原始状态图的过程就不同了。种,这样我们建立原始状态图的过程就不同了。 例三:某一引爆装置,当引爆开关例三:某一引爆装置,当引爆开关x闭合后闭合后(x1),经过经过4个时钟脉冲周期,即电路的输入序列个时钟脉冲周期,即电路的输入序列x1111时,发出引爆信号时,发出引爆信号(Z=1),使炸药包引爆。试,使炸药包引爆。试作出该引爆装置的原始状态图和状态表。作出该
18、引爆装置的原始状态图和状态表。 解题分析:解题分析: 1、 根据题意,设电路的初始状态为根据题意,设电路的初始状态为S0,3、当接收到第二个、当接收到第二个1时,电路状态由时,电路状态由S1转移到转移到S2;2、当电路接收到第一个、当电路接收到第一个1时,电路的状态由时,电路的状态由S0转移到转移到S1;4、接收到第三个、接收到第三个1时,电路状态由时,电路状态由S2转移到转移到S3;5、当接收到第四个、当接收到第四个1时,引爆装置将同炸药包一起爆炸,时,引爆装置将同炸药包一起爆炸,因此因此S3的次态可以为任意状态,用字母的次态可以为任意状态,用字母“d”表示,但是表示,但是输出应为输出应为1
19、。状态化简状态化简 第一步作出的状态图和状态表不一定是最简的,第一步作出的状态图和状态表不一定是最简的,可能包含多余状态,状态个数的多少直接影响时可能包含多余状态,状态个数的多少直接影响时序电路所需触发器的数目。因此需要对状态表进序电路所需触发器的数目。因此需要对状态表进行化简,减少触发器和逻辑门的数目。行化简,减少触发器和逻辑门的数目。 状态化简,就是从原始的状态表中消去冗余状态,状态化简,就是从原始的状态表中消去冗余状态,得到一个最小化状态表。这个最小化状态表既能得到一个最小化状态表。这个最小化状态表既能表征逻辑命题的全部要求,而且状态数又最少。表征逻辑命题的全部要求,而且状态数又最少。
20、对于完全确定状态表和不完全确定状态表的化简对于完全确定状态表和不完全确定状态表的化简方法有不同,分别讨论方法有不同,分别讨论完全确定状态表的化简完全确定状态表的化简 几个概念几个概念 等效状态:设状态等效状态:设状态S1和和S2是完全确定状态表是完全确定状态表中的两个状态,如果对于所有可能的输入序列,中的两个状态,如果对于所有可能的输入序列,分别从状态分别从状态S1和状态和状态S2出发,所得到的输出响应出发,所得到的输出响应序列完全相同,则状态序列完全相同,则状态S1和和S2是等效的,记作是等效的,记作(S1,S2),或者说,状态,或者说,状态S1和和S2是等效对。是等效对。 这里所说的所有可
21、能的输入序列,是指输入序这里所说的所有可能的输入序列,是指输入序列的长度和结构是任意的,它包含无穷多位,且列的长度和结构是任意的,它包含无穷多位,且有无穷多种组合。有无穷多种组合。 等效状态的传递性:若状态等效状态的传递性:若状态S1和和S2等效,状态等效,状态S2和和S3等效,则状态等效,则状态S1和和S3也等效。也等效。 (S1,S2), (S2,S3) (S1,S2,S3) 等效类:彼此等效的状态集合,称为等效类。若等效类:彼此等效的状态集合,称为等效类。若有有(S1,S2)和和(S2,S3),则有,则有(S1,S2,S3) 最大等效类:若一个等效类不是任何其它等效类最大等效类:若一个等
22、效类不是任何其它等效类的子类,则此等效类称为最大等效类。的子类,则此等效类称为最大等效类。即即S2S2,S3S3在相同的输入序列下,次态和输出完全相同。例如,在相同的输入序列下,次态和输出完全相同。例如,X=10111X=10111,初态为,初态为S2S2和和S3S3时的次态和输出如下:时的次态和输出如下: S2 S2,S3S3可合并为一个状态,合并后用可合并为一个状态,合并后用S2S2代替。画简后的代替。画简后的状态转换图和转换表如下:状态转换图和转换表如下: 完全确定状态化简的完全确定状态化简的一般化简步骤一般化简步骤: (1) (1) 画状态隐含表画状态隐含表 (2) (2) 顺序比较,
23、找相等状态对顺序比较,找相等状态对 (3) (3) 关连比较,找最大相等类关连比较,找最大相等类 (4) (4) 确定最终的状态数确定最终的状态数 隐含表方法隐含表方法:先对原始状态表中的各状态进行两:先对原始状态表中的各状态进行两两比较,找出等价状态对;然后利用等价的传递两比较,找出等价状态对;然后利用等价的传递性,得到等价类;最后确定一组等价类,以建立性,得到等价类;最后确定一组等价类,以建立最简状态表。最简状态表。化简方法化简方法1. 画状态隐含表画状态隐含表 隐含表是一个直角三角形网,两边网格隐含表是一个直角三角形网,两边网格数相等,等于状态数减数相等,等于状态数减1 1。 隐含表隐含
24、表2. 顺序比较顺序比较 比较结果有三种:比较结果有三种: a 在输入作用下,两状态的输出不等,则这两个状态在输入作用下,两状态的输出不等,则这两个状态不等价,以不等价,以“X”表示;表示; b 在输入作用下,两状态的输出相等,所得到的次态在输入作用下,两状态的输出相等,所得到的次态也相同或交错相等,则两个状态等价,也相同或交错相等,则两个状态等价, 以以“”表示;表示; c 在输入作用下,两状态的输出相等,但次态不同,在输入作用下,两状态的输出相等,但次态不同,则这两个状态需要进一步比较(关连比较)才能确定是否则这两个状态需要进一步比较(关连比较)才能确定是否等价。等价。 根据等价状态的定义
25、,两个状态是否等价的根据等价状态的定义,两个状态是否等价的条件可归纳为两点:条件可归纳为两点: 第一,在各种输入取值下,它们的输出完全相同。第一,在各种输入取值下,它们的输出完全相同。 第二,在第一个条件满足的前提下,它们的次态第二,在第一个条件满足的前提下,它们的次态满足下列条件之一,即:满足下列条件之一,即: 次态相同;次态相同; 次态交错;次态交错; 次态循环;次态循环; 次态对等价。次态对等价。 判断两个状态是否等价判断两个状态是否等价3. 关连比较关连比较 进一步比较隐含表中所填的状态是否等价,可在隐含表上进一步比较隐含表中所填的状态是否等价,可在隐含表上直接比较。有时需要多次比较才
26、能确定两个状态是否等价。直接比较。有时需要多次比较才能确定两个状态是否等价。 上表中如果要确定上表中如果要确定A,B是否等价,则必须确定是否等价,则必须确定B,E是否是否等价。从隐含表中看出等价。从隐含表中看出B,E不等价,所以不等价,所以A,B也不等价。也不等价。同理,同理,A,C也不等价。最后得到下图所示的隐含表。也不等价。最后得到下图所示的隐含表。 4. 确定最终的状态数确定最终的状态数 经过上述步骤后,即可确定出各个最大等价类。经过上述步骤后,即可确定出各个最大等价类。每个最大等价类只保留一个状态。每个最大等价类只保留一个状态。 本例中的最大等价类有本例中的最大等价类有3个:个:A,(
27、B,C),(D,E),每个等价类只保留一个状态:,每个等价类只保留一个状态:A,B,D,则化简结果如下表:则化简结果如下表: 状态化简实例状态化简实例 1:化简如下状态表化简如下状态表 从关连比较结果得出以下五个等价类:(从关连比较结果得出以下五个等价类:(A,E),(),(B,F),),C,D,G。 以状态以状态 A,B,C ,D,G 作为最终状态作为最终状态则化简后的状态表如下:则化简后的状态表如下: 不完全确定状态表的化简不完全确定状态表的化简 对于某个状态的对于某个状态的可应用可应用定义定义 一个输入序列对于某个初始状态是一个输入序列对于某个初始状态是可应用的定义可应用的定义:为机:为
28、机器处于该初始状态时,在输入序列作用下所有的后续状态器处于该初始状态时,在输入序列作用下所有的后续状态都是确定的。都是确定的。状态相容状态相容不完全确定状态化简的一般化简步骤不完全确定状态化简的一般化简步骤: (1) (1) 画状态隐含表画状态隐含表 (2) (2) 顺序比较,找相容状态对顺序比较,找相容状态对 (3) (3) 画合并图,找最大相容类画合并图,找最大相容类 (4) (4) 作出最简状态表作出最简状态表 这一组相容类必须满足以下这一组相容类必须满足以下3 3个条件个条件:覆盖性覆盖性:所选相容类集合应包含原始状态表的全部状:所选相容类集合应包含原始状态表的全部状态。态。最小性最小
29、性:所选相容类个数应最小。:所选相容类个数应最小。闭合性闭合性:所选相容类集合中的任一相容类,在原始状:所选相容类集合中的任一相容类,在原始状态表中任一输入条件下产生的次态应该属于该集合中态表中任一输入条件下产生的次态应该属于该集合中的某一个相容类。的某一个相容类。同时具有覆盖、最小、闭合三个条件的相容类集同时具有覆盖、最小、闭合三个条件的相容类集合,称为最小闭覆盖,这就组成了最简状态表。合,称为最小闭覆盖,这就组成了最简状态表。 1、作隐含表,找相容状态对、作隐含表,找相容状态对 2、作合并图,求最大相容类、作合并图,求最大相容类 由上图找出两个最大相容类:由上图找出两个最大相容类:(A,B
30、,F), (B,C,D,E,F) 3、作最简状态表、作最简状态表 相容类相容类覆覆 盖盖闭闭 合合ABCDEFx=0 x=1ABFABFBCDBCDEFBCDEFABFCDE Qx01ZA1A1B1B10B1A1B11 所谓状态分配,是指给最小化状态表中的所谓状态分配,是指给最小化状态表中的每个字母或数字表示的状态,指定一个二进每个字母或数字表示的状态,指定一个二进制代码,形成二进制状态表。制代码,形成二进制状态表。 电路的状态是触发器状态的组合。如果电电路的状态是触发器状态的组合。如果电路有路有N个状态,个状态,2n-1N2n,则可用,则可用n个触发器个触发器来实现。来实现。状态分配状态分配
31、(编码编码) 例如:四个状态例如:四个状态A,B,C,D可用可用2个触发器实现,个触发器实现,状态分配方案有多种状态分配方案有多种, ,下表列出了其中下表列出了其中3种。种。 ABCD方案一方案一00011011方案二方案二11100100方案三方案三00110110 在在N2n 情况下,从情况下,从2n 个状态中选取个状态中选取N个状态的个状态的组合方案共有:组合方案共有: )!2(!2Nnn 而而N个状态的排列有个状态的排列有 N!种,所以状态分配方案共种,所以状态分配方案共有:有: )!2( !22NNCnnNn 状态分配的原则为:状态分配的原则为:(1) 在相同输入条件下,在相同输入条
32、件下,具有相同次态的现具有相同次态的现态,应尽可能分配相邻的二进制代码态,应尽可能分配相邻的二进制代码。(2) 在不同输入条件下,在不同输入条件下,同一现态的次态应同一现态的次态应尽可能分配相邻的二进制代码尽可能分配相邻的二进制代码。 (3) 输出完全相同输出完全相同的现态应尽可能分配相邻的现态应尽可能分配相邻的二进制代码的二进制代码。 以上以上3个原则中,第一条最重要,应优先考个原则中,第一条最重要,应优先考虑。虑。 例例 :对下表中的最简状态表进行状态分配:对下表中的最简状态表进行状态分配 QX01AC/0 D/0BC/0 A/0CB/0 D/0DA/1 B/1解解: 有有4 4个状态,选
33、用两位触发器个状态,选用两位触发器y1y0y1y0。 根据原则根据原则(1),AB,AC应相邻编码;应相邻编码; 根据原则根据原则(2),CD,AC,BD,AB应相邻编码;应相邻编码; 根据原则根据原则(3),AB,AC,BC应相邻编码。应相邻编码。 综合上述要求,综合上述要求,AB,AC应给予相邻编码,这是应给予相邻编码,这是三个原则都要求的。三个原则都要求的。借用卡诺图,很容易得到满足上述相邻借用卡诺图,很容易得到满足上述相邻要求的状态分配方案要求的状态分配方案 求激励函数和输出函数求激励函数和输出函数 (1)将二进制状态表变换成将二进制状态表变换成Y-Z矩阵矩阵 Y-Z矩阵描述在现态和输
34、入共同作用下的次态矩阵描述在现态和输入共同作用下的次态情况,已经现态和输入共同决定的输出结果。情况,已经现态和输入共同决定的输出结果。 (2)由由Y-Z矩阵变换成激励矩阵和输出矩阵矩阵变换成激励矩阵和输出矩阵 激励矩阵描述由现态和输入决定的激励的情激励矩阵描述由现态和输入决定的激励的情况。况。画逻辑电路图画逻辑电路图(1) 先画出所选的触发器,并按状态表中状态先画出所选的触发器,并按状态表中状态变量的顺序给触发器编号。变量的顺序给触发器编号。(2) 根据激励函数表达式和输出函数表达式,根据激励函数表达式和输出函数表达式,画出组合逻辑部分的逻辑电路图。画出组合逻辑部分的逻辑电路图。(3) 最后画
35、出同步时钟信号线最后画出同步时钟信号线同步时序逻辑电路设计举例同步时序逻辑电路设计举例 例一、有一个串行数据检测器。对它的要求是:例一、有一个串行数据检测器。对它的要求是:连续输入连续输入3个或个或3个以上的个以上的1时输出为时输出为1,其他输入,其他输入情况输出为情况输出为0。例如:。例如: 输入序列输入序列 x: 1 0 1 1 0 0 1 1 1 0 1 1 1 1 0 输出序列输出序列 Z: 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 解:解: 第一步:根据题意,建立原始状态图,原始状态表。第一步:根据题意,建立原始状态图,原始状态表。 设电路初始状态为设电路初始状态为
36、A, 接收第一个接收第一个1后,用状态后,用状态B标记;标记; 连续接收连续接收2个个1后,用状态后,用状态C标记;标记; 连续接收连续接收3个或个或3个以上的个以上的1后,用状态后,用状态D标记标记第二步:状态化简。第二步:状态化简。 (1) 观察法观察法 (2) 隐含表法隐含表法 得到最大等效类为得到最大等效类为 (A), (B), (C,D)第三步:状态编码。第三步:状态编码。 最小化状态表中有最小化状态表中有3个状态,故状态编码的长度为个状态,故状态编码的长度为2,由状态分配的基本原则可分别得:由状态分配的基本原则可分别得: (1) 相同输入,同样次态对应的现态相邻编码:相同输入,同样
37、次态对应的现态相邻编码: AB、AC、BC (2) 不同输入,同样现态对应次态相邻编码:不同输入,同样现态对应次态相邻编码: AB、AC (3) 输出完全相同的现态应相邻编码:输出完全相同的现态应相邻编码: AB 因为状态因为状态B和和C在所有输入条件下次态均相同,故在所有输入条件下次态均相同,故B、C若若分配相邻代码,可获得最简表达式。分配相邻代码,可获得最简表达式。第四步:确定激励函数和输出函数表达式。第四步:确定激励函数和输出函数表达式。 填入卡诺图并进行化简后填入卡诺图并进行化简后 XKXJ 11XKXYJ 2122XYZ 第五步:检查无用状态。第五步:检查无用状态。 当所设计的电路中
38、,触发器能表示的状态数大当所设计的电路中,触发器能表示的状态数大于有效状态数时,需要对所设计的电路进行实际于有效状态数时,需要对所设计的电路进行实际工作状态讨论。工作状态讨论。 讨论两个问题:讨论两个问题: (1) 电路万一进入无用状态,能否在时钟脉冲作用电路万一进入无用状态,能否在时钟脉冲作用下进入有效状态,也即能否具有自恢复功能和自下进入有效状态,也即能否具有自恢复功能和自启动功能。启动功能。 (2) 电路万一处在无用状态,是否会产生错误信号。电路万一处在无用状态,是否会产生错误信号。 一但出现以上两个问题都必须修改电路设计,一但出现以上两个问题都必须修改电路设计,否则将影响电路工作的可靠
39、性和正确性。否则将影响电路工作的可靠性和正确性。 第六步:画出逻辑电路图。第六步:画出逻辑电路图。例二:设计一个三位二进制的例二:设计一个三位二进制的串行奇校验串行奇校验电路。该电路。该电路在输入端电路在输入端X X上串行的接收三位二进制数,当第上串行的接收三位二进制数,当第三位数码到来时,如果已收到的三位数码到来时,如果已收到的1 1的个数为偶数,的个数为偶数,则电路输出为则电路输出为1 1,其余情况输出均为,其余情况输出均为0 0。在接收到。在接收到第三位数码后,电路回复到初始状态,等待下一第三位数码后,电路回复到初始状态,等待下一个三位二进制的校验。个三位二进制的校验。解:解: 第一步:
40、根据题意,建立原始状态图,原始状第一步:根据题意,建立原始状态图,原始状态表。态表。 第二步:状态化简。第二步:状态化简。 第三步:状态编码。第三步:状态编码。 第四步:确定激励函数和输出函数表达式。第四步:确定激励函数和输出函数表达式。 第五步:画逻辑电路图。第五步:画逻辑电路图。例三:设计一个两位串行输入、并行输出双向移位例三:设计一个两位串行输入、并行输出双向移位寄存器。该寄存器有寄存器。该寄存器有X1X1和和X2X2两个输入端,其中两个输入端,其中X2X2为控制端,用于控制移位方向,为控制端,用于控制移位方向,X1X1为数据输入端。为数据输入端。当当X2X20 0时,时,X1X1往寄存
41、器高位串行送数,寄存器钟往寄存器高位串行送数,寄存器钟的数据从高位移向低位;当的数据从高位移向低位;当X2X21 1时,时,X1X1往寄存器往寄存器低位串行送数,寄存器中的数据从低位移向高位。低位串行送数,寄存器中的数据从低位移向高位。寄存器的输出为触发器状态本身。寄存器的输出为触发器状态本身。 例四:设计一位例四:设计一位8421BCD码同步加码同步加1计数计数器,用器,用T触发器实现之。触发器实现之。 解解 第一步:建立原始状态表。第一步:建立原始状态表。 要设计的计数器的工作状态很有规律,即计数要设计的计数器的工作状态很有规律,即计数状态为状态为 0000 0001 0010 1000
42、1001 第二步:状态化简。第二步:状态化简。 很明显原始状态表中的所有状态都不能缺少。很明显原始状态表中的所有状态都不能缺少。 第三步:状态分配。第三步:状态分配。 第四步:确定激励函数和输出函数表达式。第四步:确定激励函数和输出函数表达式。 第五步:检查无用状态。第五步:检查无用状态。 以上设计的计数电路共存在以上设计的计数电路共存在16种状态,其种状态,其中中10种有效状态为种有效状态为00001001,6种无用状种无用状态为态为10101111。现检查,如果用已确定的。现检查,如果用已确定的激励函数和输出函数实现电路,电路是否具激励函数和输出函数实现电路,电路是否具有自恢复能力。有自恢
43、复能力。 例四:设计一个自动售饮料机的逻辑电路,例四:设计一个自动售饮料机的逻辑电路,它的投币口每次只能投入一枚五角或一元的它的投币口每次只能投入一枚五角或一元的硬币。投入一元五角硬币后机器自动给出一硬币。投入一元五角硬币后机器自动给出一杯饮料;投入两元杯饮料;投入两元( (两枚一元两枚一元) )硬币后,在给硬币后,在给出饮料的同时找回一枚五角的硬币。出饮料的同时找回一枚五角的硬币。 第一步:画原始状态图和原始状态表。第一步:画原始状态图和原始状态表。 取投币信号为输入逻辑变量,投入一枚一元硬取投币信号为输入逻辑变量,投入一枚一元硬币时用币时用A=1表示,未投入时表示,未投入时A=0;投入一枚
44、五角;投入一枚五角硬币用硬币用B=1表示,未投入时表示,未投入时B=0。给出饮料和找钱。给出饮料和找钱为两个输出变量,分别以为两个输出变量,分别以Y,Z表示。给出饮料时表示。给出饮料时Y=1,不给时,不给时Y=0;找回一枚五角硬币时;找回一枚五角硬币时Z=1,不,不找时找时Z=0。 设未投币前电路的初始状态为设未投币前电路的初始状态为S0,投入五角硬币以后为,投入五角硬币以后为S1,投,投入一元硬币入一元硬币(包括投入一枚一元硬币和投入两枚五角硬币的情况包括投入一枚一元硬币和投入两枚五角硬币的情况)以后为以后为S。再投入一枚五角硬币后电路返回。再投入一枚五角硬币后电路返回S0,同时输出为,同时
45、输出为Y=1,Z=0;如果投入的是一枚一元硬币,则电路也应返回;如果投入的是一枚一元硬币,则电路也应返回S0,同时输出为同时输出为Y=1,Z=1。因此,电路的状态数。因此,电路的状态数M=3已足够。已足够。 现态AB 00011110S0S0/00S1/00d/ddS2/00S1S1/00S2/00d/ddS0/10S2S2/00S0/10d/dd S0/11 状态分配。由于状态表中有状态分配。由于状态表中有3个状态,取触发器的位数个状态,取触发器的位数n=2,即,即Q1Q0就满足要求,假如令就满足要求,假如令S0=00,S1=01,S2=10,Q1Q0=11作无关状态,则得二进制状态表作无关
46、状态,则得二进制状态表(Y-Z矩矩阵阵)如表所示。如表所示。若电路选用若电路选用D触发器实现,则刚刚求出触发器实现,则刚刚求出的的Y-Z矩阵中的矩阵中的Y矩阵也就是激励矩阵。矩阵也就是激励矩阵。二进制状态表二进制状态表(Y-Z矩阵矩阵) Q1Q0AB000111100000/0001/00dd/dd10/000101/0010/00dd/dd00/1011dd/dddd/dddd/dddd/dd1010/0000/10dd/dd00/11 根据卡诺图可得激励函数和输出函数的表根据卡诺图可得激励函数和输出函数的表达式为达式为 BQAQQBAQD00111BAQBQQD0010AQZ1 这个电路用
47、这个电路用VHDL语言的状态图语言的状态图描述方法描述如下:描述方法描述如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity vendor is port ( clk, A,B,RD: in std_logic; Y,Z: out std_logic); end vendor;architecture one of vendor is type state_type is (s0,s1,s2); -用户自己定义的枚举类型用户自己定义的枚举类型 signal state : s
48、tate_type; -信号声明信号声明begin process(clk, RD) -状态转移进程,状态转移进程,clk,RD为敏感信号为敏感信号 begin if RD=0 then stateif A=1 then state=s2; elsif B=1 then stateif A =1 then state=s0; elsif B=1 then stateif A =1or B=1 then state if A=1 then Y=1; -输出值取决于输入值与现态输出值取决于输入值与现态 Z if A=1 then Y=1; -输出值取决于输入值与现态输出值取决于输入值与现态 Z=1; elsif B=1then Y=1; Z Y=0;Z=0; -其余情况输出为零其余情况输出为零 end case; end process;end one;