从设计110序列检测器来看--同步时序电路设计

时间:2023-01-29 13:04:29

开学临近,本人查缺补漏,应对推迟的期末考试
同步时序逻辑设计,难度有所增加,本人欲通过110序列检测器来解决这一问题点:

设计步骤:

1.获取原始状态图与状态表--分析状态图表
2.最简化状态图表
3.状态编码
4.利用状态转移表与触发器特征设计触发器激励
5.卡诺图化简
6.电路实现
7.检查无关项

具体操作


获取原始状态图与状态表--分析状态图表

  • 状态设定:
    s0 --->初态:表示接收一位数据“0”
    s1 --->“1”
    s2 --->"11"
    s3 --->"110" 此时输出 z = 1;其他情况 z = 0

  • 分析状态转换情况:

    从设计110序列检测器来看--同步时序电路设计

    原式状态图如下:

graph TB S0 --->|X=0,Z=0| S0 S0 --->|X=1,Z=0| S1 S1 --->|X=0,Z=0|S0 S1 --->|X=1,Z=0|S2 S2 --->|X=1,Z=0|S2 S2 --->|X=0,Z=1|S3{S3 此时z=1} S3 --->|X=1,Z=0|S1 S2 --->|X=1,Z=0|S0

手写版:

从设计110序列检测器来看--同步时序电路设计

  • 原始状态表:

从设计110序列检测器来看--同步时序电路设计

对其进行化简

发现s3与s0相同,删去s3

从设计110序列检测器来看--同步时序电路设计

状态分配

有s0,s1,s2三种状态,所以要使用两个JK触发器或者D触发器
我们先以JK触发器为例:

  • 设置编码

    ~~~
                       y2   y1
    s0------------>    0    0
    s1------------->   1    0
    s2------------->   1    1
    y1,y2分别为两个jk触发器的Q输出
    ~~~
    
  • 列真值表

从设计110序列检测器来看--同步时序电路设计

利用JK触发器的特性,可写出J2,K2,J1,K1的高低电压情况,使y2,y1从现态变成次态

此真值表中的触发器的取值就是将现态转变为次态的J,K取值情况

JK触发器特性
J = K = 0 ---> D = Q ,保持
J = 0,K = 1 ---> D = 0,复位
J = 1,K = 0 ---> D = 1 ,置位
J = K = 1 ----> D = \(\bar{Q}\) , 反转,此时可以认为就是T触发器的效果

  • 利用卡诺图化简:

    要画五个卡诺图,分别是:J2,K2,J1,K1,Z

    ** 根据真值表中的值来画卡诺图**

    从设计110序列检测器来看--同步时序电路设计

可得:J2 = X

从设计110序列检测器来看--同步时序电路设计

可得: J1 = X·Y2

从设计110序列检测器来看--同步时序电路设计

K2= \(\bar{X}\)

从设计110序列检测器来看--同步时序电路设计

K1 = \(\bar{X}\)

从设计110序列检测器来看--同步时序电路设计

Z = \(\bar{X}\)·Y1

电路实现

根据 :J2 = X, J1 = XY2,K2= \(\bar{X}\),K1 = \(\bar{X}\),Z = \(\bar{X}\)*Y1来画电路

​ X为一个输入引脚,Z为输出引脚\

先画俩JK触发器:

从设计110序列检测器来看--同步时序电路设计

再添电路:

从设计110序列检测器来看--同步时序电路设计

检查无关项

思路:将未用到的“01”状态带入计算

利用JK触发器的次态方程 D = J\(\bar{Q}\) + \(\bar{K}\)Q
得: Y1n+1 = J1\(\bar{Y}\)1n + \(\bar{K}\)1Y1n = XY2n\(\bar{Y}\)1n + XY1n = X(Y1n + Y2n)
​ Y2n+1 = X\(\bar{Y}\)2n + XY2n = X


Y1
现在再将“ Y2 = 0, Y1= 1”带入

graph TB 01 --->|情况1:X = 0|00{满足情况s0,可以自启动} 01 --->|情况2:X = 1|11{满足情况s2,可以自启动}

情况1:
Y2n+1 = 0

Y1n+1 = 0(1+0) = 0

情况2;
Y2n+1 = 1(1+0) = 1
Y1n+1 = 1

检查无误,电路可以自启动,自此也就完成了

结尾补充

补充:
对于未用状态得2输出设置调整: 可以将其输出调整为无效即可
对于未用状态的次态设置调整:可以将未用状态的次态设置成初态或其编码最接近的工作状态 --例如:假设本题中的“01”未用状态,则可将其次态设置为“00”或“11”,这样列真值表时把他也考虑在内,在列卡诺图……等一系列操作

各位也可以根据这个思路,把JK触发器换成T触发器,总体步骤不变,列真值表时把jk换成T ,利用次态是否反转判断T的取值,列卡诺图……