解:由设计要求可知,要设计的电路有一个输入信号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的编码形式的状态图 |
由编码形式的状态图可画出编码后的状态表如表1所示。
表1 例1的编码状态表 |
根据式 2n-1<M≤2n可知,本例需用两个触发器,可选用前面介绍的集成JK 触发器HC76。
5.确定各触发器的驱动方程及电路的输出方程。
根据编码状态表1及JK 触发器的驱动表,画出各触发器驱动信号及电路输出信号的真值表,如表2 所示,由此表画出各触发器JK 端和电路输出端Z的卡诺图。如图4所示,利用卡诺图化简得各触发器的驱动方程及电路的输出方程。
J0=X K0=X ;J1=XQ0 K1=X ;Z=XQ1 |
表2 驱动信号及输出信号的真值表 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
图5 例1的逻辑电路图 |
当电路进入无效状态10后,由各方程可知,若X=0,则次态为00,若X=1,则次态为11,电路能自动进入有效序列。但从输出来看,若电路在无效状态10,当X=0时,Z=1,这是错误的。为了消除这个错误输出,需要对输出方程作适当修改,即将图4中输出信号Z卡诺图内的无关项XQ1Q0不画在包围圈内,则输出方程变为Z=XQ1Q0,根据此式对图5也作相应修改即可。
如果发现设计的电路没有自启动能力,则应对设计进行修改。其方法是:在驱动信号之卡诺图的包围圈中,对无效状态的处理作适当修改,即原来取1画入包围圈的,可试改为取0而不画入包围圈,或者相反。得到新的驱动方程和逻辑图,再检查自启动能力,直到能够自启动为止。