搜索
bottom↓
回复: 25

FPGA程序时好时坏

[复制链接]

出0入0汤圆

发表于 2013-6-5 12:58:49 | 显示全部楼层 |阅读模式
最近在用x家的FPGA做一个项目,程序算是写出来了,感觉逻辑上应该没有问题了,但是烧进去后,老是时好时坏,用逻辑分析仪发现是不行的时候一般都停在一个状态完成然后就停止在那里了,不进入下一个状态,各位大虾有遇见过这种情况吗,这要怎么解决

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入17汤圆

发表于 2013-6-5 13:11:34 | 显示全部楼层
是因为晶振的问题吗?

出0入0汤圆

 楼主| 发表于 2013-6-5 13:15:06 | 显示全部楼层
流氓马 发表于 2013-6-5 13:11
是因为晶振的问题吗?

应该不是,这块板的硬件已经验证过了,没有问题

出0入0汤圆

 楼主| 发表于 2013-6-5 13:28:23 | 显示全部楼层
还有,flip flop对timing会有影响吗

出0入442汤圆

发表于 2013-6-5 13:28:55 | 显示全部楼层
好好仿真。程序问题。

出0入0汤圆

 楼主| 发表于 2013-6-5 13:54:51 | 显示全部楼层
额。。。FPGA真是个神奇的东西,还可以时好时坏的

出0入0汤圆

发表于 2013-6-5 14:52:46 | 显示全部楼层
这是FPGA具有智能的表现。

出0入0汤圆

发表于 2013-6-5 15:16:06 | 显示全部楼层
可能是那个边沿相对时钟没处理好,亚稳态了

出0入0汤圆

发表于 2013-6-5 16:40:30 | 显示全部楼层
有没有时序约束??

出0入0汤圆

 楼主| 发表于 2013-6-5 21:51:40 | 显示全部楼层
NJ8888 发表于 2013-6-5 15:16
可能是那个边沿相对时钟没处理好,亚稳态了

这种一般要用什么方法解决呢,是不是加个触发器?我看有一些项目的代码,他们从外面引进来的一些信号线都经过了两三个FDRSE才用到状态机里面

出0入0汤圆

 楼主| 发表于 2013-6-5 21:55:25 | 显示全部楼层
yuanbao502 发表于 2013-6-5 16:40
有没有时序约束??

额,可以说基本上没加,我的项目是在之前的基础上修改的,原来的那部分代码的已经有约束了,但我增加的那部分没有,还是新手,约束还懂得不多。。。

出0入0汤圆

 楼主| 发表于 2013-6-5 21:57:11 | 显示全部楼层
lans0625 发表于 2013-6-5 14:52
这是FPGA具有智能的表现。

搞了这么就感觉还是在被fpga虐

出0入0汤圆

发表于 2013-6-6 00:41:44 | 显示全部楼层
你有没有仿真,这很关键

出0入0汤圆

发表于 2013-6-6 05:51:56 | 显示全部楼层
用ModelSim仿真看看

出0入0汤圆

发表于 2013-6-6 09:03:39 | 显示全部楼层
learningAVR 发表于 2013-6-5 13:54
额。。。FPGA真是个神奇的东西,还可以时好时坏的

同样的程序烧到不同的板子表现就不一样,,,,而且每次还有变化.

出0入0汤圆

 楼主| 发表于 2013-6-6 13:48:42 | 显示全部楼层
wangjun403 发表于 2013-6-6 00:41
你有没有仿真,这很关键

有,我用ise里面的isim仿的,是能自动跳到下一状态的,关键是程序时好时坏,而不是一直都有问题。

出0入0汤圆

 楼主| 发表于 2013-6-6 13:51:46 | 显示全部楼层
解决了,在其中的用于状态跳转条件的一根线上串了3个FDRSE,然后才把线引导状态机里面就没问题了。估计就是8楼说的亚稳态问题八。

出0入0汤圆

发表于 2013-6-7 23:50:58 | 显示全部楼层
不稳定除了要考虑亚稳态以外,还要看时序是否收敛,是否满足运行频率,另外,一定要GCLK。如果用非GCLK的话,也有可能出现不稳定

出0入0汤圆

 楼主| 发表于 2013-6-11 13:04:52 | 显示全部楼层
