E01-modelsim_simulate_vivado_ip.md

E01-modelsim_simulate_vivado_ip.md

社蕙 364 2022-08-28

Modelsim 如何独立仿真 xlinx ip

1. vivado 编译生成仿真文件库

1.1. 生成 modelsim 编译库

  • Tools -> Compile Simulation Libraries
  • 仿真器:ModelSim Simulator
    仿真语言:Verilog
    库:All
    开发板:Virtex-7, Zynq-7000, Zynq UltraScale+FPGAs
    编译库地址:可以在 modelsim 安装目录下新建一个文件夹存储仿真文件库
    仿真器地址:D:/modelsim/win64 其中D:/modelsim 修改为 modelsim 的安装目录

image-20220527100152196

1.2. 修改 modelsim.ini 文件

将编译库中的初始化文件导入modelsim的初始化文件

  • 查看编译库 Compiled library location 路径下,应该出现modelsim.ini文件。在 modelsim 安装路径下也有modelsim.ini文件

  • 在 Compiled library location 路径下的modelsim.ini文件中搜索AutoLibMapping

  • 复制生成的所有的 ip 地址:secureipZynq_ultra_ps_e_vip_v1_0_6 ;实际 ip 内容根据生成选项有一定变化!

    image-20220527101851078

    image-20220527102113825

  • 在 modelsim 安装目录下的 modelsim.ini 文件中搜索 vital2000

  • 将复制的 ip 地址 粘贴在此处

    image-20220527102601403

2. Vivado 仿真

2.1. 在 vivado 内生成ip

2.2. 拷贝 _netlist.v 文件

在 modelsim 中使用 _netlist.v 文件调用 ip

  • IP Sources -> _netlist.v -> copy file location 复制文件地址
  • 将该文件拷贝到 modelsim 工作目录下
  • 将所有调用 ip 的 _netlist.v 拷贝到 modelsim 工作目录

image-20220527103136679

2.3. 拷贝 glbl.v 仿真文件

glbl.v 产生仿真必需的全局信号

  • 对于任何仿真工程,glbl.v文件均相同,直接将该文件放在src/verilog/upsampling/tb

2.4. 例化 glbl

在进行 modelsim 仿真时需要在 testbench 中例化 glbl ,例化名称固定

在 modelsim testbench 中添加语句 glbl glbl();

3. 脚本运行 modelsim

在 modelsim vsim仿真语句中添加unisims_ver仿真库,该仿真库用于 ip 的功能仿真

  • vsim仿真语句一般形式:vsim -vopt voptargs="+acc" work.*_tb

  • 需要仿真 xlinx ip 时,需要添加仿真库地址 -L "D:/modelsim/vivado_2019_lib/unisims_ver"

    其中 D:/modelsim/vivado_2019_lib 修改为 步骤1.1 中你选择的编译库地址

  • 完整的仿真语句 vsim -vopt -L "*/unisims_ver" -voptargs="+acc" work.*_tb