写好的模块,单独运行时可以正常执行,合在一起运行时就不出现像了,求高手指点。
时间:10-02
整理:3721RD
点击:
写好的模块,单独运行时可以正常执行,一和其他程序和在一起运行时就不出现像了,求高手指点。 该模块是串口通信模块,平时单独用事没有问题将其设为顶层文件,运行也没有问题,就是一放到整个程序中就不行了,找了好长时间也没发现问题。
通常出现的问题是 接口协议没匹配好 还有测试隐藏的bug没debug到
是不是连线问题
2L和3L说的都有可能,可以仿真一下看看。
仅根据你现在说的现象很难定位到具体问题啊
lack of info ...
谢谢大家 问题已经解决了 问题是FPGA 在接受数据时,用的 if else 太多了,当大于四个之后,其接收数据就会出问题,而四个以内的都正常。
应该是接口时序没配对
根据解决的方法看,问题的产生和代码的复杂程度有关,有可能是时序问题,也可能是信号fanout等其他问题,值得研究一下。建议做一下时序分析,应该可以找出问题的根本原因
原来是时序不满足导致的
IF else 在综合的时候,如果太多,造成的延时一定非常大,这样,接口时序就无法满足了。
如果是IF ELSE多了就不对的话,有可能是时序问题,因为if else这是用组合逻辑生成的。
当条件选择比较多时,最好使用case语句,不要使用if...elseif...else语句,熟悉综合的朋友应该都会知道:
case语句综合后的电路是没有优先级的,面积小,路径延迟小
if..else if..else语句综合后的电路具有优先级,面积较大,路径延迟较大
除非必须使用具有优先级的电路,才使用if...else if...else语句描述
It should be timing problem...
You can do a timing analysis in TimeQuest...
我遇到过,我处理了很长时间,最后发现还是代码有问题,仔细看看代码
估计是连接问题
