集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: ICE

毛刺引起状态机的死掉,大家帮说说原因!!!

[复制链接]
CHANG 发表于 2010-6-26 08:42:11 | 显示全部楼层
能具体说说是什么条件吗?
VVC 发表于 2010-6-26 10:27:54 | 显示全部楼层
楼主写的状态机存在反馈,这个反馈信号就是st,因此对毛刺比较敏感。从电路上看,st经过了触发器,然后再经过组合逻辑电路if得到新值反馈回状态判决器。利用retiming技术把触发器后移。可以得到改善。<br>
具体实现上应该定义present state 和next state两个状态,通过对next state操作,然后在时钟沿把next state 传递给present state.
longt 发表于 2010-6-26 12:20:31 | 显示全部楼层
大家还是说说根本原因啊
VVC 发表于 2010-6-26 14:06:00 | 显示全部楼层
对状态机是不是只定义了两种状态?若不是则case语句不完整。假设除了idle和s1还有一个状态s2。并假设系统上电后(或者因为干扰造成)状态机进入s2状态,那么系统就死在这个状态了,只好用rst来复位。<br>
另外,我对状态机不怎么明白,我不知道编译软件对状态机的编码是不是能保证不出现无效状态。所以即使是仅仅两种状态,我也建议写成when idle =&gt;... when others =&gt; ...;而不是写成when idle =&gt;... when s1 =&gt; ...;<br>
<br>
由于对你阐述的环境我无法全面把握,所以不好确定地说到底是那个地方导致了&ldquo;死机&rdquo;。
longtim 发表于 2010-6-26 15:55:41 | 显示全部楼层
你的状态机的写法是不提倡的,11楼的同仁的建议值得楼主自己学习一下。
HANG 发表于 2010-6-26 17:20:59 | 显示全部楼层
没其他状态了,而且我的程序中也用WHEN OTHERS了<br>
我是觉得因为毛刺引起了亚稳态,使状态机死在了一个未知的状态,状态机在这种情况下就跳不出来了<br>
即使有when other =&gt;也是没用的。
interige 发表于 2010-6-26 19:10:25 | 显示全部楼层
楼主不把整个程序贴出来不好回答你,你连&ldquo;死&rdquo;的现象都没有陈述出来,整个程序如何运作,或者在仿真,运行上什么现象?有些状态机单独看是没有问题,但是和整个电路联系起来会出问题!
interige 发表于 2010-6-26 19:51:24 | 显示全部楼层
状态机由于干扰跑到非有效的状态中去的问题我经常遇到,我的解决办法是在case的default状态中根据一些正在使用的寄存器的值,再把状态准确地拉回原来地地方
dlb05061131 发表于 2011-1-12 13:56:00 | 显示全部楼层
楼主写的这个,好像不是很好。你看看怎么避免产生锁存器吧,有可能是这个问题
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-29 01:33 , Processed in 0.060097 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表