问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 4810 人浏览分享

开启左侧

三段式状态机

[复制链接]
4810 0
在FPGA逻辑电路中,如果状态机比较大,需要的状态转移、信号等处理比较复杂,建议使用三段式状态机来完成设计。当采用三段式建模描述FSM的状态机输出时,只需要指定case敏感表为次态寄存器,然后直接在每个次态的case分支中描述该状态的输出即可,不需要考虑状态转移条件。
虽然三段式描述方法的代码结构复杂了一下,但是换来了很多好处:使FSM做到了同步寄存器的输出,消除了组合逻辑输出的不稳定与毛刺的隐患,而且更有利于时序路径分组,并且便于维护。
三段式结构:
1:
     reg [2:0] current_state,next_state;
always@(posedge clk or negedge rstn)
begin
if(!rstn)
current_state<=scan_idle;
else
current_state<=next_state;
2:
always@(*)
begin
          next_state=IDLE;
      case(current_state)
          S1:if(...)
                     next_state=S2:
                else.....
           S2:........
   endcase
end
3:
always@(posedge clk or negedge rstn)
begin

   if(!rstn)
....
else
case(next_state)
S1:
S2:
......
dafalut
endcase
end



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

4

关注

3

粉丝

18

主题
精彩推荐
热门资讯
网友晒图
图文推荐

  • 微信公众平台

  • 扫描访问手机版