有限状态控制器知识.ppt
课程代码:00830040,第八章 同步时序电路分析与综合,同步时序电路综合(2),佟冬,Microprocessor R&D C,http:/,1,2,课程回顾:同步时序电路综合同步时序电路综合给定电路的功能或者给定状态图、状态表和所用触发器类型画出电路图方法利用触发器的激励输入表利用触发器的特征方程,数字逻辑时序电路(八),2003年5月9日,5月12日,3,课程回顾:同步时序电路综合过程第一步:从文字描述得出状态表第二步:化简状态表,得到最小状态的等效电路第三步:进行状态分配,产生状态和输出的转换表第四步:确定所用的记忆单元,导出激励卡诺图第五步:从激励图得出开关逻辑方程,及输出方程第六步:由逻辑方程和记忆单元画出电路图,数字逻辑时序电路(八),2003年5月9日,5月12日,4,课程回顾:触发器激励输入表,状态转换,要求的输入,状态转换,要求的输入,Q0011,Q*0101,D0101,Q0011,Q*0101,S010d,Rd010,D触发器,钟控SR触发器,状态转换,要求的输入,状态转换,要求的输入,Q0011,Q*0101,T0110,Q0011,Q*0101,J01dd,Kdd10,钟控T触发器,钟控JK触发器,数字逻辑时序电路(八),2003年5月9日,5月12日,例1,5,8.4 设计举例序列识别器设计一具有一个输入和一个输出的同步时序电路:当输入01串时输出为1,否则输出0。采用下降沿触发SR触发器。,输入输出,0000000111110101010100000001000001010101,A:初始状态;识别出1B:识别出0,1/0,A,0/0,B,0/0,状态分配,A:0;B:1,1/1,数字逻辑时序电路(八),2003年5月9日,5月12日,S,Q,C,R,Q,6,例1SR触发器实现,x,SCR,QQ,clockz,数字逻辑时序电路(八),2003年5月9日,5月12日,7,例1T触发器和JK触发器实现,yk,0,x,1,x,0,1,0,TC,QQ,y,1,0,1,T(a)Clocked T flip-flopexcitation map,Clock(b)Clocked T flip-flopimplementation,yk,01,01d,x,10d,yk,01,0d0,x,1d1,J,K,(c)Clocked JK excitation maps数字逻辑时序电路(八)2003年5月9日,5月12日,B C,0,x,8,例2“1111”识别器,0/0AA:初始状态;识别出0B:识别出1C:识别出“11”D:识别出“111”,0/00/01/0 1/00/0(a)State diagramxy1ky2k 0 1,1/0,1/1Dy1ky2k,x0 1A A/0 B/0B A/0 C/0D A/0 D/1C A/0 D/0(b)State table1,00,00,01,00,0,0,状态分配:A:00B:01C:10D:11,011110,00 1000 1100 11y1k+1y2k+1,011110,000,z,010,(c)Transition table,(d)Output map,数字逻辑时序电路(八),2003年5月9日,5月12日,S,R2,9,例2SR触发器实现,激励输入表法:,y1ky2k,00011110,00000,x,101dd,y1ky2k00011110,0dd11,x,1d000,S1,R1,y1ky2k00011110,00000,x,110d1,y1ky2k,00011110,0d11d,x,11100,数字逻辑时序电路(八),2003年5月9日,5月12日2,10,例2T触发器实现,y1ky2k,00011110,00011,x,10100,y1ky2k,00011110,00110,x,11101,T1,T2,(a)Clocked T excitation maps,数字逻辑时序电路(八),2003年5月9日,5月12日,11,例2JK触发器实现,y1ky2k,0,x,1,y1ky2k,0,x,1,y1ky2k,0,x,1,y1ky2k,0,x,1,00011110,00dd,01dd,00011110,dd11,dd00,00011110,0dd0,1dd1,00011110,d11d,d10d,J1,x,K1 J2(b)Clocked JK excitation mapsx,K2,y1 y2,0001,000,101,y1 y2,0001,000,110,11,0,1,11,0,1,y2,10,0,1,y1,10,0,1,Y1,(c)Excitation K-maps,Y2,数字逻辑时序电路(八),2003年5月9日,5月12日,12,例2JK触发器实现Clock,J1C,Q,y1,x,K1,Q,数字逻辑时序电路(八),J2CK2z2003年5月9日,5月12日,QQ,y2,13,例3精确的“0010”识别器设计同步序电路:当输入准确的00串后输出为10,输出1;否则输出0。,例如:,x=001001000010010z=000100100000001,A:初始状态;重新开始状态B:识别出0C:识别出00D:识别出001E:识别出0010,添加出错状态:G,FG:出现多于两个0F:1的位置出错,数字逻辑时序电路(八),2003年5月9日,5月12日,C,G,14,(f),0/0,0/0,1/0,0/1,0/0,0/0,1/0,0/1,例3(续),A,B,CGF,D E ACome here for anincorrect input x=0Come here for anincorrect input x=1,1/0,B1/0,C0/0GF,D1/0,1/0,E,(a),(b),0/0,0/0,A,0/0,B,0/0,C,1/0,D,0/1,E,A,0/0,B,0/0,1/0C0/0,D,0/1,E,1/0,1/0,0/0,0/00/0G1/0,1/0,1/0,其中:E状态和B状态等价A状态和F状态等价,1/01/0 x,GF(c),1/0,1/0,F1/0(d),0,1,AB,B/0C/0,F/0F/0,0,x,1,0/0,C,G/0,D/0,A,B/0,A/0,1/0,G,DEF,E/1C/0B/0,F/0F/0F/0,BCD,C/0G/0B/1,A/0D/0A/0,1/0,A,1/00/0,B,0/00/1,0/01/0,D,数字逻辑时序电路(八),G/0 F/0 G G/0 A/0(e)2003年5月9日,5月12日,1/0(g),15,例5串行加法器,Shift register AShift register B,aibi,Serialadder,si,00/001/110/1,aibi/si11/00 1ci-1=0 00/1 ci-1=1,01/010/011/1,(b),状态0:,(a),前一位计算的进位0状态1:,aibi,Si,前一位计算的进位1,ai bi,ci-1,ci,si,状态分配状态0:0状态1:1,0 00 00 10 11 01 01 11 1,01010101,00010111,01101001,CiClock,DC,Q,Ci-1,(c),(d),数字逻辑时序电路(八),2003年5月9日,5月12日,0,1,(d)5月12日,例6Up/Down计数器,输入:时钟;Up/Down输出:计数器的计数,z=0 z=10 0 110 1 1 013 0 2z=3 z=2(a)State diagram,x0 10 1/0 3/01 2/1 0/12 3/2 1/23 0/3 2/3(b)State table,xy1ky2k00 01 1101 10 0011 00 1010 11 01y1k+1y2k+1(c)Transition table,状态分配状态0:00状态1:01,y1y2,00,0,0,d,x,1,1,d,y1y2,00,1,0,d,x,1,1,d,状态2:10状态3:11,011110,1dd,d10,0dd,d01,011110,dd1,11d,dd1,11d,数字逻辑时序电路(八),J1,K1 J1 K1 J22003年5月9日,Excitation maps,K2,J2,K2,16,17,例6下降沿JK触发器实现Clock,x,J1,Q,y1,C,K1,Q,1,J1CK1,QQ,y2,LEDs,数字逻辑时序电路(八),2003年5月9日,5月12日,0,1,2,3,4,5,6,7,8,9,(b),18,例7BCD计数器,y3k y2ky1ky0k,0,x,1,0000 0000 0001,输入:时钟clockx:0计数器保持1计数器计数,x0 10 11 22 33 44 55 66 77 88 99 0(a),0001 0001 00100010 0010 00110011 0011 01000100 0100 01010101 0101 01100110 0110 01110111 0111 10001000 1000 10011001 1001 00001010 dddd dddd1011 dddd dddd1100 dddd dddd1101 dddd dddd1110 dddd dddd1111 dddd dddd,数字逻辑时序电路(八),y3k+1y2k+1y1k+1y0k+12003年5月9日,5月12日,19,例7BCD计数器(续),y3k y2ky1ky0k,0,x,1,0,x,1,0,x,1,0,x,1,0,x,1,0,x,1,0,x,1,0,x,1,0000000100100011010001010110011110001001101010111100110111101111,00000000dddddddd,00000001dddddddd,dddddddd00dddddd,dddddddd01dddddd,0000dddd00dddddd,0001dddd00dddddd,dddd0000dddddddd,dddd0001dddddddd,00dd00dd00dddddd,01dd01dd00dddddd,dd00dd00dddddddd,dd01dd01dddddddd,0d0d0d0d0ddddddd,1d1d1d1d1ddddddd,d0d0d0d0d0dddddd,d1d1d1d1d1dddddd,J3,K3,J2,K2,J1,K1,J0,K0,数字逻辑时序电路(八),(c)2003年5月9日,5月12日,k,20,例7BCD计数器,y1 y0,k,y2ky3k00000010110100,01dddd,11dddd,1000dd,000010,01dddd,11dddd,1000dd,x=0,(d),x=1,x,y3,J3CK3,y2,J2CK2,y1,J1CK1,y0,J0CK0,ClockLights(e),数字逻辑时序电路(八),2003年5月9日,5月12日,21,设计举例有限状态控制器计算机和其他数字系统中的控制部件控制器数据通路(Data path)控制器采用有限状态的同步时序电路控制数据通路处理数据,数字逻辑时序电路(八),2003年5月9日,5月12日,22,例8机器人控制器,设计电路实现:使得该机器人,A,c,B,能顺利找到,A,出口(用JK触发器).,D,C,B,机器人的操作:(1)当遇到障碍物时,电子探测器输出为1,否则输出0;,A,传感器,(2)z1,z2两控制线,z1=1时向左转,z2=1时向右转.,右转弯,左转弯,数字逻辑时序电路(八),2003年5月9日,5月12日,23,例8机器人控制器状态A:没有遇到障碍物,上次是左转;状态B:监测到障碍物,正在右转;状态C:没有遇到障碍物,上次是右转;状态D:检测到障碍物,正在左转.(1)上次向右转,当遇到障碍物时向左转;(2)上次向左转,当遇到障碍物时向右转;,数字逻辑时序电路(八),2003年5月9日,5月12日,24,例8机器人控制器,Q*=J Q+KQ,0/000/001/10,AD,1/01X/Z1Z2,BC,0/00,1/010/00,y1y2ABCD,X01A/00 B/01C/00 B/01C/00 D/10A/00 D/10,y1y200011110,X0100/00 01/0111/00 01/0111/00 10/1000/00 10/10,1/10,状态分配状态A:00状态B:01状态D:10,状态转换Q00,Q*01,J01,激励的输入Kdd,状态C:11,11,01,dd,10,数字逻辑时序电路(八),2003年5月9日,5月12日,K1=x+y 2,25,例8机器人控制器,Q*=J Q+KQ,xy1y200011110,00000,10011,xy1y200011110,00000,11100,xy1y200011110,00110,x1 y1y20 000 011 111 10,00110,11100,Z1,Z2,Y1,Y2,z1=xy1z 2=x y1,Y1=(xy 2)y1+(x+y 2)y1 Y2=(x y1)y 2+(x+y1)y 2J1=xy 2 J 2=x y1K 2=x+y1=xy1,数字逻辑时序电路(八),2003年5月9日,5月12日,26,例8:机器人控制器,x,Q1Q1Q2Q2,J1K1J2K2,z1z2,(f),Clock,数字逻辑时序电路(八),2003年5月9日,5月12日,0,27,例9投币机控制器,NCoindetector D,Controlunit(a),RC,ReleasecandyReleasechange,ND/RC,00/0010/10,01/11,10/0001/0001/00,00/005,00/00 15,01/1010/00,10,10/0000/00,(b),数字逻辑时序电路(八),2003年5月9日,5月12日,28,例10电梯控制器(思考题)目标:为4层楼设计一个简单的电梯控制器输入a:到达一个楼层的安全位置(1有效)输入x1 x2up x2dn x3up x3dn x4:各楼层控制面板(1有效)输入y1y2:电梯内控制面板目标楼层数输出:向上/向下运行停止/开门/关门,数字逻辑时序电路(八),2003年5月9日,5月12日,