原创 状态机的学习

2010-6-4 11:47 2488 1 1 分类: FPGA/CPLD
状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。“现态”和“条件”是因,“动作”和“次态”是果。详解如下:
  ①现态:是指当前所处的状态。
  ②条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。
  ③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。

  ④次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。


作用  它对数字系统的设计具有十分重要的作用。



  有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。一般来说,除了输入部分和输出部分外,有限状态机还含有一组具有“记忆”功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器。在有限状态机中,状态寄存器的的下一个状态不仅与输入信号有关,而且还与该寄存器的当前状态有关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑有可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。




 
分类

  在实际的应用中,根据有限状态机是否使用输入信号,设计人员经常将其分为Moore型有限状态机和Mealy型有限状态机两种类型。1 Moore型有限状态机 其输出信号仅与当前状态有关,即可以把Moore型有限状态的输出看成是当前状态的函数。2 Mealy型有限状态机 其输出信号不仅与当前状态有关,而且还与所有的输入信号有关,即可以把Mealy型有限状态机的输出看成是当前状态和所有输入信号的函数。


module machine(x,clock,current_state,z);
       input x,clock;
       output [1:0]current_state;
       output z;
      
       reg [1:0]current_state;
       reg z;
      
       reg [1:0]next_state;
       reg previous_z;
       parameter [1:0]set0=0;
                 hold0=1;
                 set1=2;
       always @(x or current_state)
       begin
       case(current_state)
       set0: begin
             z="0";
             next_state=hold0;
             end
            
       hold0:begin
             z="previous"_z;
             if (x==0)
                next_state=hold0;
             else
                next_state=set1;
             end
            
       set1: begin
             z="1";
             next_state=set0;
             end
       endcase 
       end
      
       always@(posedge clock)
             begin
             current_state=next_state;
             previous_z=z;
             end
       endmodule
      
      

PARTNER CONTENT

文章评论0条评论)

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