在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 16590|回复: 13

[求助] 求助!关于verilog 状态机的嵌套

[复制链接]
发表于 2013-6-30 00:10:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
顶层有个状态机state(A,B,C……)A中嵌套有一个子状态机(A1,A2,A3……)
比如现在从A2中跳转到B状态如何实现?除了设置一个信号检测还有别的方法吗?谢谢各位!
发表于 2013-7-1 10:52:10 | 显示全部楼层
不用满足条件就直接从A2跳到B?一般来说是要有条件变化的,就用这个条件进行判断即可
发表于 2013-7-1 14:03:30 | 显示全部楼层
回复 1# Tristan90


   1.有条件跳转   2.无条件跳转

lz二选一就可以了

取决于你的状态机要完成的具体功能
发表于 2013-10-26 10:25:29 | 显示全部楼层
我这几天就在做类似的问题,前几天我也在论坛上面发帖子问主从状态机的问题,后来我问到别人,又试了一下,简要写下主从状态机的实现方法:<br>
假如主状态机如下(A,B,C,D代表不同的状态):<br>
A----&gt;B-----&gt;C------&gt;D------&gt;A<br>
主状态机实现了状态的循环移动,现在我们假设C这个状态下面需要嵌套一个从状态机,假设从状态机如下:<br>
SA-----&gt;SB------&gt;SC-----&gt;SD--------&gt;SA<br>
在这里面,主状态进入C之后,立即给一个enable信号,启动从状态机,这个时候设置一个从状态机的完成信号finish(高电平有效),在主状态机里面,最开始初始化的时候设置finish为低,然后主状态机里面一直不停的检测这个finish信号,当finish信号为高的时侯,就进入下一个主状态。<br>
再来说从状态机,SA里面首先也作一个不停的检测,即检测enable信号,当检测到enable信号到来的时候,从状态机启动,进入SB,于是从状态机开始工作,等到从状态机运行结束之后,finish信号置高,从状态机完成,从状态机回到SA状态,重新检测下一个enable信号的到来。<br>
这样做的话,就要求enable信号是一个脉冲信号(至于如何实现脉冲信号,我就不多说了)。enable和finish信号仅仅用于连接两个状态机。<br>
最后,我还想说,其实enable和finish似乎可以不用脉冲信号,用电平信号也应该可以,原理大体相同,就开如何置位了。<br>
不知道我说清楚没有
发表于 2013-10-26 10:27:44 | 显示全部楼层
这个大家讨论讨论。看看怎么实现起来能好些
发表于 2013-10-27 12:59:01 | 显示全部楼层
回复 4# moonlightbrothe


   finish信号在主状态机和从状态机里面都有赋值,会产生多重驱动的问题吗?
发表于 2013-10-27 20:47:45 | 显示全部楼层
做过,但是觉得不好,
最好还是该设计吧。
发表于 2014-4-4 15:40:54 | 显示全部楼层
感谢楼主,感谢楼主的热心奉献!
发表于 2014-4-4 15:41:30 | 显示全部楼层
感谢楼主,感谢楼主的热心奉献!
发表于 2014-4-4 15:57:07 | 显示全部楼层
3楼是正解
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-26 20:24 , Processed in 0.030083 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表