ModelSim作布局布线后仿真的库问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ModelSim作布局布线后仿真的库问题
Modelsim是目前最流行的应用最广泛的FPGA仿真器,是Mentor Graphics的子公司Model T echnology开发的。因为Modelsim好学易用,调试方便,仿真速度快,功能强大,所以很多芯片厂商的开发系统都OEM Mentor Graphics公司的Modelsim仿真器,包括Xilinx,Alter a,Lattice和Actel等。Modelsim是一个单内核仿真器,同一个内核可以进行VHDL仿真、V
erilog仿真和VHDL/Verilog混合仿真;支持所有的VHDL和Verilog标准;采用直接编译技术
(Direct-Compiled),大大提高了HDL编译和仿真速度。
Modelsim支持三个层次的仿真:RTL仿真、综合后仿真和布局布线后仿真。为了加快仿真速
度,一般情况下设计中调用的库都是已经进行编译过的,然后对设计进行仿真,此时仿真器直接调用库中已经编译过的单元,而不是再次对设计中的单元模块进行编译。所以如果要对设计进行综合后仿真和布局布线后仿真,必须先对设计中调用的库进行编译处理。这也是本文的重点内容。因为每个厂商的库不一样,而且同一个厂商,不同的器件库就有可能不同,所以下面就目前国内比较常用的几个公司的芯片的库问题分别进行探讨。1.Xilinx公司的器件:
其库的处理方式有两种,一种是在Xilinx的网站上,我们可以下载到压缩文件xilinx_lib
_4.zip,解压缩后有一个xilinx_lib_4.tcl(将来的版本可能会升级)。单独运行Models
im,然后在工具菜单中有一项是执行宏(这里Modelsim5.5 和5.6、5.7有一些差异,不过在5.5中仍可以找到执行宏Execute Macro),运行xilinx_lib_4.tcl后可以看到。
你可以根据你的厂商软件版本选择,指定Xilinx 的安装路径,在Install Path中指定你编
译后的数据将要放的目录位置(可以是任何一个目录,最好是设计者数据盘中的某个目录,因为库编译一次就可以了,重新安装软件不需要重新编译库)。对于Xilinx作布局布线后仿真只需要simprim库即可;如果要作综合后仿真,就需要编译Unisim库;如果设计中调用了
CoreGen产生的核就需要编译CoreGen库。这应该根据设计者的具体情况进行选择。
如果编译完了后,在Modelsim中库会自动变为标准库(注意:Xilinx提供的早期脚本文件作不到这一点)。所谓标准库,也就是说这个库会和IEEE这些库一样,当Modelsim启动时,这
些库会自动加载,里面的单元在VHDL代码中可以随意调用。比如:在布局布线后的VHDL 文
件中大家可以看到Library simprim这样的语句。当然也可以自己手动改变这些库的性质,只用修改在Modelsim安装路径下的Modelsim.ini文件即可。比如:修改后的Modelsim.ini 可以看到为
[Library]
std = $MODEL_TECH/../std
ieee = $MODEL_TECH/../ieee
verilog = $MODEL_TECH/../verilog
std_developerskit = $MODEL_TECH/../std_developerskit
synopsys = $MODEL_TECH/../synopsys
modelsim_lib = $MODEL_TECH/../modelsim_lib
simprim = D:/test/test/simprim
unisim = D:/test/test/unisim
logiblox = D:/test/test/logiblox
simprims_ver = D:/test/test/simprims_ver
unisims_ver = D:/test/test/unisims_ver
xilinxcorelib = D:/test/test/xilinxcorelib
xilinxcorelib_ver = D:/test/test/xilinxcorelib_ver
lpm = d:/test/test/lpm
…
可以看到修改后的文件中simprim库和IEEE等标准库处于同等的位置。如果关于这些库的行不加到这个文件中,那么每做一个项目的时候,设计者都要建立一个库,然后把这个库和编译后的目录映射好。比如:在Modelsim中用命令
vlib simprim
vmap simprim D:/test/test/simprim
在一个项目中设置的库对其他项目是无效的,所以如果你经常用一些库,就可以把这些库设置成标准库。
另外一种编译库的方法更本质一些,上面这种方法是厂商做一个脚本文件方便大家对库进行处理。事实上,我们可以手工处理这些库。在Xilinx的ISE安装目录下,比如:D:/xili nx/vhdl/src和D:/xilinx/Verilog/src下都有这些库源文件;simprim库的源文件就在…/
src/simprims目录下,CoreGen库的源文件就在…/src/XilinxCoreLib下等。
在Modelsim的命令窗口运行下面的命令即可:
vlib simprim
vmap simprim d:/test/test/simprim (路径可以自己任意指定)
vcom –work simprim $XILINX/vhdl/src/simprims/simprim_Vcomponents.vhd
vcom –work simprim $XILINX/vhdl/src/simprims/simprim_Vpackage.vhd
vcom –work simprim $XILINX/vhdl/src/simprims/simprim_VITAL.vhd
(注意:编译顺序不能颠倒),Unisim库如下所示:
vlib unisim
vmap unisim D:/test/test/unisim
vcom -work unisim $XILINX/vhdl/src/unisims/unisim_VCOMP.vhd
vcom -work unisim $XILINX/vhdl/src/unisims/unisim_VPKG.vhd
vcom -work unisim $XILINX/vhdl/src/unisims/unisim_VITAL.vhd
vcom -work unisim $XILINX/vhdl/src/unisims/unisim_VCFG4K.vhd
如果是Verilog语言,可以进行同样的处理。不过必须注意一定要编译glbl.v文件。如果要了解更详细的信息,可以参考相关文献。
库编译后就可以手工修改安装目标下的Modelsim.ini文件。修改后的文件如前所述即可。
2.Altera公司的器件:
对于Altera公司,其MaxplusII软件能开发的器件的库的名字是alt_vtl,仿真模型在maxp lus2/vhdl87/vital或者maxplus2/vhdl93/vital下面可以找到。如果是Quartus,则库的名
字不再用alt_vtl。该公司不同的器件库名字是不一样的,库名如下:
如果是lpm库,要编译的文件是220model.vhd和220pack.vhd,在安装目录下可以搜索的到。比如:…quartus/eda/sim_lib/