Modelsim独立仿真带有vivado IP核的文件

本文详细介绍了如何在Modelsim中独立仿真带有VivadoIP核的文件,包括导出VivadoIP核仿真库、添加至Modelsim、配置timescale和处理PLL与PS端的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Modelsim独立仿真带有vivado IP核的文件

用modelsim独立仿真带有vivado IP核的文件一共需要三个大步骤:

1.导出vivado ip核库

①在vivado中导出IP核的仿真库
第一步首先要在vivado中导出IP核的仿真库,我使用的是vivado 2018.3。打开vivado2018.3,在工具栏找到Tool,列表中有一个Compile Simulation Libraries。

②设置导出路径
注意:仿真库导出路径Compiled library location最好放在modelsim安装路径下面,要不然导入到modelsim的时候要改很多库的路径!设置好后点击Compile,等待生成,可能要花费30分钟左右。导出完成后,可以在Tcl Console中查看生成信息。

打开生成的目录,可以看到生成的vivado仿真库文件夹。
在这里插入图片描述

2.把viado仿真库添加进Modesim中

①vivado仿真库路径
找到刚才生成好的vivado仿真库文件,在文件夹里面打开找到里面有一个modelsim.ini文件(这个.ini文件是vivado生成库里的,不是modelsim的),用记事本或者vscode打开,打开后我们可以发现各个库的路径,复制所有库的路径。
在这里插入图片描述②把仿真库的路径加入到modelsim中
在①中复制好所有库的路径好,在modelsim安装路径下找到modelsim的.ini文件,改变只读属性。
在这里插入图片描述
在 [Library]下边把复制好的路径,复制进来。

在这里插入图片描述
保存好后,打开Modelsim查看库是不是添加进来了。
在这里插入图片描述

3.搭建仿真系统

这面两步完成后,开始搭建系统文件。相比于以前,写好testbench文件后,还要做一件事情,就是把使用到的IP核的verilog代码也要加进来。
①找到所有的IP的xxx_sim_netlist.v文件
比如我们用到了一个DDS IP核和PLL IP核,我们在我们的工程里依次到以下目录中:
xxx.srcs/sources_1/ip/dds_compiler_0/dds_compiler_0_sim_netlist.v
xxx.srcs/sources_1/ip/CLK_PLL/CLK_PLL_sim_netlist.v(PLL IP 在我工程里我起的名字叫CLK_PLL)

在这里插入图片描述
会发现你用到了几个IP核这里就会有几个IP核。
在这里插入图片描述
②建立仿真文件
找到所有的xxx_sim_netlist.v文件后,我的文件构成是这样的
在sim_ip文件夹中,我们把在①中找到的xxx_sim_netlist.v复制进来。
在tb_workspace中存放modelsim工程
在verilog中存放我们要仿真的代码
在这里插入图片描述
在这里插入图片描述

③在Modelsim中加入仿真库文件
把我们自己写的tsetbench代码 以及 xxx_sim_netlist.v全部加入到Modelsim工程中
注意: xxx_sim_netlist.v仿真时间改成你头文件的`timescale
在这里插入图片描述
点击仿真后,点击Librasries
在这里插入图片描述
在你生成的vivado仿真库中文件夹下,把以下库添加进去一共8个(这个就是①中.PNG库路径,每次新的工程要重新加入一遍)。
在这里插入图片描述
有一个小技巧,在搜索库的时候,直接在下面打字就能出来上。
在这里插入图片描述
添加完之后你会发现你的work里面不只有你的文件还有一些其他文件,找到你的最顶层文件,做完这些就可以进行仿真了
在这里插入图片描述

④特别注意!!!!
第一点 : 如果你用到了PLL会报错,这是因为PLL IP核对复位信号的时间有一定的要求,因此,你需要在你仿真顶层文件里面把glbl 例化一下。
在这里插入图片描述
这个glbl在哪里的,就在你PLL 的_sim_netlist.v中,所以可以直接在你仿真顶层文件里例化glbl!!
在这里插入图片描述

所以可以直接在你仿真顶层文件里例化glbl!!
在这里插入图片描述
第二点 如果你用了 PS端 你需要暂时把PS端注释掉,因为modelsim仿真不了PS端

### 如何在ModelSim中进行Vivado IP仿真配置与操作 #### 准备工作 为了能够在ModelSim中成功仿真来自Vivado的设计,特别是其中包含的各种IP,前期准备至关重要。这不仅涉及到环境设置还涉及到了解具体的命令和参数。对于想要脱离Vivado集成开发环境而单独使用ModelSim来验证设计的情况来说,确保所有必要的库已经被正确安装并可访问是非常重要的[^1]。 #### 导出Vivado IP库 当目标是在ModelSim独立Vivado运行仿真时,第一步是从Vivado环境中导出所需的IP及其依赖项。这一过程通常包括创建一个可以被外部工具识别和支持的包。通过特定选项生成INI文件可以帮助简化这个过程中的一些复杂度,并使得后续步骤更加顺畅[^3]。 #### 设置ModelSim项目结构 一旦拥有了从Vivado导出的所有必要组件之后,在ModelSim中的下一步就是建立适当的工作空间布局以便能够顺利加载这些资源。此阶段可能需要调整一些编译选项或是路径变量以适应本地系统的实际情况。例如,指定`-L`标志指向Xilinx提供的模拟原语库的位置,这对于某些类型的IP可能是必需的操作之一[^5]。 #### 编写Do/Tcl脚本自动化流程 考虑到手动执行上述每一步骤可能会耗费大量时间并且容易出错,编写一段TCL/DO脚本来自动完成整个准备工作是一个明智的选择。这段脚本应当能处理诸如初始化库、映射目录、读取顶层模块以及启动实际仿真的任务。下面给出了一段简单的示例代码用于说明目的: ```tcl # 初始化所需库 vlib work vmap unisims_ver $env(XILINX)/verilog/src/unisims vmap secureip $env(XILINX)/secureip # 添加RTL源码和其他相关文件 vlog -work work {path_to_your_sources} # 运行测试平台 vsim -novopt work.top_module_name do wave.do ;# 假设有一个预定义好的波形显示配置文件wave.do run -all ``` 以上代码片段展示了如何利用Tcl语言控制ModelSim的行为,从而实现对由Vivado产生的Verilog/VHDL代码的有效仿真。请注意替换占位符(如`{path_to_your_sources}`)为对应的实际值之前再尝试运行该脚本[^4]。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值