前言
状态机在学习FPGA初期就经常遇到,有必要写一篇笔记整理一下
正文
一、什么是状态机
为啥要用状态机
由于FPGA是并行执行,但当我想要处理有先后顺序的问题,这个时候就需要用状态机来解决
有几种状态机让我选
Moore状态机、Mealy状态机(记得B站数电老师讲到过这两个词语,先挖个坑)
这两个让我怎么选
Moore状态机:输出只和当前状态有关,与输入无关。
Mealy状态机:输出和输入、当前状态有关(常用)
相同点:状态的跳转只和输入有关
二、状态机的结构
由于一段式状态机、两段式状态机、三段式状态机中,三段式状态机是最常用的,我就暂时只记录三段式状态机的相关内容
2.1 状态编码
首先要将状态机的所有状态进行编码,这个编码只需要保证没有重复编码即可
parameter IDLE = 3'd0;
parameter HALF_1 = 3'd1;
parameter ONE = 3'd2;
parameter HALF_3 = 3'd3;
2.2 第一段:时序逻辑
第一段是时序逻辑: 描述状态转换,格式固定
always@(posedge Clk or negedge Rst_n)begin
if(Rst_n == 1'b0)
state
关注
打赏
