modelsim仿真学习笔记——乘法器和除法器IP的添加
本文介绍了在Vivado中使用ModelSim仿真时解决乘法器和除法器IP识别问题的方法。作者发现ModelSim无法直接识别VHDL封装的IP核模型,通过Vivado TCL命令导出IP相关文件后,手动将vcom编译命令添加到ModelSim中成功解决问题。文章详细说明了导出IP文件的TCL命令、生成的compile.do文件内容,以及如何将vhd文件编译到xil_defaultlib库中的具体
文章目录
前言
需要使用DDR3 AXI多端口实现图像处理算法,要用到MIG 乘法器,除法器IP,直接在vivado上仿真DDR3模型太耗时了,因此学习使用modelsim进行仿真,好不容易跑通DDR3,乘法器和除法器IP竟然识别不了……

注:我是直接使用vivado打开modelsim仿真的,而不是直接在modelsim使用脚本,所以方法有所区别
以下这篇文章是自建work工作空间在modelsim中添加乘法器的方法:
使用modelsim仿真调用Xilinx IP核的通用方法
一、modelsim下载与库编译
网上教程很多,我使用的是vivado2023.1,官方推荐modelsim版本是2024.3,然而网上能找到的只有2020.4,但是也能用。
二、modelsim命令学习
1、常见名词
- xpm:Xilinx Parameterized Macros,很多 IP/时钟复位模块会用到(黑盒/行为模型)。
- unisims_ver / unimacro_ver:Xilinx 器件原语(LUT/BUF/MMCM/ISERDES 等)的
Verilog 仿真模型。 - secureip:某些加密的高阶 IP 模型库(通常是加密 netlist 或受保护模型)。
- xilinx_vip:Xilinx 的 Verification IP(AXI/AHB 等总线激励与检查),不是每个工程都用。
- xil_defaultlib:Vivado 缺省放你工程源码/IP 顶层 wrapper 的库名(就像“默认项目库”)。
- work:ModelSim 的传统默认工作库。直接使用vivado运行modelsim会自动生成 xil_defaultlib,完全可以继续用它,不一定非要 work。
还有一些简单的命令参考这篇文章:
使用终端命令行来编译、运行Verilog程序,创建脚本教程
三、乘法器和除法器IP添加
直接使用乘法器和除法器进行仿真modelsim不能识别,需要额外的手动添加。
下图中可以看到在IP的仿真文件夹中只有.vhd文件,它内部是使用vhdl将模型进行了封装而不是使用verilog,因此modelsim无法直接识别。
首先在vivado TCL控制台输入以下指令,导出 IP需要的文件
export_simulation -of_objects [get_ips div_TP_calculate] -simulator modelsim -directory 你的路径/ip/export_sim
export_simulation -of_objects [get_ips mult_TP_calculate] -simulator modelsim -directory 你的路径/ip/export_sim
//或者全部导出
export_simulation -of_objects [get_ips] -simulator modelsim -directory E:/workspace/xilinx_project/SWIR_400W/PRJ_FPGA/SWIR_ROIC/ip/export_sim_all -force
打开生成文件夹下的compile.do文件
看到
vlib modelsim_lib/work
vlib modelsim_lib/msim
vlib modelsim_lib/msim/xil_defaultlib
vmap xil_defaultlib modelsim_lib/msim/xil_defaultlib
vcom -work xil_defaultlib -93 \
"我的路径/ip/div_TP_calculate/sim/div_TP_calculate.vhd" \
vlog -work xil_defaultlib \
"glbl.v"
重点是这句 vcom -work xil_defaultlib -93 “我的路径/ip/div_TP_calculate/sim/div_TP_calculate.vhd”
然后在modelsim控制台将这段代码写入,可以看到modelsim添加成功。
乘法器同理
之后每次重新编译工程就不需要重新添加了,打开vivado自动生成的compile.do文件(我的路径是<工程名>.sim\sim_image_processor\behav\modelsim),可以看到vivado已经将乘法器和除法器文件添加进入了
E:\\software\\modelsim_SE_2020\\win64\\vcom -93 -work xil_defaultlib \
"../../../../../ip/mult_TP_calculate/sim/mult_TP_calculate.vhd" \
"../../../../../ip/div_TP_calculate/sim/div_TP_calculate.vhd" \
具体见下图第16~18行
所以使用这句代码应该也可以将乘法器/除法器直接添加进来
更多推荐
所有评论(0)