微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 写好的模块,单独运行时可以正常执行,合在一起运行时就不出现像了,求高手指点。

写好的模块,单独运行时可以正常执行,合在一起运行时就不出现像了,求高手指点。

时间: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...

我遇到过,我处理了很长时间,最后发现还是代码有问题,仔细看看代码

估计是连接问题

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top