打印

大家状态机的写法

[复制链接]
1862|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wxfxwk1986|  楼主 | 2011-10-2 16:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家写状态及时是分两端写还是三段写啊。我说的三端是指控制部分和数据部分,控制部分分成两个always来写,两段的话控制部分用一个always,三段的话如下;
always@(posedge clk)
begin
   if(rst)   state<=s_idle;
  else   state<=next_state;
end

always(state)//此always用来产生下个状态的组合逻辑
begin
.......
end
我一直在用这种方式写状态机,但最近我忽然想到一个问题,这种方式写的话,产生的输出控制信号是异步的。
大家的看法呢?另外控制部分在一个always应该怎么写?

相关帖子

沙发
可木| | 2011-10-8 22:10 | 只看该作者
个人认为控制部分在一个always里写大多都用case语句吧,我一般是这么用的!

使用特权

评论回复
板凳
leoph| | 2011-10-12 21:11 | 只看该作者
你的这种写法应该算是两段式写法,用两个always描述状态机。前一个是时序电路,有一个是逻辑电路。建议:
1)两段都用时序电路;2)用三段式,a)状态翻转用逻辑电路,b)状态输出用时钟打一拍进行同步,c)时序电路描述输出和控制信号。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

250

帖子

1

粉丝