Junker 发表于 2012-9-25 15:31:45

FPGA代码运行不稳定的问题请教!

我写了一段Fpga代码在飓风3的片子上跑,运行有点不稳定,但每次我用Signle tap 去抓问题数据的时候,又怎么都不会出问题。我基本断定是布局布线对时序有影响,但不知怎么去解决,是代码写的不好,还是别的什么没设置好?从quartusii的时序分析报告来看,系统可以运行的最大频率有200多M,我实际用的时钟是60M的,为什么还会有问题啊?苦恼中。。。

hujianhuacas 发表于 2012-9-25 17:18:18

这样的问题我也遇到过,我发现如果状态机跳转时如果采样异步信号容易出现这种问题,将异步信号同步后就没问题了

sky5566 发表于 2012-9-25 17:44:35


Junker 发表于 2012-9-25 21:23:23

sky5566 发表于 2012-9-25 17:44 static/image/common/back.gif


回楼上的兄弟,是设置的speed,运行的的还是不稳定,{:cry:}

隐姓埋名 发表于 2012-9-25 23:42:04

个人认为可能代码问题,再好好想想有没有什么可以优化的地方,可能你没想到导致运行不稳定

wjfblack 发表于 2012-9-26 10:14:39

看看时序分析报告,建立时间和保持时间是否都满足了。

skycomm 发表于 2012-9-26 11:27:45

先做个功能仿真试试,确认程序逻辑是正确的modelsim不能靠猜啊

Junker 发表于 2012-9-26 14:03:10

skycomm 发表于 2012-9-26 11:27 static/image/common/back.gif
先做个功能仿真试试,确认程序逻辑是正确的modelsim不能靠猜啊

功能仿真时做过的,而且如果逻辑有问题,也不会有时候运行正常,有时候运行不正常啊。

sky5566 发表于 2012-9-26 15:39:43

Junker 发表于 2012-9-26 14:03 static/image/common/back.gif
功能仿真时做过的,而且如果逻辑有问题,也不会有时候运行正常,有时候运行不正常啊。 ...

我使用 Verilog 有發生過,改 VHDL 問題比較少.
還有我之前有個程序使用 VHDL 沒問題,但是換主程序是 Verilog 載入 VHDL 就出問題了,雖然調整 speed 可以改善,但是問題實在想不出來?


NJ8888 发表于 2012-9-26 15:54:33

这种状况估计别人无法帮助了

sky5566 发表于 2012-9-26 17:05:31

還有就是版本問題 quartusii 9.1 有問題,不要使用!!!!
我使用相同程序, quartusii 9.1 運行有問題,換 10.1 後重新編都沒問題....{:shutup:}

Junker 发表于 2012-9-26 20:16:12

sky5566 发表于 2012-9-26 17:05 static/image/common/back.gif
還有就是版本問題 quartusii 9.1 有問題,不要使用!!!!
我使用相同程序, quartusii 9.1 運行有問題,換 10.1...

不是吧,这么坑哥,我用的正好是9.1的版本哦,请问楼上的兄弟的10.1版本的是在哪里下的,可以给个链接不

skycomm 发表于 2012-9-27 09:17:17

我觉得还是你程序的问题60m的状态机速度不算高啊SDRAM控制器都是100m以上的,可以试试规范下代码,多用同步

Junker 发表于 2012-9-27 10:53:48

skycomm 发表于 2012-9-27 09:17 static/image/common/back.gif
我觉得还是你程序的问题60m的状态机速度不算高啊SDRAM控制器都是100m以上的,可以试试规范下代码,多 ...

其实我也是个菜鸟,楼上的兄弟可以对“同步”的概念和方法给一个简单的例子和说明不,万分感激{:handshake:}

浮云残雪 发表于 2012-9-27 11:23:02

代码问题吧。好好看看逻辑

sky5566 发表于 2012-9-27 12:33:56

我之前敗在這個架構,導致問題一堆
always @(posedge A)
      begin
            B <=1'b1;
      end

always @(posedge B)
      begin
            C <=1'b1;
      end

always @(posedge C)
      begin
            D <=1'b1;
      end

Coodool 发表于 2012-10-2 22:41:18

sky5566 发表于 2012-9-26 17:05 static/image/common/back.gif
還有就是版本問題 quartusii 9.1 有問題,不要使用!!!!
我使用相同程序, quartusii 9.1 運行有問題,換 10.1...

我觉得还是代码不够严谨,造成不同版本综合器综合出不同的结果,甚至有时候重新综合一次的结果都有可能跟前一次不一样。

最近在维护的一个代码就出现这种情况:
刚开始接手时,将代码编译后下载到设备不能用。交接的同事告诉我多编译几次,试了几次果然好了。
用同事的话来说就是:FPGA是一个神奇的东西!

我等菜鸟,只能尴尬一笑....

Junker 发表于 2012-10-11 09:26:40

Coodool 发表于 2012-10-2 22:41 static/image/common/back.gif
我觉得还是代码不够严谨,造成不同版本综合器综合出不同的结果,甚至有时候重新综合一次的结果都有可能跟 ...

我表示笑而不语

sky5566 发表于 2012-10-11 10:02:27

本帖最后由 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 便宜很多

wildone 发表于 2012-10-29 14:34:22

我出现过这种情况可供大家参考:每个部分用verilog,顶层用bsd文件连在以前,发现采样时状态机有时会停在某个地方,且用signalTap检测时错误消失。经过查证,是有个模块更改状态机后,没有及时更新顶层文件导致。

Junker 发表于 2012-11-16 09:57:27

wildone 发表于 2012-10-29 14:34 static/image/common/back.gif
我出现过这种情况可供大家参考:每个部分用verilog,顶层用bsd文件连在以前,发现采样时状态机有时会停在某 ...

想知道楼上的兄弟这个问题最后是怎么解决的,万分感激!

wildone 发表于 2012-11-16 12:01:14

Junker 发表于 2012-11-16 09:57 static/image/common/back.gif
想知道楼上的兄弟这个问题最后是怎么解决的,万分感激!

重新生成模块,在bsf里删掉原来的再导入最新的。

wildone 发表于 2012-11-16 12:04:18

sky5566 发表于 2012-10-11 10:02 static/image/common/back.gif
....代码不够严谨....
真的吗?我觉得代码好不好要看编程器软件的优劣,
比如说 Quartus II 10年还搞不定中文 ...

cyclone也有很多系列,感觉普遍比赛灵思都贵呀

ab8780000 发表于 2012-11-16 12:33:09

你有约束input delay和output delay吗?!

ab8780000 发表于 2012-11-16 12:38:57

ISE的话是约束input offset和output offset

usingavr 发表于 2012-11-16 12:50:41

应该是时序设计问题
页: [1]
查看完整版本: FPGA代码运行不稳定的问题请教!