原创 有限状态机

2009-3-22 15:05 4468 3 3 分类: FPGA/CPLD

状态机应由唯一时钟触发,尽量不要设计异步状态机,要设计同步有限状态机。


同步有限状态机:状态的变化还要看输入的条件,若满足,进入下一个状态。下一个状态=Function(当前状态,输入信号)


两种有限状态机(FSM):


1.Moore机:输出=Fun(当前状态)。


2. Mealy机:输出=fun(当前状态,输入信号)


状态机异步置位和复位信号要在敏感列表中。


同步置位复位敏感事件只包括时钟信号。


高速状态机状态码与状态机输出有联系。


状态编码建议采用独热码,一位二进制表示一个状态,有几个状态,状态变量就有几位。


对于复杂的多输出FSM,采用状态变化与输出控制分开的方式,如下:


parameter START = 1;


always @(posedge clk)   //该过程块负责控制状态的转换


……


case(state)


    START:if(A) state <= STOP;


                   else         state <= START;


   ……


endcase


always @(state)    begin        //该过程块负责根据状态决定输出


  if(state ==START)   out =1;


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条