Verilog有限状态机的三种描述


 

Verilog中描述有限状态机,可以有三种形式,可分为一段式、二段式和三段式。这三种描述主要根据其输入、输出和状态来分类。

 

一段式状态机:一段式状态机只选择一个状态标志位,这个状态标志位会在输入的决定下选择跳转到下一个状态还是维持原有状态,在每一个状态下检测状态标志位及输入来决定其状态的跳转及输出。其输出和状态的切换在一个always循环块中执行。

egalways()

    begin

        S0begin state = in)? S0s1out =  ; end

            S1begin state = in)? S1s2out =  ; end

            S2.....................................

    end

    

 

二段式状态机:二段式状态机将状态分为当前状态和此状态,其系统会自动将次状态更新到当前状态,其输入更新在次状态上,其决定系统的状态切换和输出。其输出和状态的切换在两个个always循环块中执行,第一个always块决定系统状态标志的自动跳转,第二个always块决定系统根据不同状态下的输入进行状态的跳转及输出。

eg: always()

      begin

         state=next_state

      end

 

     always()

      begin

         S0begin next_state = in)? S0s1out =  ; end

             S1begin next_state = in)? S1s2out =  ; end

             S2.....................................

 

      end

 

三段式状态机:二段式状态机将状态分为当前状态和此状态,其系统会自动将次状态更新到当前状态,系统的输入更新在次状态上,其决定系统的状态切换,系统会根据其当前状态决定输出的值。其输出和状态更新和状态切换在三个always块中,第一个always块决定系统状态标志的自动跳转,第二个always块决定系统根据不同状态下的输入进行状态的切换,第三个always块根据系统的当前状态决定输出的值。

eg: always()

      begin

         state=next_state

      end

    

   

     always()

      begin

         S0next_state = in)? S0s1; 

             S1next_state = in)? S1s2; 

             S2.....................................

      end

 

    always()

     begin

          S0out =  ; 

              S1out =  ; 

              S2.....................................

     end

 

 

   

 

 

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值