FSM状态机设计

1. 状态机主要分为两类:Moore型 & Mealy型

Moore状态机:输出仅仅与当前状态有关

Mealy状态机:输出不仅取决于当前状态,还和输入有关

2. 三段式状态机:

第一段:时序逻辑描述current state和next stage的转换

第二段:组合逻辑描述next stage的变化

第三段:描述输出响应(用组合逻辑还是时序逻辑都可以,具体看需求)

3. 经典例子:序列检测器设计

输入X随机序列,输出Z,假设检测序列是1001;它分为可重叠和不可重叠两类

可重叠:检测到的序列的最后可以作为下一个序列的开始

X:0010010011001

Z:0000010010001

不可重叠: 检测到的序列的最后不可以作为下一个序列的开始

X:0010010011001 

Z:0000010000001 

 

可重叠检测“1101”

Mealy型:4个状态

Step1:设立初始状态

Step2:B状态有两个方向,取1,则进入C状态,取0,非检测序列,进A;B其实表示这个序列的开头,A到B只是表示序列开始。

Step3:C有两个方向,如果取1,继续C状态。因为C其实表示连续的最后一个1,,比如序列是001110...,则状态是AABCCD...

Step4:D有两个方向,如果是0,则情况是1100,回到A,序列未开始,如果是1,则是1101,检测输出,此时因为是可重叠,所以回到B,表示这个1是序列的开头

Moore型:5个状态

 

 

不可重叠检测“1101”

Mealy型

不可重叠永远是重新再来,D回到A

Moore型

4. RTL编码:三段式

posted @ 2023-01-27 11:55  Kazu-ki  阅读(128)  评论(0编辑  收藏  举报