vivado与modelsim联合仿真

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

  vivado自带的xsim仿真器其实已经可以满足大部分的仿真需求,但是我在进行图像仿真时通过系统函数$fopen(PIC_PATH,“rb”);来打开bmp图像一直报错,返回值-20000,网上找了一圈没有解决,已经排除是路径问题,相同的代码通过modelsim可以正常仿真,但每次都要单独打开modelsim比较麻烦,所以这里记录一下vivado和modelsim联合仿真的步骤。

一、编译vivado仿真库

vivado版本为2020.2,modelsim版本为modelsim se 10.5,在编译时会警告modelsim版本低,并且编译最后个别ip会报错,但是还是会生成.ini文件,并且实测不影响仿真。
在这里插入图片描述
如果只使用某一系列芯片如zynq7000系列,则在Family处只需要选择用到的系列,这样可以减少编译时间,编译库保存路径自行设置后续会使用到,仿真器路径选择modelsim的安装路径,GCC路径在Vivado\2020.2\tps\mingw\6.2.0\win64.o\nt\bin下。设置后经行编译,根据电脑配置大概在20分钟左右。
在这里插入图片描述
编译后生成的文件
在这里插入图片描述

二、、使用modelsim进行仿真

在设置中修改仿真器为modelsim,修改编译库的位置为modelsim.ini所在的文件夹
在这里插入图片描述
在这里插入图片描述
完成后运行仿真验证
在这里插入图片描述
成功运行,运行结果在(你的路径)\pic_sim.sim\sim_1\behav\modelsim下
在这里插入图片描述

总结

仿真在数字电路设计中是必不可少的工具,它有助于验证设计的功能和性能,发现和纠正错误,优化设计流程,提高设计效率和质量。无论是对于企业级的设计项目还是教育和培训,仿真都发挥着至关重要的作用。

### 如何在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]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值