《同步时序电路设计.ppt》由会员分享,可在线阅读,更多相关《同步时序电路设计.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、现在学习的是第1页,共46页内容:内容:同步时序逻辑电路的设计目的与要求:目的与要求:1.掌握同步时序电路的设计方法2.通过举例、做练习掌握方法。重点与难点:重点与难点:1.同步时序电路的状态设定、状态化简、状态分配2.同步时序电路设计中驱动方程的求解3.能否自启动的判断思考:思考:若设计异步时序电路,与同步时序电路应有不同?复习(提问):复习(提问):1同步时序电路的分析方法2何谓自启动?现在学习的是第2页,共46页设计步骤:设计步骤:1根据设计要求,设定状态,画出原始状态转换图。2状态化简3状态分配,列出状态转换编码表4选择触发器的类型,求出状态方程、驱动方程、输出方程5根据驱动方程和输出
2、方程画逻辑图。6检查电路有无自启动能力思考:若设计异步时序电路,与同步时序电路应有何不同?同步时序逻辑电路设计同步时序逻辑电路设计 同步时序电路的设计是分析的逆过程。是根据对设计要求的分析得到的状态图,设计出同步时序逻辑电路的过程。一般情况下,由具体要求得到状态图的过程比较复杂,没有特定的规律和方法,其间需要设计者的理解和经验积累。现在学习的是第3页,共46页1.1.建立原始状态图建立原始状态图 原始状态图:直接从设计命题的文字描述得到的状态图。状态图和状态表能反映同步时序电路的逻辑功能,所以它是设计同步时序电路的依据。建立原始状态图的步骤:假定一个初态S0。从S0出发,每加入一个要记忆的输入
3、信号,就用其次态“记忆”,并标出相应的输出值。该次态可能是S0本身,也可能是另一个已有的状态,也可能是新增的状态。重复直到没有新的状态出现,并且从每个状态出发,输入的各种可能取值引起的状态转移均已考虑。现在学习的是第4页,共46页例1 按下图作出101序列检测器的Mealy型原始状态图和状态表。(当输入序列出现101时,输出Z=1,否则Z=0)解:电路必须记住1、10、101三种输入情况,因此把需要记忆的每一种输入情况与电路的一个状态相对应。1)假定电路的初始状态为S0,且输入X=1,电路状态由S0转移到S1,输出Z=0;2)输入X=0,状态由S1转移到S2,输出Z=0;3)再输入X=1,状态
4、由S2转移到S3,输出Z=1。由此可得部分状态图。(部分状态图只考虑了输入“101”的情况,实际上当电路处于某一状态时,输入X可能为1,也可能为0。因此这个状态图是不完整的)现在学习的是第5页,共46页 4)由部分原始状态图,对每个状态进行分析得到完整的原始状态图,根据原始状态图可得到原始状态表如下。当电路处于初始状态S0,若输入为0,电路应停留在S0,因为“101”序列不是从0开始。当电路处于S1态时,若输入为1,状态应保持S1,因为它可能是下一个“101”的开始。当电路处于S2态时(已经收到10序列),若输入为0,则不是要检测的序列,电路返回到S0态,准备重新开始检测101序列。当电路处于
5、S3态时,若输入1,则可能是另一个101的开始,应转移到S1态;若输入0,从给定的典型输入输出序列看,输入序列101中最后的“1”可能是新的101序列中的第一个1,因此状态应从S3转移到S2,而不是转移到S0。通过上述分析,就可得到完整的原始状态图。现在学习的是第6页,共46页原始状态图的画法举例例1、某序列检测器由一个输入端X和一个输出端Z。输入端X输入一串随机的二进制代码,当输入序列中出现011时,输出Z产生一个1输出,平时Z输出0。试做出该序列检测器的原始状态图。(mealy型实现)演示例2、某同步时序电路用于检测串行输入的8421码,其输入的顺序是先低位后高位,当出现非法数字时,电路的
6、输出为1。试做出该时序电路的mealy模型状态图。演示现在学习的是第7页,共46页例3、设计一个用于引爆控制的同步时序电路,该电路有一个输入端X和一个输出端Z。平时输入X始终为0,一旦需要引爆,则从X连续输入4个1信号(不被0间断),电路收到第4个1后在输出端Z产生一个1信号点火引爆,该电路连同引爆装置一起被炸毁。试建立该电路的mealy型状态图。演示原始状态图的画法举例(不完全确定状态图)现在学习的是第8页,共46页完全确定状态表:完全确定状态表:状态表中的次态和输出都有确定状态和确定的输出值。如本例的状态表。不完全确定状态表:不完全确定状态表:存在任意项的状态表。一般情况下,不要求在状态图
7、中标出任意项,这些不可能出现的情况是隐含的。或者说,在状态图中,凡没有表示的情况都是不可能出现的,因此状态图不分完全确定状态图和不完全确定状态图。在完整的原始状态图和状态表中,状态的数目可能有冗余。因此需要进行状态化简。现在学习的是第9页,共46页2.状态化简状态化简 从原始状态表中消去冗余状态,得到最小化状态表的过程。即使状态表既能表征逻辑命题的全部要求,而状态数又最少。1)完全确定状态表的化简(建立在完全确定状态表的化简(建立在“状态等效状态等效”的概念上)的概念上)等效状态:等效状态:对所有可能的输入序列可能的输入序列(长度和结构任意、无穷多位、无穷多种组合),分别从状态S1和S2出发,
8、所得到的输出响应序列完全相同,则S1、S2等效,或称S1、S2是等效对,记作(S1,S2)。等效状态可以合并。等效状态的传递性等效状态的传递性:若(S1,S2)、(S2,S3),则(S1,S3)。记作:(S1,S2),(S2,S3)(S1,S2,S3)等效类:等效类:彼此等效的状态集合。最大等效类:最大等效类:不包含在其它等效类中的等效类或状态。状态化简的根本任务就是从原始状态表中找出最大等效类集合。其关键是要找出原始状态表中所有等效状态对。这不能从等效状态的定义来寻找答案。现在学习的是第10页,共46页S i和和S j等效的条件等效的条件(1)其输出完全相同;(2)其次态满足下列条件之一:次
9、态相同 次态交错:即在某种输入取值下,Si的次态为Sj,而Sj的次态为Si。次态循环:即次态之间的关系构成闭环。如:Si,SjSk,Sl,而Sk,SlSi,Sj 次态对等效:如S1和S2的次态对为S3,S4,S3和S4满足等效的2个条件(输出完全相同,次态相同/交错/循环)化简方法:化简方法:1 1)观察法:)观察法:适用于简单状态表化简。2 2)隐含表法:)隐含表法:基本思想是两两比较原始状态表中的所有状态,找出等效状态对,再利用传递性,得到等效类和最大等效类,合并最大等效类中的状态,得到最小化状态表。现在学习的是第11页,共46页例4 观察法化简下列状态表例3 隐含表法化简下列状态表隐含表
10、:隐含表:直角三角形网格。网格数为总状态数减1;横向从左到右依次标注1n-1个状态名,纵向从上到下依次标注2n个状态名。现在学习的是第12页,共46页解:1)作隐含表。2)顺序比较,寻找等效状态对。比较结果有状态对等效、不等效、不能确定三种。等效时在相应方格填“”;不等效时在相应方格填“”,不能确定时,将次态对填入相应方格3)关联比较,确定等效状态对4)确定最大等效类,作最小化状态表演示现在学习的是第13页,共46页2)不完全确定状态表的化简(建立在不完全确定状态表的化简(建立在“状态相容状态相容”的概念上)的概念上)相容状态:相容状态:对所有的有效输入序列有效输入序列(长度和结构任意),分别
11、从状态S1和S2出发,所得到的输出响应序列(除不确定的那些位之外)是完全相同的,则S1和S2相容,或称S1、S2是相容对,记作(S1,S2)。相容状态相容状态无无传递性:传递性:若S1,S2相容,S2,S3相容,但S1,S3不一定相容。相容类相容类:所有状态之间都是两两相容的状态集合。最大相容类最大相容类:不包含在其它相容类中的相容类。相容的条件:相容的条件:(1)输出完全相同,或者其中的一个(或2个)输出为任意值。(2)次态满足下列条件之一:次态相同 次态交错 次态循环 其中的一个或二个为任意状态 次态对相容 从状态表中的状态S出发,如果给定某输入序列所得到的状态响应序列除最后一个次态外,其
12、它状态都是确定的,那么这个输入序列对状态S是有效的。而所有的有效输入序列,意味着有效输入序列的长度和结构是任意的。现在学习的是第14页,共46页 不完全确定状态表的化简过程分为作隐含表寻找相容对、作状态合并图找最大相容类和作出最小化状态表3个步骤。状态合并图:状态合并图:将不完全确定状态表的状态以“点”的形式均匀地绘在圆周上,然后把所有相容对都用线段连接起来而得到的图。因此,所有点之间都有连线的多边形就构成一个最大相容类。覆盖性覆盖性:所选相容类集合应包含原始状态表的全部状态。最小性最小性:所选相容类集合中相容类个数应最少。闭合性闭合性:所选相容类集合中的任一相容类,在原始状态表中任意输入条件
13、下产生的次态应该属于该集合中的某一个相容类。最小闭覆盖最小闭覆盖:同时具备最小、闭合和覆盖三个条件的相容类(包括最大相容类)集合。因此不完全确定状态表的化简就是寻找一个最小闭覆盖。现在学习的是第15页,共46页闭覆盖表闭覆盖表:反映闭合和覆盖这两个性质的表。画法是:在表的左边自上而下列出所选相容类,表的中间覆盖部分自左到右列出全部状态,表的右边闭合部分列出各相容类在输入各种取值组合下的次态组合。例5 简化下列状态表。解:1)作隐含表,寻找相容状态对。(A,B),(A,F),(B,C),(B,D),(B,E),(B,F)(C,D),(C,E),(C,F),(D,F),(D,E),(E,F)2)作
14、状态合并图,求最大相容类。(A,B,F),(B,C,D,E,F)现在学习的是第16页,共46页3)作最小化状态表 可任选一组能覆盖原始状态所有状态的相容类来作闭覆盖表。如若选择(A,B,F)和(B,C,D,E,F)作闭覆盖表。可以看出这两个相容类集合覆盖了原始状态表的全部状态,而且每个最大相容类在任何一种输入情况下的次态组合仅属于最大相容类集合中的一个相容类。因此满足闭合和覆盖条件。此外最大相容类的数目已最少,满足最小条件。若用A代替A、B、F;C代替B、C、D、E、F,可得最小化状态表。现在学习的是第17页,共46页3.状态编码(状态分配)状态编码(状态分配)状态编码就是给最小化状态表中的每
15、个字母或数字表示的状态指定一个二进制代码,形成二进制状态表。编码的目的:编码的目的:用触发器实现状态表。编码方案将会影响:编码方案将会影响:输出函数、激励函数的表达式,从而影响电路的复杂程度。编码的任务:编码的任务:编码的长度(二进制位数或FF状态变量位数)确定;寻找一种最佳或接近最佳的状态分配方案。最小化状态表的状态数最小化状态表的状态数N与状态编码长度与状态编码长度n的关系:的关系:用n个状态变量(即n位二进制代码)来对N个状态进行分配时,可能出现的状态分配方案数为:其中彼此独立的分配方案数为:如,当N=4、n=2时,有24种状态分配方案,但仅有3种独立的分配方案。现在学习的是第18页,共
16、46页状态分配的基本原则状态分配的基本原则 积累经验、灵活应用。1)在相同输入条件下具有相同次态的现态,应尽可能分配相邻的二进制代码。2)在不同输入条件下,同一现态的次态应尽可能分配相邻的二进制代码。3)输出完全相同的现态应尽可能分配相邻的二进制代码。4)最小化状态表中出现次数最多的状态应分配逻辑0。一般情况下,第一条原则较重要,需优先考虑。然后再考虑由前三条原则得到的应分配相邻代码的次态对出现的频率次数,次数多的状态对应优先分配相邻的二进制代码。上述原则和优先次序的考虑,目的是使次态函数和输出函数在卡诺图上“1”的分布是相邻的,从而使函数表达式最简。现在学习的是第19页,共46页例6 对下列
17、状态表进行状态编码。解:1)确定编码长度 有4个状态(N=4),所以编码长度为n=2。即需要两个触发器,假设触发器状态变量为y1和y2。2)确定状态分配方案原则1:状态A、B分配相邻代码;A、C也应分配相邻代码。原则2:状态C和D、C和A、B和D、A和B应分配相邻代码。原则3:状态A、B和C应分配相邻代码。原则4:状态A分配逻辑0,即A的编码为y1y2=00。注意:满足状态分配原则的方案不一定是唯一的。现在学习的是第20页,共46页4.确定激励函数和输出函数确定激励函数和输出函数 依据状态分配得到的二进制状态表和所选定的触发器的激励表或次态方程求出激励函数表达式和电路的输出函数表达式。例7 用
18、JK触发器实现下列二进制状态表,确定其激励函数和输出函数表达式。解:1)确定激励函数表达式 由给定的二进制状态表得次态方程组为:2)确定输出函数表达式现在学习的是第21页,共46页5.画逻辑电路图画逻辑电路图1)先画出所选的触发器,并按状态表中状态变量的顺序给FF编号。2)根据激励函数表达式和输出函数表达式画出组合逻辑部分的电路图。3)画出同步时钟信号线。6.检查逻辑电路能否自启动检查逻辑电路能否自启动若设计的电路存在无效状态,应检查电路进入无效状态后,能否在时钟脉冲的作用下自动返回有效状态工作。若能回到有效状态,则电路有自启动能力;若不能,则需修改设计,使电路具备自启动能力。现在学习的是第2
19、2页,共46页设计设计要求要求原始状原始状态图态图最简状最简状态图态图画电画电路图路图检查电路能否检查电路能否自启动自启动1246时序电路的设计步骤小结时序电路的设计步骤小结选触发器,求时钟、选触发器,求时钟、输出、状态、驱动输出、状态、驱动方程方程5状态分状态分配配3化简现在学习的是第23页,共46页同步时序逻辑电路设计举例同步时序逻辑电路设计举例例1按下图状态图设计同步时序电路。解:1)根据状态数确定触发器的数目:由状态图可以看出,其每个状态有两个状态,故可用两个触发器。其变量可用Q1,Q0表示;2)根据状态图列出状态表:状态表的自变量为输入变量x和触发器当前状态Q1n,Q0n,而因变量为
20、触发器的次态Q1n+1Q0n+1、及输出z,列表时将自变量的所有组合全部列出来,其中当Q1nQ0n=01的状态为不出现,其输出可看作任意项处理。现在学习的是第24页,共46页3)选择触发器并确定各触发器的输入方程 以Q1n+1、Q0n+1、z分别为因变量,可根据上面状态表画出如下的卡诺图:根据上面的卡诺图可写出各触发器的次态方程为:假设选择JK触发器,则将上式与JK触发器的特征方程进行比较可得其驱动(激励)方程为:J0=xQ1n K0=x J1=xK1=xQ0n 4)求输出函数 由上面的卡诺图可写出输出函数为:z=xQ0n 现在学习的是第25页,共46页 在上面的卡诺图的化简中,其结果不是唯一
21、的,也可以有其它的化简结果,其化简的原则是其使用的门尽可能少、连线最少。5)画出逻辑图。6)检查该电路是否可以自启动。在该设计中状态01没有出现,须验证该状态能否进入有效的循环,将x为0和1及状态01分别带代入上面电路可得到其状态转移图,从图上可能看出该电路可以实现自启动,故设计是可行的。Q1nQ0n=01、x=0时,z=0,Q1n+1Q0n+1=01,状态不变。Q1nQ0n=01、x=1时,z=1,Q1n+1Q0n+1=10,状态转移。现在学习的是第26页,共46页1建立原始状态图建立原始状态图例2设计一个按自然态序变化的7进制同步加法计数器,计数规则为逢七进益,产生一个进位输出。状态化简状
22、态化简2状态分配状态分配3已经最简。已是二进制状态。现在学习的是第27页,共46页4选触发器,求时钟、输出、选触发器,求时钟、输出、状态、驱动方程状态、驱动方程因需用3位二进制代码,选用3个CP下降沿触发的JK触发器,分别用FF0、FF1、FF2表示。由于要求采用同步方案,故时钟方程为:输出方程:现在学习的是第28页,共46页状状状状态态态态方方方方程程程程不化简,以便使之与JK触发器的特性方程的形式一致。现在学习的是第29页,共46页比较,得驱动方程:电电路路图图5现在学习的是第30页,共46页检查电路能否自启动检查电路能否自启动6将无效状态111代入状态方程计算:电路有一个无效状态111,
23、将该状态代入状态方程得其次态为000。说明一旦电路进入无效状态时,只要经过一个计数脉冲CP,电路变进入有效状态000。因此,该电路具有自启动能力。现在学习的是第31页,共46页例3.设计一个串行数据检测电路,当连续输入3个或3个以上1时,电路的输出为1,其它情况下输出为0。例如:输入X101100111011110输出Y0000000010001101建立原始状态图建立原始状态图S0S1S2S3设电路开始处于初始状态为S0。第一次输入1时,由状态S0转入状态S1,并输出0;1/0X/Y若继续输入1,由状态S1转入状态S2,并输出0;1/0如果仍接着输入1,由状态S2转入状态S3,并输出1;1/
24、1此后若继续输入1,电路仍停留在状态S3,并输出1。1/1电路无论处在什么状态,只要输入0,都应回到初始状态,并输出0,以便重新计数。0/00/00/00/0现在学习的是第32页,共46页原始状态图中,凡是在输入相同时,输出相同、要转换到的次态也相同的状态,称为等价状态。状态化简就是将多个等价状态合并成一个状态,把多余的状态都去掉,从而得到最简的状态图。状态化简状态化简2状态分配状态分配3所得原始状态图中,状态S2和S3等价。因为它们在输入为1时输出都为1,且都转换到次态S3;在输入为0时输出都为0,且都转换到次态S0。所以它们可以合并为一个状态,合并后的状态用S2表示。S0=00S1=01S
25、2=10现在学习的是第33页,共46页4选触发器,求时钟、输出、选触发器,求时钟、输出、状态、驱动方程状态、驱动方程选用2个CP下降沿触发的JK触发器,分别用FF0、FF1表示。采用同步方案,即取:输出方程状态方程现在学习的是第34页,共46页比较,得驱动方程电路电路图图5检查电路能否自启动检查电路能否自启动6将无效状态11代入输出方程和状态方程计算:电路能够自启动。现在学习的是第35页,共46页例4 设计一个脉冲序列为10100的序列脉冲发生器。解:1)根据设计要求设定状态、画出状态转移图。由于串行输出Y的脉冲序列为10100,故电路应有5个状态,即N=5。分别用S0,S1,S4表示。输入第
26、一个时钟脉冲CP时,状态由S0转到S1,输出Y=1;输入第二个时钟脉冲CP时,状态由S1转到S2,输出Y=0;,依次类推。得状态图如下:现在学习的是第36页,共46页2)状态分配因为N=5,所以n=3。即采用3个触发器。若采用三位自然二进制加法计数编码,可得状态转换编码表。3)选择触发器类型,求输出方程、驱动方程、状态方程。根据状态转换编码表,可得次态、输出函数卡诺图。现在学习的是第37页,共46页现在学习的是第38页,共46页4)根据输出方程和驱动方程画逻辑图5)检查电路能否自启动 该电路的三个无效状态101、110、111代入状态方程计算后分别得到010、010、000,都为有效状态。说明
27、一旦电路进入无效状态,只要继续输入一个时钟脉冲CP,电路便可自动返回有效状态工作,具有自启动能力。现在学习的是第39页,共46页例5、设计一个异步时序电路,要求如右图所示状态图。4选触发器,求时钟、输出、状态、驱动方程选触发器,求时钟、输出、状态、驱动方程选用3个CP上升沿触发的D触发器,分别用FF0、FF1、FF2表示。输出方程现在学习的是第40页,共46页次态卡诺图时钟方程:FF0每输入一个CP翻转一次,只能选CP。选择时钟脉冲的一个基本选择时钟脉冲的一个基本选择时钟脉冲的一个基本选择时钟脉冲的一个基本原则:在满足翻转要求的原则:在满足翻转要求的原则:在满足翻转要求的原则:在满足翻转要求的
28、条件下,触发沿越少越好。条件下,触发沿越少越好。条件下,触发沿越少越好。条件下,触发沿越少越好。FF1在t2、t4时刻翻转,可选Q0。FF2在t4、t6时刻翻转,可选Q0。现在学习的是第41页,共46页现在学习的是第42页,共46页电电路路图图5检查电路能否自启动检查电路能否自启动6将无效状态110、111代入输出方程和状态方程计算:电路能够自启动。特性方程:现在学习的是第43页,共46页同步时序电路自启动设计方法 在上面的设计过程是在最后一步对电路自启动与否进行判断,如果不能自启动就需重新进行设计,这是比较痛苦的事件,如果一开始进行设计时就能知道所设计的电路能否自启动,到最后也就没有必要再进
29、行判断是否能自启动了,那么有没有解决这个问题的办法呢?答案是肯定的。下面通过例子加以说明。例6 设计一个按顺序000001010100101111000循环的自启动同步时序逻辑电路。解:可以看出该时序电路有三个触发器,其共有8个状态:而现在仅使用了:000,001,010,100,101,111共六个状态,而011,110为无效。如果这两个状态的次态落在上面的有效状态上,那么该时序电路就可以自启动。解决的办法是一开始就选定这两个状态的次态,而不是将这两个状态作为任意状态进行处理,并且这两个状态的次状态必须是有效状态中的一个,这样一来问题就解决了。具体设计步骤如下:现在学习的是第44页,共46页
30、1).确定触发器的个数。从上面的状态可以看出有3个变量,故只须三个触发器即可。2).根据状态图写出状态表。在这个例子中没有输入、输出,是一个典型的摩尔型时序电路,其状态表如下:3)根据状态表写驱动方程 由状态表列出以次态为因变量的卡诺图经过化简后就得到次态方程。(用JK触发器来实现时序电路时,画卡诺圈应注意在每一项中包含对应输出的原态,即Q2n+1中包含Q2n项,可以是原变量或反变量的形式)现在学习的是第45页,共46页4).根据上面的输入方程画出逻辑图。(略)进一步研究进一步研究上述设计过程解决了自启动问题,但电路不是最简的。若要得到最简的电路,只须在绘制卡诺图时重新调整任意项的取值,使其在有效状态中或经过几个无效状态后进入有效状态,这样得到的电路将是最简的电路。如将:110的次态选在000,101的次态选在100就可得到最简的电路。现在学习的是第46页,共46页