FPGA代码运行不稳定的问题请教!
我写了一段Fpga代码在飓风3的片子上跑,运行有点不稳定,但每次我用Signle tap 去抓问题数据的时候,又怎么都不会出问题。我基本断定是布局布线对时序有影响,但不知怎么去解决,是代码写的不好,还是别的什么没设置好?从quartusii的时序分析报告来看,系统可以运行的最大频率有200多M,我实际用的时钟是60M的,为什么还会有问题啊?苦恼中。。。 这样的问题我也遇到过,我发现如果状态机跳转时如果采样异步信号容易出现这种问题,将异步信号同步后就没问题了sky5566 发表于 2012-9-25 17:44 static/image/common/back.gif
回楼上的兄弟,是设置的speed,运行的的还是不稳定,{:cry:} 个人认为可能代码问题,再好好想想有没有什么可以优化的地方,可能你没想到导致运行不稳定 看看时序分析报告,建立时间和保持时间是否都满足了。 先做个功能仿真试试,确认程序逻辑是正确的modelsim不能靠猜啊 skycomm 发表于 2012-9-26 11:27 static/image/common/back.gif
先做个功能仿真试试,确认程序逻辑是正确的modelsim不能靠猜啊
功能仿真时做过的,而且如果逻辑有问题,也不会有时候运行正常,有时候运行不正常啊。 Junker 发表于 2012-9-26 14:03 static/image/common/back.gif
功能仿真时做过的,而且如果逻辑有问题,也不会有时候运行正常,有时候运行不正常啊。 ...
我使用 Verilog 有發生過,改 VHDL 問題比較少.
還有我之前有個程序使用 VHDL 沒問題,但是換主程序是 Verilog 載入 VHDL 就出問題了,雖然調整 speed 可以改善,但是問題實在想不出來?
这种状况估计别人无法帮助了 還有就是版本問題 quartusii 9.1 有問題,不要使用!!!!
我使用相同程序, quartusii 9.1 運行有問題,換 10.1 後重新編都沒問題....{:shutup:} sky5566 发表于 2012-9-26 17:05 static/image/common/back.gif
還有就是版本問題 quartusii 9.1 有問題,不要使用!!!!
我使用相同程序, quartusii 9.1 運行有問題,換 10.1...
不是吧,这么坑哥,我用的正好是9.1的版本哦,请问楼上的兄弟的10.1版本的是在哪里下的,可以给个链接不 我觉得还是你程序的问题60m的状态机速度不算高啊SDRAM控制器都是100m以上的,可以试试规范下代码,多用同步 skycomm 发表于 2012-9-27 09:17 static/image/common/back.gif
我觉得还是你程序的问题60m的状态机速度不算高啊SDRAM控制器都是100m以上的,可以试试规范下代码,多 ...
其实我也是个菜鸟,楼上的兄弟可以对“同步”的概念和方法给一个简单的例子和说明不,万分感激{:handshake:} 代码问题吧。好好看看逻辑 我之前敗在這個架構,導致問題一堆
always @(posedge A)
begin
B <=1'b1;
end
always @(posedge B)
begin
C <=1'b1;
end
always @(posedge C)
begin
D <=1'b1;
end sky5566 发表于 2012-9-26 17:05 static/image/common/back.gif
還有就是版本問題 quartusii 9.1 有問題,不要使用!!!!
我使用相同程序, quartusii 9.1 運行有問題,換 10.1...
我觉得还是代码不够严谨,造成不同版本综合器综合出不同的结果,甚至有时候重新综合一次的结果都有可能跟前一次不一样。
最近在维护的一个代码就出现这种情况:
刚开始接手时,将代码编译后下载到设备不能用。交接的同事告诉我多编译几次,试了几次果然好了。
用同事的话来说就是:FPGA是一个神奇的东西!
我等菜鸟,只能尴尬一笑....
Coodool 发表于 2012-10-2 22:41 static/image/common/back.gif
我觉得还是代码不够严谨,造成不同版本综合器综合出不同的结果,甚至有时候重新综合一次的结果都有可能跟 ...
我表示笑而不语 本帖最后由 sky5566 于 2012-10-11 11:58 编辑
....代码不够严谨....
真的吗?我觉得代码好不好要看编程器软件的优劣,
比如说 Quartus II 10年还搞不定中文字乱码问题,据了解还需 100 年...
软件既然有优化的功能,那么就将代码优化掉就好了,这年头还有人工优化代码,那么BC的软体丢掉算了.
国外测试 xilinx 将 Virtex-6 程序放入 Spartan-3 会造成异常,因为Spartan-3 低成本,性能比Virtex-6差。
所以 Spartan-3 程序放入 Virtex-6 保证没问题
但是如果将 xilinx Spartan-3 程序放入ALTERA Cyclone xx 会造成异常
代表 Cyclone xx 低成本,性能比 Spartan-3 差很多.....
一分钱一分货,这就是 Cyclone 比 Spartan-3 便宜很多 我出现过这种情况可供大家参考:每个部分用verilog,顶层用bsd文件连在以前,发现采样时状态机有时会停在某个地方,且用signalTap检测时错误消失。经过查证,是有个模块更改状态机后,没有及时更新顶层文件导致。 wildone 发表于 2012-10-29 14:34 static/image/common/back.gif
我出现过这种情况可供大家参考:每个部分用verilog,顶层用bsd文件连在以前,发现采样时状态机有时会停在某 ...
想知道楼上的兄弟这个问题最后是怎么解决的,万分感激! Junker 发表于 2012-11-16 09:57 static/image/common/back.gif
想知道楼上的兄弟这个问题最后是怎么解决的,万分感激!
重新生成模块,在bsf里删掉原来的再导入最新的。 sky5566 发表于 2012-10-11 10:02 static/image/common/back.gif
....代码不够严谨....
真的吗?我觉得代码好不好要看编程器软件的优劣,
比如说 Quartus II 10年还搞不定中文 ...
cyclone也有很多系列,感觉普遍比赛灵思都贵呀 你有约束input delay和output delay吗?! ISE的话是约束input offset和output offset 应该是时序设计问题
页:
[1]