关于状态机的写法问题
本帖最后由 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:
...
...
小弟我看不太明白,哪位大侠可以写得再详细一点啊。 楼主可以说出来什么地方不明白吗,这个确实是最标准的状态机的写法。<br>
btw:好像论坛的搜索不大好用的说 我觉得没什么标准不标准的,只要区分好MOORE 和MEELY, 然后根据情况 写就行了 偶现在还不了解状态机,可以自己写程序吗?我发现很多都是用哪个状态机输入各种情况,然后生成程序。 状态机还是得好好学学得说 怎么区分moore和mealy型的状态机呢?不明白啊 有VHDL写的吗 我的blog里面有VHDL写的 状态机还是很有用的 moore型状态机的输出只和当前的状态有关,而mealy型状态机的输出不仅和当前状态有关系,还和输入有关,见图
页:
[1]
2