由于一直在忙,都没有空来解决,然后发现网上也有遇到这问题,但是似乎没有解决方法,并且更多的提示是在于破解没有破解好。后来自己琢磨,发现问题并不在modelsim的破解。
这个问题是因为:计算机一次选择的verilog文件太多。
解决方案为:将库uinsims文件夹中的verilog文件分批次编译
下面是我的实例,xilinx库为随便ISE拷过来的unisims库,第一个文件是AFIFO36_INTERNAL.v,最后一个文件是ZHOLD_DELAY.v,如果在编译库的时候,一次性选择所有文件,编译就会出现上图的错误。但是如果将unisims库中文件分几次编译就不会出错,感觉原因是由于计算机配置比较低造成的。
编译后的结果是:
这样编译就没有问题,但是此时库并不能使用,点击modelsim的library会发现unisims后面的显示和其他的不一样。
对于这种情况,就需要修改modelsim安装路径下的modelsim.ini文件。去掉modelsim.ini文件的只读属性,将modelsim.ini文件默认情况下的:
修改为:
其中=后面的为在modelsim中新建库unisims的存放路径。保存后,再次打开modelsim。
出现这样的结果,就表明库已经编译成功。
上面编译库的方法,对于altera的库非常适用,但是对于xilinx的库就有些不太方便。在xilinx的ISE或是vivado中都可以编译库,到时候只要将编译好的文件夹的路径在modelsim.ini文件中修改。
例如,由于最近需要仿真PCIE ip core,但是在使用vivado调用modelsim时候,老是提示库有问题。所以一直在纠结怎么编译最完整的库,后来发现不是库的原因,是modelsim版本太低,如果使用vivado编译库,必须使用10.1以上的modelsim,上次用的10.0a都不可以。
如果计算机中没有安装xilinx的ISE,vivado,或是在使用ISE或vivado编译库失败,如果需要仿真xilinx的ip core的时候,此时由于没有办法自己生成编译好的库文件夹。此时有两个办法,1.在ISE安装目录下找到库文件(都是些verilog或VHDL文件),然后按照上面的方法编译。2.直接将其他电脑上编译好的库文件夹拷贝到自己的电脑里面。个人推荐方法2,测试发现即使是用64位电脑编译的库文件夹,放到32位的电脑中依旧可以使用。
例如:在其他电脑中编译好了xilinx的库文件,并放在文件夹compile_simlib中,如图
如何区别这是否是编译好的,主要是打开文件夹,如果文件夹里面有很多@,那么就是编译好的库,如果是verilog/vhdl文件,则是没有编译的,如图:
可以看出我只是将文件夹compile_simlib放在D盘下,然后修改文件modelsim.ini,修改为:
然后打开modelsim,点击library,发现多了上面的库文件了,如图:
这样就可以不安装ISE或是vivado,就可以使用modelsim来仿真xilinx的IP core了