微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于状态机编写风格的一些疑问

关于状态机编写风格的一些疑问

时间:10-02 整理:3721RD 点击:
不论是Moore Machine还是Mealy Machine,都是有两个寄存器的,一个是当前状态(state),另一个是下一状态(nextstate)。
那么写Verilog代码的时候,可不可以直接用一个state呢?比如如下代码,这么写仿真能跑通,但是有什么问题吗?(这么写挺方便的啊)

  1. always @(posedge Clk)
  2.      begin
  3.      if(Rst)
  4.        begin
  5.          state <= 0;
  6.        end  
  7.      else  
  8.       case(state)
  9.        3'b000:        // To initialize Vmem, Calcium, EP, EN, IP, IN and counters
  10.         begin
  11.           do something
  12.           state <= 3'b001;
  13.         end
  14.        3'b001:            // Inherent leakages of Vmem, EP, EN, IP, IN, C of this particular neuron
  15.         begin
  16.           state <= 3'b010;
  17.           do something
  18.         end
  19.        3'b010:                   // iterate 135 times to accumulate EP, EN and IP and IN
  20.         begin
  21.           if(cnt==135)
  22.             begin
  23.               cnt <= 1;
  24.               state <= 3'b011;
  25.             end
  26.           else
  27.             cnt <= cnt + 1;
  28.           cnt_lsm <= 1;
  29.           do something
  30.         end
  31.        3'b011:                        // Finalize the membrane potential Vmem
  32.         begin
  33.             state <= 3'b100;
  34.             do something
  35.         end
  36.        ......
  37.      endcase
  38.      end   

复制代码

Mark下,关注大神回答

这么写也是可以的,功能一样的。你可以综合成电路看看,综合出来的应该是一样的。我们公司有的代码就是这么写的。

都说三段式状态机好,我个人还是喜欢二段式状态机的风格,不区分state 和 next_state

这里仅仅是编码风格的问题,没有什么问题。,一段式的你也放心使用吧!

状态机的next state在状态转移图中的概念,不不意味着在一个状态机中存在两个状太寄存

学习~

学习中

我也觉得用一个状态,两段式好一些;状态转移和输出分开,一目了然

学习下~

其实正式提出来的只有两段式和一段式

这是哪个设备的状态机

一段式状态机个人觉得有点乱,实习的时候上手第一个项目就是一段式写的,由于状态太多,现在看起来- -乱起八糟;现在一般用两段式和三段式,相对来说比较好管理。

表示支持2段。一段专门状态跳变。一段输入输出。



   其实你说的跟三段式是一个意思,三段式只是形式多了一个:next_state<=current_state;



    其实我觉得三段更加利于维护,然后好像之前看过说两段式会有毛刺。

其实123段式状态机综合出来没有本质区别,不同之处在于,书写习惯以及对于调试维护的方便程度而已。遇到一些复杂的状态机以及复杂的输出情况,三段式的优势就很明显,所以,别嫌麻烦,能三段式最好三段式吧

个人习惯问题,其实都一样

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top