原创 QuartusII增量编译的个人学习(一)

2012-10-9 13:41 5487 15 15 分类: FPGA/CPLD 文集: 增量编译

前几天老师需要一个设计数据,是有关一个大的FPGA工程中小模块的编译报告,由于时间有点久远,之前的小模块工程已经不知道在哪里了(自己也觉得这里做的很不好,虽然模块小,但设计之初也都是经过仔细设计仿真验证的,应该做好存档才对)……好吧,虽然没了也没关系,其实也很简单,把大工程copy一下,然后把子模块置顶,重新编译不就好了嘛。

可编译后问题来了,报错了!而且有点莫名其妙,一开始有点懵,不知道出在哪里……

增量编译01.jpg

Error: Partition hierarchy "PN_gen:inst2" does not exist in the current design or refers to an inferred hierarchy
Error: Partition hierarchy "TS_gen:inst5" does not exist in the current design or refers to an inferred hierarchy

几个错误都很相似,大致的意思就是说划分的“****”这些模块不存在当前的设计里面。这里就觉得奇怪了,出现错误的这些模块本来就是原来大工程下的其它子模块,当然不包括在现在的设计里面了,怎么还报错呢??

双击红色的ERROR提示没有反应,于是又再右键错误->help:

增量编译02.jpg

大致意思就是设定的区域划分没有实体……建议删除或者重建区域划分。看完之后,还是一头雾水……原本该是个很简单的操作,怎么出现这样的错误呢?首先静下来想想,不能慌,总结下这个问题,我个人获得以下这些信息:

(1)双击红色ERROR提示没反应,说明肯定不是设计文件出的错,应该是某个编译设置或者是综合设置不对;

(2)help和ERROR提示中有个关键词——“Partition”,中文解释也就是区域划分的意思,总觉得在哪里见过,可又想不太起来。

怀疑是编译设置部分出的问题那就先打开qsf文件看看!(qsf属于命令行文件,我们通过Quartus软件上进行的设置操作都会以命令的形式写入到这个文件里)虽然里面大部分内容可能大家不是很熟悉,不过不要紧,通过单词和变量大致猜猜某个命令是和什么有关的还是没问题的。打开后我就看到下面一堆的命令:(图中为之后注释掉的内容)

增量编译03.jpg

为什么会注意到这些?很简单,关键字PARTITION,还有出错的各个模块名称。然后分析下这些命令才让我想起来,原来这些是当时由于工程较大,采用了Quartus的增量编译时进行逻辑区域划分时设置的

找到错误就好办了,把这部分命令注释掉,再编译就没有问题了。

本文暂时先不对Quartus的增量编译介绍了,想先总结总结在这个问题里面,出现错误时应该遵循的某些分析方法和流程。

第一、出错后我们的第一反应都会是双击ERROR提示看看会跳到哪里……的确,这是最直接的方法,而且一般设计上的大部分问题都可以通过这种方法来解决;

第二、当自己对这个错误不熟悉的时候,可以在ERROR提示处右键->help,然后会弹出Altera给出的关于这类错误的解释,不过它能做的只是解释这个错误类型,但肯定不可能针对你的工程给出什么解释;

第三、对于错误提示的内容,在不熟悉的时候应该要看出里面的“关键词”,进而缩小我们分析的范围;

第四、学会查看qsf文件的命令内容,当设计文件没问题的时候,很可能是里面的某个命令导致了你的错误;

最后,呵呵,大家都知道,利用网络资源,有海量的大牛们都在网上呢!!你解决不了的问题,肯定有人已经遇到过或者解决了~~

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
15
关闭 站长推荐上一条 /3 下一条