采用小规模集成器件设计同步时序逻辑电路

   例
试设计一个序列脉冲检测器,当连续输入信号110时,该电路输出为1,否则输出为0。
    解:由设计要求可知,要设计的电路有一个输入信号X 和一个输出信号Z,电路功能是对输入信号进行检测。
    1.由给定的逻辑功能确定电路应包含的状态,并画出原始状态图。
    因为该电路在连续收到信号110时,输出为1,其他情况下输出为0,因此要求该电路能记忆收到的输入为0,收到1个1,连续收到两个1,连续收到110后的状态,由此可见该电路应有4个状态,用S0表示输入为0时的电路状态(或称初始状态),S1、S2、S3分别表示收到一个1,连续收到两个1和连续收到110时的状态。先假设电路处于状态S0,在此状态下,电路可能输入有X=0和X=1两种情况。若X=0,则输出Z=0,且电路应保持在状态S0不变;若X=1,则Z=0,但电路应转向状态S1,表示电路收到一个1。现在以S1为现态,若这时输入X=0,则输出Z=0,且电路应回到S0,重新开始检测;若X=1,则输出Z=0,且电路应进入S2,表示已连续收到两个1。又以S2为现态,若输入X=0,则输出Z=1,电路应进入S3状态,表示已连续收到110;若X=1,则Z=0,且电路应保持在状态S2不变。再以S3为现态,若输入X=0,则输出Z=0,电路应回到状态S0,重新开始检测;若X=1,则Z=0,电路应转向状态S1,表示又重新收到了一个1。根据上述分析,可以画出该例题的原始状态图,如图1所示。
    2.状态化简。
    观察图1便知,S0和S3是等价状态,因为当输入X=0时,输出Z都为0,而且次态均转向S0;当X=1时,输出Z都为0,而且次态均转向S1,所以S0和S3可以合并。去掉S3的圆圈及由此圆圈出发的连线,将指向S3的连线指向S0,得到简化后的状态图,如图2所示。
    3.状态编码及画编码形式的状态图和状态表。

                   
图1  例1的原始状态图 图2  例1的简化状态图 图3  例1的编码形式的状态图

    由图2可知,该电路有3个状态,可以用2位二进制代码组合(00,01,10,11)中的任意三个代码表示,这里取00,01,11分别表示S0,S1,S2,即令S0=00,S1=01,S2=11。图3是该例的编码形式的状态图。
    由编码形式的状态图可画出编码后的状态表如表1所示。

表1  例1的编码状态表

    4.选择触发器。
    根据式 2n-1<M≤2n可知,本例需用两个触发器,可选用前面介绍的集成JK 触发器HC76。
    5.确定各触发器的驱动方程及电路的输出方程。
    根据编码状态表1及JK 触发器的驱动表,画出各触发器驱动信号及电路输出信号的真值表,如表2 所示,由此表画出各触发器JK 端和电路输出端Z的卡诺图。如图4所示,利用卡诺图化简得各触发器的驱动方程及电路的输出方程。

    图4  驱动信号及输出信号的卡诺图

J0=X      K0=X  ;    J1=XQ0      K1=X  ;    Z=XQ1

表2  驱动信号及输出信号的真值表
输入 现态 次态 输出 驱动信号
X Q 1n Q 0n Q 1n+1 Q 0n+1 Z J 1 K 1 J 0 K 0
0 0 0 0 0 0 0 × 0 ×
0 0 1 0 0 0 0 × × 1
0 1 1 0 0 1 × 1 × 1
1 0 0 0 1 0 0 × 1 ×
1 0 1 1 1 0 1 × × 0
1 1 1 1 1 0 × 0 × 0

    6.根据方程画出逻辑。

图5  例1的逻辑电路图

    7.检查该电路的自启动能力。
    当电路进入无效状态10后,由各方程可知,若X=0,则次态为00,若X=1,则次态为11,电路能自动进入有效序列。但从输出来看,若电路在无效状态10,当X=0时,Z=1,这是错误的。为了消除这个错误输出,需要对输出方程作适当修改,即将图4中输出信号Z卡诺图内的无关项XQ1Q0不画在包围圈内,则输出方程变为Z=XQ1Q0,根据此式对图5也作相应修改即可。
    如果发现设计的电路没有自启动能力,则应对设计进行修改。其方法是:在驱动信号之卡诺图的包围圈中,对无效状态的处理作适当修改,即原来取1画入包围圈的,可试改为取0而不画入包围圈,或者相反。得到新的驱动方程和逻辑图,再检查自启动能力,直到能够自启动为止。

