数字状态机设计:从D触发器到状态图的深入解析
1. D触发器在状态机设计中的应用
1.1 “1s计数机”设计
“1s计数机”是一个具有两个输入(X和Y)和一个输出(Z)的时钟同步状态机。输出Z在自复位以来X和Y输入中1的数量为4的倍数时为1,否则为0。
虽然乍一看,由于要对任意长时间内的1输入进行计数,该机器似乎需要无限个状态,但实际上由于输出仅指示输入数量对4取模的结果,因此只需要四个状态,分别命名为S0 - S3,其中S0为初始状态,Si中接收到的1的总数为i对4取模的结果。以下是状态和输出表:
| X Y | 含义 | S | 00 | 01 | 11 | 10 | Z |
| — | — | — | — | — | — | — | — |
| | 得到零个1(模4) | S0 | S0 | S1 | S2 | S1 | 1 |
| | 得到一个1(模4) | S1 | S1 | S2 | S3 | S2 | 0 |
| | 得到两个1(模4) | S2 | S2 | S3 | S0 | S3 | 0 |
| | 得到三个1(模4) | S3 | S3 | S0 | S1 | S0 | 0 |
该机器可以使用两个状态变量对其四个状态进行编码,且无未使用状态。这里选择按照卡诺图顺序(00, 01, 11, 10)将编码状态分配给命名状态,原因有二:一是在该状态表中,这种分配方式可使大多数状态转换时状态变量的变化数量最小化,从而简化激励方程;二是便于将信息机械地转移到激励图中。
基于所选状态分配的转换/激励表如下:
| X Y | Q1 Q2 | 00 | 01 |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



