如何在ModelSim中仿真Xilinx IP核?Vivado环境.do文件实操咨询
在ModelSim中编译Xilinx IP核并完成全仿真的实用步骤
一、先从Vivado导出IP核的仿真文件
Vivado生成的IP核自带完整的仿真依赖文件,别自己瞎找,直接导出:
- 打开你的Vivado项目,选中用到的IP核,右键点Export Simulation
- 弹窗里选好导出路径(比如
D:/vivado_ip_sim),勾选包含IP核仿真源文件和Xilinx仿真库引用,导出后会得到sim_1目录,里面有你要的所有IP仿真文件和脚本模板。
二、搞定Xilinx仿真库(unisim、compxlib)
unisim是Xilinx的原语库,compxlib是Vivado自带的库编译工具,必须先把这些库编译到ModelSim里,不然仿真肯定报找不到原语的错:
- 打开Vivado的Tcl控制台,敲下面的命令(参数对应你的ModelSim版本和存放路径):
compxlib -s mti_se -ver 2021.3 -dir D:/modelsim_xilinx_lib
mti_se对应ModelSim SE版,PE版改成mti_pe2021.3是你的ModelSim版本号,别写错D:/modelsim_xilinx_lib是编译后库的存放路径,选个空文件夹就行
- 等编译完成,ModelSim就能调用这些Xilinx原生库了。
三、编写ModelSim的.do脚本
只写vcom -work fifo_generator ...肯定不够,得按依赖顺序编译,还要关联Xilinx库,给你个完整的示例脚本:
# 创建工作库 vlib work vmap work work # 映射Xilinx编译好的仿真库(路径换成你刚才的库路径) vmap unisim D:/modelsim_xilinx_lib/unisim vmap xil_defaultlib D:/modelsim_xilinx_lib/xil_defaultlib # 编译IP核的仿真文件(按依赖顺序来,先底层后顶层) # 路径换成你导出的IP仿真文件实际路径 vcom -work xil_defaultlib "D:/vivado_ip_sim/sim_1/imports/fifo_generator/fifo_generator.vhd" vcom -work xil_defaultlib "D:/vivado_ip_sim/sim_1/imports/fifo_generator/fifo_generator_tb.vhd" # 编译你的项目顶层和测试文件 vcom -work work "D:/your_project/top.vhd" vcom -work work "D:/your_project/top_tb.vhd" # 启动仿真 vsim -voptargs=+acc work.top_tb add wave * run -all
注意:
- 如果是Verilog IP,把
vcom换成vlog命令 - IP核可能生成多个仿真文件(比如
.vhd、.sv),要全部编译,漏了会报错
四、偷懒技巧
- 不想手动写脚本?直接用Vivado导出的
simulate.do,修改里面的库路径后,在ModelSim里执行就行 - IP核更新后,一定要重新导出仿真文件,别用旧文件,不然仿真结果会出问题
内容的提问来源于stack exchange,提问作者Vladimir Korshunov
相关产品推荐
相关产品推荐

