这几天在升级了Quartus 9.1之后,想添加Terasic的IP核,发现添加的速度很慢,原因是因为没有升级,所以下面就有一个warning,同时,加载ip的速度很慢,让人很受不了。
虽然这个对整个工程的整体功能上没有什么影响,但是,每次加载ip核速度都这么慢,至少要两分钟的话,确实有点让人受不了,所以呢,我就按照他的要求给他进行升级。步骤如下:
1、选中要升级的ip核,右键Upgrade
注:这里,我已经升级成功了DM9000A,所以上面已经有了,如果没有升级的话,只有下面一个经典版。
2、出现如下画面
注:表示已经编译成功啦,说明已经没有问题啦,进行下一步。
3、点击close,进入HDL Files,如下图所示
注:这里面也显示是没有error,没有warnings,但是这里就是最关键的一步,上面的红圈所示,默认的情况下,里面是没有设置top level module,不过照理来看,只有一个verilog文件的情况下,如果你不设置的话,也应该是他。但是这里面,就是9.1带来的bug啦,如果你不设置的话,就会出现下面的结果,如下图1所示,当你设置了top level module的时候,就会多了一个信号,如下图2所示:
图1(没有加top level module)
图2(加了top level module)
很明显,这里是有差别了,当你手动添加了,top level module的时候,多了一个复位信号。可能有的人会说,竟然不添加也没有错误的话,大可以更新成功就行啦,这里,我当初也是这么很快的更新成功啦,可以最后的结果是,ip倒是更新成功啦,可是,结果却没有出来,也就是说,这个ip是无效的。所以,这里,强烈建议大家在做这一步的时候,手动添加一个top level module。
4、修改iRST_N信号的Avalon接口类型
在一般的情况下,这个信号应该是clk信号的复位信号,不知道系统默认的是beginbrusttransfer_n信号,这里我只有手动更改它的信号类型。
注:修改的结果如上图所示,这里有个技巧,照理应该先修改interface里面,将avalon_slave_0改为clk,之后,修改signal type为rest_n,这里你会发现下面还是有warning,这里,你大可以再修改一下interface为clk,这样这个warning就消失了,这可能是软件的一个bug吧,没有什么,只是消除一个bug的小窍门。
5、进入下一步,到最后finish就ok!
注:点击finish就结束啦。
总结:
这里就是一个复位信号没有被软件发现,导致后面ip的更新无效,这应该是9.1的一个bug吧,以前的版本我也更新过,但是也没出现过这些问题,这可能就是以前大家所说的,千万不要总更新quartus软件的原因吧,稳定的版本比较少。不过这里,我还是犯了一点求之过急的错误吧,要是我一步步的来,应该能早点发现这个问题。