您好,欢迎访问三七文档
3.7时序逻辑电路的设计根据设计要求画原始状态图(表)最简状态图画电路图检查电路能否自启动1246选触发器,求时钟、输出、状态、驱动方程5状态分配3状态化简设计步骤:逻辑抽象确定输入、输出变量及状态数2n-1M≤2n设计步骤:一、逻辑抽象,得出电路的状态转换图或状态转换表就是把要实现的逻辑功能表示为时序逻辑函数,可以用状态转换表的形式,也可以用状态转换图的形式。这就要:1、分析给定的逻辑问题,确定输入变量、输出变量以及电路的状态数。通常应是取原因(或条件)为输入变量,取结果为输出变量。2、定义输入、输出逻辑状态和每个电路的状态的含义,并将电路状态顺序编号3、按题意列出电路状态转换表或电路状态转换图这样就把给定的逻辑问题抽象为一个时序逻辑函数了。设计步骤:二、状态化简若两个电路状态在相同的输入下有相同的输出,并且转换到同样一个次态去,则称这两个为等价状态。显然等价状态是重复的,可以合并为一个。电路的状态数越少,设计出来的电路也越简单。状态化简的目的就是将等价状态合并,以求得最简的状态转换图。设计步骤:三、状态分配又称状态编码时序逻辑电路的状态是用触发器状态的不同组合来表示。首先需要确定触发器的数目n。因为n个触发器共有2n个状态组合,所以为获得时序电路所需的M个状态,必须取:2n-1M2n其次要给每一个电路状态规定对应触发器状态组合。每组触发器状态组合都是一组二值代码,因此这项工作又称状态编码。在M2n的情况下从2n个状态中取M个状态组合可以有许多不同的方案,而没一个方案中M个状态的排列顺序又有许多种。如果编码方案得当,设计结果可以很简单。相反如果编码方案选取不好,设计出的电路就会很复杂,当然这里有技巧。为了便于记忆和识别,一般选用的状态编码和它们的排列顺序都遵循一定的规律。设计步骤:四、选定触发器的类型,求出电路的状态方程、驱动方程和输出方程因为不同逻辑功能的触发器驱动方式不同,所以用不同类型的触发器设计出的电路也不一样。为此在设计具体的电路前必须先选定触发器的类型。选择触发器的类型时应考虑到器件的供应情况,并应力求减少系统中使用的触发器种类。根据状态转换图(或状态转换表)和新选定的状态编码触发器的类型,就可以写出电路的状态方程、驱动方程和输出方程了。设计步骤:五、根据得到的方程式画出逻辑图设计步骤:六、检查设计的电路能否自启动如果电路不能自启动,则需要采取措施加以解决。一种办法是在电路开始工作是通过预置数的方法将电路的状态置成有效循环中的某一种。另一种方法是通过修改逻辑设计加以解决。例1:设计一个带有进位输出端的十三进制计数器.解:该电路不需输入端,有进位输出用C表示,规定有进位输出时C=1,无进位输出时C=0。十三进制计数器应该有十三个有效状态,分别用S0、S1、…S12表示。画出其状态转换图:1建立原始状态图状态转换图不需化简。因为231324,因此取触发器位数n=4。对状态进行编码,得到状态转化表如下:状态化简2状态分配34选触发器,求时钟、输出、状态、驱动方程电路的次态/输出的卡诺图11113210/nnnnQQQQC状态方程:1332210nQQQQQQ12321320210nQQQQQQQQQQ111010nQQQQQ103020nQQQQQ32CQQ若选用4个JK触发器,需将状态方程变换成JK触发器特性方程的标准形式,即,找出驱动方程。133221033210323()()nQQQQQQQQQQQQQQ121023102()nQQQQQQQQ110101nQQQQQ10302032001nQQQQQQQQQ1nQJQKQ比较得到触发器的驱动方程:230123QKQQQJ2102310JQQKQQQ0101QKQJ03201JQQK画电路图5230123QKQQQJ2102310JQQKQQQ0101QKQJ03201JQQK将0000作为初始状态代入状态方程计算次态,画出状态转换图,与状态转换表对照是否相同。最后检查是否自启动。由状态转换图可知该电路能够自启动.检查电路能否自启动6将0000作为初始状态代入状态方程计算次态,画出状态转换图,与状态转换表对照是否相同。最后检查是否自启动。由状态转换图可知该电路能够自启动.检查电路能否自启动613210323()nQQQQQQQ121031022()nQQQQQQQQ110101nQQQQQ103020nQQQQQ例2:设计一个串行数据检测器。对它的要求是:连续输入3个或3个以上的1时输出为1,其他情况输出为0解:取输入数据作为输入变量,用X表示;检测结果为输出变量,用Y表示。例如:设电路没有输入1以前的状态为S0,输入一个1状态为S1,连续输入两个1后的状态为S2,连续输入3个1以后的状态为S3。画状态转换图输入X101100111011110输入Y0000000010001101进行逻辑抽象,建立原始状态图电路的状态转换表状态转换表状态转换表的另一种形式1/00/01/10/00/01/01/1(a)原始状态图S3S20/0S0S1状态化简20/01/01/01/01/00/0(b)简化状态图S20/01/1S0S1状态分配30/01/01/01/01/00/0(c)二进制状态图100/01/10001S0=00S1=01S2=10两个状态等价在电路状态M=3的情况下,应取触发器的个数为2如果取触发器状态Q1Q0的00、01和10分别代表S0、S1和S2,并选用JK触发器组成电路,可画出电路的次态和输出的卡诺图。1110(/)nnQQY卡诺图4选取触发器,求输出、状态、驱动方程M=3,应取触发器n=2。选2个JK触发器。0/01/01/01/01/00/0(c)二进制状态图100/01/10001将卡诺图分解,求状态方程和输出方程,并得到驱动方程110111010*1)()(XQQXQXQQQXQXQXQQ00101*01)(QQQXQQXQ01XQJ1KX01JXQ10K1XQY输出方程:画电路图501XQJ1KX01JXQ10K1XQY输出方程:由状态转换图可知该电路能够自启动.检查电路能否自启动610*1XQXQQ01*0QQXQ若改用D触发器则应与D触发器的状态方程对照,找出D端对应的逻辑式来,即为D触发器的驱动方程。11010010DXQXQXQQDXQQ逻辑图例3:设计一个自动售饮料机电路。它的投币口每次只能投入一枚五角或一元的硬币。投入一元五角钱硬币后机器自动给出一杯饮料;投入两元(两枚一元)硬币后,在给出饮料的同时找回一枚五角的硬币解:取投币信号作为输入变量,投入一枚一元硬币时用A=1表示,未投入时用A=0表示;投入一枚五角硬币时用B=1表示,未投入时用B=0表示。给出饮料和找钱为两个输出变量,分别用Y、Z表示。给出饮料时Y=1,不给时Y=0;找回五角硬币时Z=1,不找时Z=0。设未投币前电路的初始状态S0,投入五角硬币以后为S1,投入一元硬币(包括投入一枚一元硬币和投入两枚五角硬币的情况)以后为S2。再投入一枚五角硬币后电路返回S0,同时输出为Y=1、Z=0;如果再投入一枚一元硬币,则电路也应返回S0,同时输出为Y=1、Z=1。因此电路的状态数M=3已足够。1进行逻辑抽象,建立原始状态图进行逻辑抽象,建立原始状态图设未投币前电路的初始状态S0,投入五角硬币以后为S1,投入一元硬币(包括投入一枚一元硬币和投入两枚五角硬币的情况)以后为S2。再投入一枚五角硬币后电路返回S0,同时输出为Y=1、Z=0;如果再投入一枚一元硬币,则电路也应返回S0,同时输出为Y=1、Z=1。因此电路的状态数M=3已足够。电路的状态转换表和状态转换图状态转换表状态转换图10/10S0S1S201/0000/0000/0001/0010/0000/0010/00或10/11状态化简2因为正常工作时不会出现AB=11时的情况,所以与之对应的Sn+1、y、z均作为约束项处理。状态不用化简。状态分配3S0=00S1=01S2=10取触发器的个数为21M=322,则取触发器的个数N=2;触发器的状态Q1Q0的00、01和10分别代表S0、S1和S2,并选用D触发器组成电路,可由状态转换表或状态转换图画出表示电路的次态和输出的卡诺图。因为正常工作时不会出现Q0Q1的状态,所以与之对应的最小项也作约束项处理。电路次态/输出的卡诺图4、将卡诺图分解,求状态方程和输出方程,并得到驱动方程4求输出、状态、驱动方程11100010011111001001001101nnDQABQQAQBDQQBQABQDQABQQAQBQDQQBQABYQBQAQAZQA画电路图5根据驱动方程和输出方程画出状态转换图,当电路进入无效状态11后,在无输入信号的状态下(即AB=00)不能自行返回有效循环,所以不能自行启动。当AB=01或AB=10时电路在时钟信号的作用下虽能返回有效循环,但收费结果是错误的。因此,在电路开始工作时应在异步置零端加上低电平信号将电路置成00状态。检查电路能否自启动6
本文标题:时序逻辑电路的设计
链接地址:https://www.777doc.com/doc-4075232 .html