打印

三段式状态机状态跳转如何理解

[复制链接]
2235|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kdurant|  楼主 | 2013-4-26 10:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
网上的通用版本
//第一个进程,同步时序always模块,格式化描述次态寄存器迁移到现态寄存器
always [url=home.php?mod=space&uid=72445]@[/url] (posedge clk or negedge rst_n)   //异步复位
if(!rst_n)
    current_state <= IDLE;
else
    current_state <= next_state;//注意,使用的是非阻塞赋值
这样的话current_state总会滞后于next_state一个周期

可是按照字面理解的话next_state不是应该在current_state之后吗?

相关帖子

沙发
liusensen| | 2013-4-26 10:19 | 只看该作者
我感觉    应该是吧  

使用特权

评论回复
板凳
ifpga| | 2013-4-26 10:20 | 只看该作者
next 是比 current 晚
看一下时序电路结构图就明白了

使用特权

评论回复
地板
kdurant|  楼主 | 2013-4-26 10:42 | 只看该作者
本帖最后由 kdurant 于 2013-4-26 10:45 编辑

ifpga 发表于 2013-4-26 10:20
next 是比 current 晚
看一下时序电路结构图就明白了

这种写法

next 肯定比 current 早啊

使用特权

评论回复
5
ifpga| | 2013-4-26 11:03 | 只看该作者
呵呵,不好意思说反了

使用特权

评论回复
6
kdurant|  楼主 | 2013-4-26 11:06 | 只看该作者
但这和字面意思不就不一样了吗?为什么要这样搞

使用特权

评论回复
7
zhuyi1234567899| | 2013-4-26 12:24 | 只看该作者
current_state总会滞后于next_state一个周期:这个的说法是next_state先跑了一个周期,current_state才来......这样next_state是不是应该在前拉?

使用特权

评论回复
8
ococ| | 2013-4-26 13:06 | 只看该作者
当前状态的下一个状态就是接下来的当前状态。
这个还有什么疑问??

使用特权

评论回复
9
kdurant|  楼主 | 2013-4-26 13:39 | 只看该作者
zhuyi1234567899 发表于 2013-4-26 12:24
current_state总会滞后于next_state一个周期:这个的说法是next_state先跑了一个周期,current_state才来.... ...

就是这样的

使用特权

评论回复
10
kdurant|  楼主 | 2013-4-26 13:40 | 只看该作者
ococ 发表于 2013-4-26 13:06
当前状态的下一个状态就是接下来的当前状态。
这个还有什么疑问??

这样像绕口令了

使用特权

评论回复
11
changan1216| | 2013-4-26 14:11 | 只看该作者
今天的明天,等到明天不就变成今天了么
同理当前时钟的next,到下一个时钟就是current

使用特权

评论回复
12
ococ| | 2013-4-26 15:08 | 只看该作者
changan1216 发表于 2013-4-26 14:11
今天的明天,等到明天不就变成今天了么
同理当前时钟的next,到下一个时钟就是current ...

对这样表达比较容易理解呵呵

使用特权

评论回复
13
cuttler| | 2013-4-27 15:51 | 只看该作者
changan1216 发表于 2013-4-26 14:11
今天的明天,等到明天不就变成今天了么
同理当前时钟的next,到下一个时钟就是current ...

语文学得好啊

使用特权

评论回复
14
changan1216| | 2013-4-28 11:38 | 只看该作者
cuttler 发表于 2013-4-27 15:51
语文学得好啊

不幸的是高考语文不及格...........我都不知道是我语文太次,还是中国教育问题了:lol

使用特权

评论回复
15
闲来2012| | 2013-4-28 21:49 | 只看该作者
    current_state对应当前时钟,next_state对应下一个时钟状态机应该去的状态,下一个时钟来的时候current_state<=next_state执行,前一个时钟对应的下一个状态就被更新成当状态了。
     next_state的赋值是在当前时钟下进行的,所以仿真时它更新比current_state快。这就是字面意思和仿真感觉不一样的原因。

使用特权

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

本版积分规则

25

主题

279

帖子

0

粉丝