首先介绍一下Xilinx几个主要的仿真库(路径:D:\Xilinx\11.1\ISE\verilog\src\)
- Unsim文件夹:Library of Unified component simulation models。仅用来做功能仿真,包括了Xilinx公司全部的标准元件。每个元件使用一个独立的文件,这样是为了方便一些特殊的编译向导指令,如`uselib等。
- XilinxCoreLib: CORE Generator HDL Library model。仅用来做功能仿真,包括了使用Xilinx Core Generator工具产生的IP仿真模型,例如FIFO等。
- SIMPRIM: Library of generic simulation primitives。用来做时序仿真或者门级功能仿真。
- SmartModel:用来模拟非常复杂的一些FPGA设计,其中用到了Power PC或者RocketIO等。
我们一般只用其中的三个库:simprims,unisims,xilinxcorelib。
编译Xilinx仿真库有多种方法,比如,可以在ISE软件中编译xilinx仿真库,这样在ISE调用Modelsim进行仿真了。但是利用ISE调用Modelsim仿真虽然操作方便,但是每次仿真前都要先进行综合,这样会很费时间,如果单独用Modelsim进行仿真,则可以不用进行综合而直接进行功能仿真。不进行综合就仿真的结果是可能本来的设计就是不可综合的。但是只要按照可综合的代码风格进行设计一般不会出现这中问题。这样做的好处是节省了综合需要耗费的时间,所以下面主要介绍直接利用Modelsim编译Xilinx库,并进行仿真的流程。
Step1:在Modelsim的安装路径下建立一个文件夹,用来存储编译后的库文件。
Step2:打开Modelsim,更改路径为xilinx_lib
Step3:新建一个库,命名为xilinx_unisims,用来存放unisims库编译后的文件。
Step4:将unisims库文件编译到xilinx_unisims库中。选择Compile
在Library选择刚创建的xilinx_unsims库,查找范围为D:\Xilinx\11.1\ISE\verilog\src\unisims,然后全选所有文件,点击右下角Compile进行编译
编译完成后可以看到unisims库的文件都被编译到xilinx_unsims库中去了。
Step5:按照Step4的方法创建xilinx_corelib和xilinx_simprims两个库,分别将XilinxCoreLib和simprims文件夹的文件编译到这两个库中去。编译完成后可以看到Library中多出了刚才创建的三个库。
Step6:在安装目录下找到modelsim.ini文件,关掉它的只读属性,并添加以下三个语句,将这三个库添加到默认库文件中去。
添加完成后,保存,并把modelsim.ini改为只读。
这样以后再次打开Modelsim以后就可以看到Library中多出了刚才创建的三个库。