zkf0100007 发表于 2013-6-7 23:50
不稳定除了要考虑亚稳态以外,还要看时序是否收敛,是否满足运行频率,另外,一定要GCLK。如果用非GCLK的话 ...

额。。。貌似时序不算很收敛,ise给的timing score有200w左右

出0入0汤圆

发表于 2013-6-11 17:26:54 | 显示全部楼层
最近我也遇到的,我是用一段式写的一个比较烦的状态机出现的。我用逻辑分析仪把状态机信号印出来采集发现状态机进入了一个不存在的状态,我也加了default来完善case语句,所以我也头疼,没道理的事。至今也没解决,有时候吧两个状态的位置调换一下,就不死机了,FPGA真是个神奇的东西。后来我发现我有几点不足,一个是我不会加约束。最近在看这方面东西,还一个是感觉要用三段式状态机拆开比较好,因为每个状态机里面的东西比较多。第三个也是我最担心的,我在很多状态里面都用到乘法“*”运算,功能没问题,但是感觉偶尔有算不完全的情况,我是寄存器和常数相乘。还是16位的乘法,编译没问题,但是感觉在一个周期做乘法实在不靠谱,最近想换算法,但是不知道乘法该怎么处理。我就说说我的郁闷指出,FPGA刚接触,感觉太烦人了!不过搞起来挺有意思的

出0入0汤圆

 楼主| 发表于 2013-6-12 14:30:01 | 显示全部楼层
bob_lee 发表于 2013-6-11 17:26
最近我也遇到的,我是用一段式写的一个比较烦的状态机出现的。我用逻辑分析仪把状态机信号印出来采集发现状 ...

有同感,我接触FPGA算起来也有一年了,过去的一年里,靠着几本vhdl的书和无数的datasheet,断断续续地用x家的spartan6做了一些外围器件的驱动,像CMOS摄像头、ddr2.ddr3、sd卡、vga、adc等等。这些都只是按照手册把时序写好就行,用到的状态机也很简单,我也是基本上靠if elsif else就搞定了,状态机这些基本上没有考虑过,神马timing constrain 也不懂。一直到最近这几个月接触到需要用到复杂状态跳转的状态机,我还是之前那种方法来做,终于这次碰了一鼻子灰,写出来的状态机老是出现莫名其妙的错误,各种时好时坏,明明这次可以了,调整一下其中的一个参数就又不行了。这次总算要好好地看一下这些东西了,不然只能一直在FPGA门口徘徊了。

出0入0汤圆

发表于 2013-6-12 15:14:56 | 显示全部楼层
learningAVR 发表于 2013-6-12 14:30
有同感,我接触FPGA算起来也有一年了,过去的一年里,靠着几本vhdl的书和无数的datasheet,断断续续地用x ...

呵呵,我比你还没入门才三个月吧,就这个项目开始的。ddr2/3都还不懂,不过状态机写过都没啥问题,就这次太大了问题莫名其妙的多,也是在看书中,对了以后有ddr方面的问题就要请教你了啊。我们用sram 贵,不过控制简单。开发快。以后降成本,我还没考虑呢,不过现在忙的焦头烂额的没时间想了。

出0入0汤圆

 楼主| 发表于 2013-6-12 15:32:42 | 显示全部楼层
bob_lee 发表于 2013-6-12 15:14
呵呵,我比你还没入门才三个月吧,就这个项目开始的。ddr2/3都还不懂,不过状态机写过都没啥问题,就这次 ...

共勉之!

出0入0汤圆

发表于 2013-6-15 12:22:59 | 显示全部楼层
状态机死机了
fpga不是那么容易搞的,fpga的.v .vhd也不叫程序

出0入0汤圆

发表于 2013-6-17 14:11:17 | 显示全部楼层
肯定是时序问题,好好仿真,注意不同时钟域之间的数据连接。

出0入0汤圆

发表于 2013-6-19 09:35:22 | 显示全部楼层
硬件描述语言不是程序,  程序你怎么写只要语法没错都可以编译过,也可以执行。   但是硬件描述语言是描述一个具体的电路的, 如果你描述的电路逻辑根本无法实现(一般是描述的逻辑存在歧义), 那综合出来的东西可能和你想象的天差地别,
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 05:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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