状态机未加超时退出机制问题分析

在 Altera Cyclon FPGA 平台上,用户在实时切换DDR分辨率时遇到偶尔的绿屏现象。分析表明,这可能是由于DDR读取长度改变导致的状态机死锁。解决方案是在状态机中引入超时退出机制,当状态机在某一状态停留过久,会自动返回初始状态,从而避免系统卡死。这一问题的解决强调了状态机设计中添加超时保护的重要性。
摘要由CSDN通过智能技术生成

(2019-11-29-10:24)
<涉及项目: Cyclon*81_***top>
平台: altera Cyclon

场景:需要用户根据需求实时切换两种分辨率,即DDR的读取长度可能随时会被忽然改变。

现象:切换分辨率偶尔出现绿屏,重启后又恢复。该现象具有概率性和随机性。

分析:抓revel发现rdgnt(响应)一直为高,说明ddr_bridge响应了rdreq, 但是却没等来正确长度的rdval。结果状态机就死在这里了。
可能是因为切分辨率的时候,读长度发生改变,导致状态机死机。

解决:状态机加上超时退出机制。卡死在某个状态超过固定时间后,就会退出该状态,回到初始状态。

总结: 状态机一定要配置超时退出机制。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ethan_WC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值