设计一个1010的序列检测器239.pdf
二、设计一个 1010 的序列检测器,检测到 1010 时输出为“1”否则为“0”,用D 触发器实现。第一步:根据要求进行逻辑抽象,得出电路的原始状态转换图和状态转换表。取输入数据变量为 X,检测的输出变量为 Z,该同步时序逻辑电路的功能是检测输入序列是否为1010,一旦输入序列出现一个 1 就记下来,因为这个 1 可能是 1010 序列的第一个 1,;接着看输入是否为 0,因为 10 是序列 1010 的前两位;其次再看输入是否为 1,因为 101是 1010 序列的前三位;最后再输入一个 0,输出则为 1,因为出现了一个 1010序列,泽电路必须记住 1,10,101,1010 四种输入情况,每一种输入情况应与电路的一个状态相对应。根据题意,设电路随机的输入和输出序列为:X:0 1 0 1 0 0 0 1 0 1 0 1 0 Z:0 0 0 0 1 0 0 0 0 0 1 0 0 该电路仅有一个输入端,每个现态有两个可能转移方向,设电路初态为 S0,当 X=0 时,电路仍处在状态 S0,当输入一个 1 以后的状态为 S1,输入 10以后的状态为 S2,输入 101 以后的状态为 S3,输入 1010 以后的状态为 S4。以Sn表示电路的现态,Sn+1表示电路的次态。由此得出原始状态转换图和原始状态转换表:现态 Sn 次态 Sn+1/输出 Z X=0 X=1 S0 S4 S1 S3 S2 1/0 1/0 0/0 0/0 1/0 1/0 0/0 1/0 0/0 0/1 S0 S0/0 S1/0 S1 S2/0 S1/0 S2 S0/0 S3/0 S3 S4/1 S1/0 S4 S0/0 S1/0 第二步:状态化简:依据状态等效条件判断得出 S0和 S4在相同的输入条件下,它们转换到相同的次态去,且有相同的输出,故 S0和 S4等效,经分析比较,找出最大等效类:S1,S2,S3,S0,S4。由此得出化简的状态转换图和最简状态表:现态 Sn 次态 Sn+1/输出 Z X=0 X=1 S0 S0/0 S1/0 S1 S2/0 S1/0 S2 S0/0 S3/0 S3 S0/1 S1/0 第三步:状态编码:最贱状态表共有四种状态,可用两位二进制代码来表示,设状态变量为Q1,Q2,依据状态编码原则,确定 S0=00,S1=01,S2=11,S3=10 四种状态,其编码后的状态转换图和状态转换表:S0 S1 S3 S2 1/0 0/0 1/0 0/1 0/0 1/0 1/0 0/0 现态 Q2nQ1n 次态 Q2n+1Q1n+1/输出 Z X=0 X=1 00 00/0 01/0 01 11/0 01/0 11 00/0 10/0 10 00/1 01/0 第四步:求出各触发器的状态方程,驱动方程和输出方程。Q2nQ1n X 00 01 11 10 0 0 0 0 1 1 0 0 0 0 (1)Z=X Q2n Q1n Q2nQ1n X 00 01 11 10 0 0 1 0 0 1 0 0 1 0 (2)00 01 11 Q2Q1 10 1/0 0/0 1/0 0/1 0/0 1/0 0/0 1/0 X/Z Q2n+1=X Q2n Q1n+X Q2n Q1n Q2nQ1n X 00 01 11 10 0 0 1 0 0 1 1 1 0 1 (3)Q1n+1=X Q2n+X Q1n+Q3nQ1n 由 D 触发器特性方程求出各个触发器的驱动方程:D2=X Q2n Q1n+X Q2nQ1n D1=X Q2n+X Q1n+Q2nQ1n 第五步:画出逻辑电路图:第六次:检测该电路是否有自启动能力。该电路没有无关状态。当 X=0 时,输出 Z=XQ2nQ1n,触发器的次态 Q2n+1=X Q2nQ1n+XQ2nQ1n=0,Q1n+1=Q2nQ1n+X Q1n=0,若此时来一个时钟脉冲 CP,则可转入有效状态 00,即 S0。当 X=1 时,输出 Z=XQ2nQ1n,触发器的次态 Q2n+1=X Q2nQ1n+XQ2nQ1n=1,Q1n+1=Q2nQ1n+X Q1n=0,若此时来一个时钟脉冲 CP,则可转入有效状态 10,即 S3。所以该逻辑电路具有自启动能力。