打印

FPGA代码设计过程中故障记录

[复制链接]
1700|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ywert000|  楼主 | 2012-12-28 16:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
故障情况:
外部EEPROM存储器在设备上电过程中,出现数据被改写情况.导致数据丢失.
故障定位:
对设备进行反复的加断电实验,发现故障出现,用独立的读存储器代码将存储器中相关字节读出通过串口发送回计算机,可看到相关字节无规律的被改写为FF,但无规律可寻.更换存储器,故障依旧,排除存储器损坏可能.
使用逻辑分析仪,观察上电时存储器CE,WE,OE三个管脚时序, 用CE信号做触发信号,发现在正常读时序前有时间长度为60uS的不规律脉冲出现在三个管脚上.
故可怀疑为代码问题或者FPGA问题.
检查读EEPROM字节代码,未发现问题,使用MODELSIM做前仿和后仿,时序正确.故排除代码问题.
设置一测试信号,FPGA在上电完成配置后,即刻将该测试信号拉高.
使用示波器观察FPGA核电压建立到该测试信号变高间时间约为720mS,CE第一次动作到该测试信号变高见时间为12mS,故可确定与代码无关.
最后将故障定位为FPGA上电配置时管脚电平状态翻转造成EEPROM误动作问题.

解决方法:
   在FPGA管脚约束时将EEPROM的CE,WE,OE全部PULL UP .
利用RC电路做一延时电路,延时电路加电时保持2s高电平后变低,利用这一电路来关闭EEPROM在上电2S中的写操作.

相关帖子

沙发
ywert000|  楼主 | 2012-12-28 16:54 | 只看该作者
举一反三:
   利用FPGA,CPLD,ARM,单片机设计的系统,设备上电时候应该对敏感信号管脚加以控制,以得到更高的可靠性.

使用特权

评论回复
板凳
hawksabre| | 2012-12-28 18:23 | 只看该作者
很不错   呵呵  其实很多时候所谓的错误都是由于我们人为的粗心或者疏忽造成的   软件毕竟是死的   规则设计好了  你就得按这个来  呵呵  用多了  自然就熟悉了   哦呵呵

使用特权

评论回复
地板
shiyinjita| | 2012-12-28 21:50 | 只看该作者
这个还有一种方法可以解决,就是让fpga的配置速度加快,也有可能解决

使用特权

评论回复
5
neufeifatonju| | 2012-12-28 21:58 | 只看该作者
这个确实要注意,fpga配置需要时间,包括与配置flash的时间关系

使用特权

评论回复
6
GoldSunMonkey| | 2012-12-28 22:49 | 只看该作者
感谢分享

使用特权

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

本版积分规则

10

主题

155

帖子

0

粉丝