微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA的状态机BUG,郁闷

FPGA的状态机BUG,郁闷

时间:10-02 整理:3721RD 点击:

近来我写了一些Verilog代码实现通信,仿真通过,不过运行长时间后就“僵”死了,必须手动reset才继续动,过阵子又出现类似问题。后来我把状态机的状态在LED上显示,我用的是独热编码,发现出故障时竟然一个LED都不亮(照理说应该至少有一个是亮的),我检查了状态机没问题啊,default 语句也有( 执行stata<=IDE)。 我用的是quartus 9.0 for linux, FPGA用的是EP3C16F。 有其他人也遇到过类似问题或者纠正我的错误?先谢谢!我目前只能认为是综合编译器的问题,default被忽略了,但是fpga运行是受到某种干扰,状态被至于一种未在状态机器中定义的,这样就“僵”住了。

有可能FPGA有问题

你可以使用signalTap看看你的状态机在锁死时是什么状态啊,我怀疑是你的时钟有问题或是你的时序不过,状态机直接进入了亚稳态

有没有检查时序?

1# richardyicai
最大的可能还是时序的问题,小编再查一下吧

FPGA综合时,一般都会忽略default,可以从综合结果上确认。
至于状态机僵死的原因,首先确认僵死后进入的状态。出现这种情况,大部分都是逻辑设计的问题。

OK了,之前我发现有些不寻常的warning, 我把代码重新整理了一下, 编译后不再产生之前的warning后就一切正常了,跑了2天还没有发现之前的问题。感谢各位的提示和建议。

lz可以将为什么会出现问题写详细一点,免得还有人犯这种错误么

时序的问题。

有可能是异步复位导致的问题。

呵呵,综合后的warning要仔细看看哦!

呵呵,受教了!

原因不明啊

那都可能出问题啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top