interige 发表于 2010-6-26 01:41:50

关于状态机的写法问题

本帖最后由 fpgaw 于 2010-11-18 16:15 编辑

状态机要写成3段式的(这是最标准的写法),即
   ...
   always @(posedge clk or negedge rst_n)
   ...
   current_state <= next_state;
   ...
   always @ (current_state ...)
   ...
   case(current_state)
   ...
   s1:
      if ...
      next_state = s2;
   ...
   ...
   always @(posedge clk or negedge rst_n)
   ...
   else
      a <= 1'b0;
      c <= 1'b0;
      c <= 1'b0;    //赋默认值
   case(current_state)
       s1:
         a <= 1'b0; //由于上面赋了默认值,这里就不用再对b
、c赋值了(b、c在该状态为0,不会产生锁存器,下同)
       s2:
         b <= 1'b1;
       s3:
         c <= 1'b1;
       default:
       ...
...
小弟我看不太明白,哪位大侠可以写得再详细一点啊。

interi 发表于 2010-6-26 03:16:30

楼主可以说出来什么地方不明白吗,这个确实是最标准的状态机的写法。<br>
btw:好像论坛的搜索不大好用的说

UFP 发表于 2010-6-26 05:01:59

我觉得没什么标准不标准的,只要区分好MOORE 和MEELY, 然后根据情况 写就行了

usb 发表于 2010-6-26 05:46:47

偶现在还不了解状态机,可以自己写程序吗?我发现很多都是用哪个状态机输入各种情况,然后生成程序。

usd 发表于 2010-6-26 07:01:40

状态机还是得好好学学得说

HANG 发表于 2010-6-26 09:00:37

怎么区分moore和mealy型的状态机呢?不明白啊

ICE 发表于 2010-6-26 09:11:26

有VHDL写的吗

interige 发表于 2010-6-26 11:08:06

我的blog里面有VHDL写的

longtim 发表于 2010-6-26 12:10:42

状态机还是很有用的

VVC 发表于 2010-6-26 12:39:07

moore型状态机的输出只和当前的状态有关,而mealy型状态机的输出不仅和当前状态有关系,还和输入有关,见图
页: [1] 2
查看完整版本: 关于状态机的写法问题