内容正文:
同步时序电路的设计举例
同步时序电路的设计举例
【例】 试用JK触发器完成“111”序列检测器的设计。
表 6-22 状态表
第 6 章 时序电路的分析与设计
建立原始状态图和状态表
根据设计命题要求初步画出的状态图和状态表,称为原始状态图和原始状态表,它们可能包含多余状态。从文字描述的命题到原始状态图的建立往往没有明显的规律可循,因此,在时序电路设计中这是较关键的一步。画原始状态图、列原始状态表一般按下列步骤进行:
① 分析题意, 确定输入、 输出变量。
② 设置状态。 首先确定有多少种信息需要记忆, 然后对每一种需要记忆的信息设置一个状态并用字母表示。
③ 确定状态之间的转换关系, 画出原始状态图, 列出原始状态表。
第 6 章 时序电路的分析与设计
② 设置状态。
状态是指需要记忆的信息或事件,由于状态编码还没有确定,所以它用字母或符号来表示。分析题意可知,该电路必须记住以下几件事:收到了一个1;连续收到了两个1;连续收到了三个1。因此,加上初始状态,共需四个状态,并规定如下:
S0: 初始状态, 表示电路还没有收到一个有效的1。
S1: 表示电路收到了一个1的状态。
S2: 表示电路收到了连续两个1的状态。
S3: 表示电路收到了连续三个1的状态。
第 6 章 时序电路的分析与设计
③ 画状态图,列状态表。
以每一个状态作为现态,分析在各种输入条件下电路应转向的新状态和输出。该电路有一个输入变量X,因此,每个状态都有两条转移线,画状态图时应先从初始状态S0出发 当电路处于S0状态时,若输入X=0,则输出Z=0,电路保持S0状态不变,表示还未收到过1;若输入X=1,电路应记住输入了一个1,因此,电路应转向新状态S1,输出Z=0。当电路处于S1状态时,若输入X=0,则输出Z=0,电路回到S0状态重新开始;若输入X=1,电路应记住连续输入了两个1因此,电路应转向新状态S2,输出Z=0。以此类推,可以画出完整的状态图如图6-31所示,并可作状态表如表6-14所示。
第 6 章 时序电路的分析与设计
图 6-31 例 6-3Mealy型原始状态图
第 6 章 时序电路的分析与设计
表 6-14 例6-3Mealy型原始状态表
第 6 章 时序电路的分析与设计
当电路处于S0状态时,表示电路还没有收到一个有效的1,则输出Z=0;若输入X=0,则电路保持S0状态不变;若输入X=1, 电路应记住输入了一个1, 电路应转向新状态S1。当电路处于S1状态时,表示电路收到了一个1,则输出Z=0;若输入X=0,电路回到S0状态重新开始;若输入X=1,电路应记住连续输入了两个1,因此,电路应转向新状态S2。当电路处于S2状态时, 表示电路收到了两个1,则输出Z=0;若输入X=0,电路回到S0状态重新开始;若输入X=1,电路应记住连续输入了三个1, 因此,电路应转向新状态S3。当电路处于S3状态时,表示电路收到了三个1,则输出Z=1;若输入X=0,电路回到S0状态重新开始;若输入X=1,根据题意,电路可保持原状态S3不变即可。 这样,就可以得到Moore型结构的原始状态图如图6-32所示, 并可作状态表如表6-15所示。
第 6 章 时序电路的分析与设计
表 6-15 例 6-3 Moore型原始状态表
第 6 章 时序电路的分析与设计
图 6-32 例 6-3Moore型原始状态图
第 6 章 时序电路的分析与设计
【例 6-4】 建立一个余3码误码检测器的原始状态图和原始状态表。
余3码高位在前、低位在后串行地加到检测器的输入端。电路每接收一组代码,即在收到第四位代码时判断一下。若是错误代码,则输出为1,否则输出为0,电路又回到初始状态并开始接收下一组代码。
解:
① 确定输入变量和输出变量。
输入变量X为串行输入余3码, 高位在前, 低位在后; 输出变量Z为误码输出。
第 6 章 时序电路的分析与设计
② 设置状态。
该电路属于串行码组检测,对输入序列每四位一组进行检测后才复位,以表示前一组代码已检测结束并准备下一组代码的检测,因此,初始状态表示电路准备开始检测一组代码。本命题的状态图采用树形结构,从初始状态开始,每接收一位代码便设置一个状态。例如,电路处于初始状态S0,收到余3码的第一位(最高位),代码可能是1,也可能是0。若为0,状态转到S1