微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 为什么代码实现不了

为什么代码实现不了

时间:10-02 整理:3721RD 点击:
我写的代码(有点点复杂),在MODELSIM仿真实现了,在QII 里编译也通过了,可是下载到芯片中,有时可以看到结果,有时又不可以。而且奇怪的是,有时改动了底层A模块的一点点点,底层B模块(与A模块的功能无关)也实现不了、受影响了。很苦闷呀!为什么会这样呢?高手给指点一下

呃,你的问题描述得太模糊了。
有可能是因为coding style造成综合器不明白你的意思而综合出错误的结果。
有可能是因为你的代码的时序有问题。

楼上说的是最可能的问题所在。不要认为仿真通过了,就可以获得实际想要的结果。最好看看时序分析方面的信息是否满足。

3# gaurson
那时序分析是不是tool->advisor->Timing Optimization Adivsor 这里呢?
我这里的确看到有一个时钟信号出现一些failed paths 警告,更改设置编译后,这些警告没有了。不知道说的是不是这里。

这里是一个,其他的还要具体分析。最好能做个后仿真看看。

选保持分层,生成网表,后仿一下
一般来说都是coding style的问题,造成了仿真与综合结果不一致
也可能是仿真的太过简单,没有遍历corner case

6# kmac
我钻研太多浮浅了,conner case ?不懂嘞

仔细检查一下,应该不是难事。

conner case就是说一些极限情况或者很容易被忽视的细节没有被仿真到,毕竟要完全随机化还是不可能的。

有可能是时序不满足引起的,仔细看下时序报告,一般的设计做好前仿真且保证时序能够满足就可以了。但仿真应注意与实际情况符合,不要造成有的情况没有仿真到。

先好好检查一下代码

再仔细检查一遍时序,要耐心的

这种问题我做毕设的时候也有。太纠结了。modelsim仿真好好地,一下载运行就有莫名其妙的问题。当时又没逻辑分析仪看看到底咋回事。signaltap又玩不转。

是的,往往由于时序的问题,改动一点点也会引起综合的大相径庭

没看懂你的描述

其实,郁闷的是:同一个编译后的sof文件,烧录第一、二次不行,第三或许就可以了,哎,头疼死了……

这个也许和连线或者硬件上的不稳定有关系,确实不好说,像这种不太容易把握的问题。

或者看看哪儿错了,定位一下,顺藤摸瓜了。

可以考虑做一下Formal verification,保证rtl与netlist的一致性?!

这个 不会呀,如何做呢?

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

网站地图

Top