Bless_Bigo

Modelsim仿真quartus ii ip解决办法(fft为例)

0
阅读(11754)

       用Modelsim对quartus ii的ip核进行仿真,有时候真的很头疼(本人才疏学浅,至少我是这样的),一般情况下有两种解决办法:

  1. 通过quartus ii调用modelsim进行仿真。这种方法能确保modelsim能成功的对quartus ii库进行加载并仿真,但是缺点十分明显,那就是每次修改再仿真的时候这个过程等待的时间实在是太长长长长长长长长长长了= =!

  2. 将quartus ii生成的ip核文件全部复制到一个新的文件夹里,直接在modelsim上进行修改仿真,优点是速度会比联合仿真快得多!但也有特别麻烦的地方,需要添加各种库,添加到你想哭。

       我用的是Modelsim SE 6.5版。       

       在按照网上给出的Modelsim库安装教程把quartus ii的库都装了一遍,在仿真pll,ram,rom等也挺好使的,不过当我对fft ip核进行仿真的时候问题就来了,就算添加了预装在modelsim里的各种库,编译始终都无法通过,一般会遇到以下问题如图所示:

图 1 Error (vsim-3033)

图 2 Error (vsim-3043)

      图1的错误信息写着:Instantiaion of 'asj_fft_si_sose_so_b_fft_120' faile.The design unit was not found.

这是fft ip核主文件fft_ip.v里例化的一个模块,在fft-library文件夹里可以找到,但是打不开,因为加密了,这个时候有的人以为是少了什么库,其实不然,添加了也没办法解决。原因是在modelsim里添加编译的文件时不应该选择fft_ip.v,而是fft_ip.vo!!!!!(具体文件名根据创建ip核时起的名字而定)

     图2的错误信息是添加了fft_ip.vo文件之后产生的,这次的原因确实少了某些库,于是我又给modelsim装了一遍库,并且查了一下当时quartus ii调用modelsim时在modelsim里显示的加载库的信息,发现有5个库,于是又这回可以准确的把需要的库添加进来了。可还是不行,总是提示XXXXnot found。简直是抓狂。

     下面给出quartus ii结合modelsim仿真的有效解决方案。

     首先在quartus ii建立工程该写的写,该编译的编译,tb文件该做的做。第一次通过quartus ii调用modelsim进行第一次仿真(大的工程可以睡一觉再回来看看.....),编译通过出现了仿真界面后就可以关了。之后会发现quartus ii文件夹里面多了个simulation----modelsim如图。

库的位置1.jpg

      verilog_libs就是modelsim仿真这个工程时需要的库!!!!一个也不多,一个也不少!

      然后,新建个modelsim仿真专用的文件夹,把要仿真的.v文件和一些需要用到的.hex文件全部放进去,新建个modelsim工程,添加文件(再次提醒,仿真fft只用添加fft_ip.vo而不是fft_ip.v),编译。点击仿真,添加库,如图。点击Browas按钮把verilog_libs文件夹里的所有子文件夹依此添加进来,最后再选择你的tb文件,启动仿真。

库的位置2.jpg

      编译是通过的!结果如下,妈妈再也不用担心没有仿真库的问题了!

最后成果.jpg

       以后的程序调试都可以在modelsim中进行,速度远远快于quartus ii调用仿真!因为这个库的问题断断续续的困扰了我至少一周,在这期间一点进度都没有,把时间浪费在软件问题上,而不是实质的技术问题上是很亏的!因此,我希望我写的这篇文章能帮到初学者。

                      Bless Bigo

2016.3.22