,   例
试设计一个序列脉冲检测器,当连续输入信号110时,该电路输出为1,否则输出为0。
    解:由设计要求可知,要设计的电路有一个输入信号X 和一个输出信号Z,电路功能是对输入信号进行检测。
    1.由给定的逻辑功能确定电路应包含的状态,并画出原始状态图。
    因为该电路在连续收到信号110时,输出为1,其他情况下输出为0,因此要求该电路能记忆收到的输入为0,收到1个1,连续收到两个1,连续收到110后的状态,由此可见该电路应有4个状态,用S0表示输入为0时的电路状态(或称初始状态),S1、S2、S3分别表示收到一个1,连续收到两个1和连续收到110时的状态。先假设电路处于状态S0,在此状态下,电路可能输入有X=0和X=1两种情况。若X=0,则输出Z=0,且电路应保持在状态S0不变;若X=1,则Z=0,但电路应转向状态S1,表示电路收到一个1。现在以S1为现态,若这时输入X=0,则输出Z=0,且电路应回到S0,重新开始检测;若X=1,则输出Z=0,且电路应进入S2,表示已连续收到两个1。又以S2为现态,若输入X=0,则输出Z=1,电路应进入S3状态,表示已连续收到110;若X=1,则Z=0,且电路应保持在状态S2不变。再以S3为现态,若输入X=0,则输出Z=0,电路应回到状态S0,重新开始检测;若X=1,则Z=0,电路应转向状态S1,表示又重新收到了一个1。根据上述分析,可以画出该例题的原始状态图,如图1所示。
    2.状态化简。
    观察图1便知,S0和S3是等价状态,因为当输入X=0时,输出Z都为0,而且次态均转向S0;当X=1时,输出Z都为0,而且次态均转向S1,所以S0和S3可以合并。去掉S3的圆圈及由此圆圈出发的连线,将指向S3的连线指向S0,得到简化后的状态图,如图2所示。
    3.状态编码及画编码形式的状态图和状态表。

                   
图1  例1的原始状态图 图2  例1的简化状态图 图3  例1的编码形式的状态图

    由图2可知,该电路有3个状态,可以用2位二进制代码组合(00,01,10,11)中的任意三个代码表示,这里取00,01,11分别表示S0,S1,S2,即令S0=00,S1=01,S2=11。图3是该例的编码形式的状态图。
    由编码形式的状态图可画出编码后的状态表如表1所示。

表1  例1的编码状态表

    4.选择触发器。
    根据式 2n-1<M≤2n可知,本例需用两个触发器,可选用前面介绍的集成JK 触发器HC76。
    5.确定各触发器的驱动方程及电路的输出方程。
    根据编码状态表1及JK 触发器的驱动表,画出各触发器驱动信号及电路输出信号的真值表,如表2 所示,由此表画出各触发器JK 端和电路输出端Z的卡诺图。如图4所示,利用卡诺图化简得各触发器的驱动方程及电路的输出方程。

    图4  驱动信号及输出信号的卡诺图

J0=X      K0=X  ;    J1=XQ0      K1=X  ;    Z=XQ1

表2  驱动信号及输出信号的真值表
输入 现态 次态 输出 驱动信号
X Q 1n Q 0n Q 1n+1 Q 0n+1 Z J 1 K 1 J 0 K 0
0 0 0 0 0 0 0 × 0 ×
0 0 1 0 0 0 0 × × 1
0 1 1 0 0 1 × 1 × 1
1 0 0 0 1 0 0 × 1 ×
1 0 1 1 1 0 1 × × 0
1 1 1 1 1 0 × 0 × 0

    6.根据方程画出逻辑。

图5  例1的逻辑电路图

    7.检查该电路的自启动能力。
    当电路进入无效状态10后,由各方程可知,若X=0,则次态为00,若X=1,则次态为11,电路能自动进入有效序列。但从输出来看,若电路在无效状态10,当X=0时,Z=1,这是错误的。为了消除这个错误输出,需要对输出方程作适当修改,即将图4中输出信号Z卡诺图内的无关项XQ1Q0不画在包围圈内,则输出方程变为Z=XQ1Q0,根据此式对图5也作相应修改即可。
    如果发现设计的电路没有自启动能力,则应对设计进行修改。其方法是:在驱动信号之卡诺图的包围圈中,对无效状态的处理作适当修改,即原来取1画入包围圈的,可试改为取0而不画入包围圈,或者相反。得到新的驱动方程和逻辑图,再检查自启动能力,直到能够自启动为止。

采用小规模集成器件设计同步时序逻辑电路

相关文章:

你感兴趣的文章:

标签云: