以前遇到过几次类似问题,只知道关闭一下就可以通过,但是没搞清原理。在Altera的一篇文档里找到了答案: riple
In the Settings dialog box, under the Compilation Process Settings section, select Incremental Compilation. Set the Incremental Compilation option to Off.
By turning off the Incremental Compilation option, pre-synthesis signals can be added to the SignalTap II ELA in the later sections. Pre-synthesis signals exist after design elaboration, but before any synthesis optimizations are done. This set of signals should reflect your register transfer level (RTL) signals.
背景资料:Using SignalTap II Embedded Logic Analyzers in SOPC Builder Systems riple
ash_riple_768180695 2008-1-13 19:22
用户128735 2008-1-12 09:50
你说的“遇到过几次类似问题”是不是指出现can't find the instance的错误?
我以前遇到这个问题的时候总是怀疑incremental compilation这种据说可以提高效率的编译方式必然存在一些瑕疵,比如会将我要观察的节点弄丢了,而我的stp文件中又指名要观察这个节点,所以烧下去会提示找不到。我还是觉得off掉是最好的方式,虽然编译时间会延长很多。
碰到这种问题我一般都是用一个土办法:就是把设计文件的编译选项中的incremental compilation设为off,编译一遍,然后再新建stp文件,这时的stp文件是默认将其自身的incremental compilation设为off的,然后添加节点(这时默认让我们添加的节点都是pre-synthesis ),再编译就OK了。依我的经验看成功率还是很高的,把这个写在这也算是希望能对过往的搜到这个帖子的人提供点线索吧,仅仅按楼主说的如果还不行的话可以试试我说的这个。
不过看了楼主的帖子我在考虑优化这个步骤的方案:
将第一次编译改为Start Analysis & Elaboration,因为这一步只是为了建立节点数据库。