Modelsim仿真VIvado遇到的问题

本文档记录了在使用Vivado进行仿真库编译时遇到的错误和警告,包括Modelsim版本与Vivado版本不匹配、vlog-159警告、未初始化的输出端口警告以及BlockMemoryGenerator模块的行为级模拟警告。大部分问题通过更新Modelsim版本或忽略特定警告已解决,部分IP未综合完整导致的未知模块警告则需检查复位信号。

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

编译Vivado仿真库报错

原因是Modelsim版本和Vivado版本不匹配,更换版本之后,只有个别IP报错,不影响使用。
68324 - Vivado Simulation - Supported Third party simulators for major Vivado Design Suite release
我是10.6c+2018.3

Warning: (vlog-159) Mode option -64 is not supported in this context and will be ignored.

这个警告一直没啥影响,所以也没有管它,可能就是设置一个选项的事。
或者说是编译仿真库的时候的一个选项

launch_simulation -install_path E:/Program_Files/modelsim_dlx64_10.6c/win64pe
INFO: [Vivado 12-5698] Checking validity of IPs in the design for the 'ModelSim' simulator...
INFO: [Vivado 12-5682] Launching behavioral simulation in 'F:/MyTest/FPGA/IPFFT2/IPFFT2.sim/sim_1/behav/modelsim'
INFO: [Vivado 12-4795] Using compiled simulation libraries for IPs
INFO: [USF-ModelSim-47] Finding simulator installation...
INFO: [USF-ModelSim-50] Using simulator executables from 'E:/Program_Files/modelsim_dlx64_10.6c/win64pe/vsim.exe'
INFO: [SIM-utils-51] Simulation object is 'sim_1'
INFO: [USF-modelsim-7] Finding pre-compiled libraries...
INFO: [USF-modelsim-11] File 'E:/Program_Files/Xilinx/Modelsim_Vivado_Lib/modelsim.ini' copied to run dir:'F:/MyTest/FPGA/IPFFT2/IPFFT2.sim/sim_1/behav/modelsim'
INFO: [SIM-utils-54] Inspecting design source files for 'tb_ip_fft2' in fileset 'sim_1'...
INFO: [SIM-utils-43] Exported 'F:/MyTest/FPGA/IPFFT2/IPFFT2.sim/sim_1/behav/modelsim/blk_mem_gen_1.mif'
INFO: [SIM-utils-43] Exported 'F:/MyTest/FPGA/IPFFT2/IPFFT2.sim/sim_1/behav/modelsim/tran_matrix_para_1024.coe'
INFO: [SIM-utils-43] Exported 'F:/MyTest/FPGA/IPFFT2/IPFFT2.sim/sim_1/behav/modelsim/bmg_rom.mif'
INFO: [SIM-utils-43] Exported 'F:/MyTest/FPGA/IPFFT2/IPFFT2.sim/sim_1/behav/modelsim/fftshift_1024.coe'
INFO: [USF-ModelSim-107] Finding global include files...
INFO: [USF-ModelSim-108] Finding include directories and verilog header directory paths...
INFO: [USF-ModelSim-109] Fetching design files from 'sim_1'...
INFO: [USF-ModelSim-2] ModelSim::Compile design
INFO: [USF-ModelSim-15] Creating automatic 'do' files...
INFO: [USF-ModelSim-69] Executing 'COMPILE and ANALYZE' step in 'F:/MyTest/FPGA/IPFFT2/IPFFT2.sim/sim_1/behav/modelsim'
Reading E:/Program_Files/modelsim_dlx64_10.6c/tcl/vsim/pref.tcl

# 10.6c

# do {tb_ip_fft2_compile.do}
# ** Warning: (vlib-34) Library already exists at "modelsim_lib/work".
# ** Warning: (vlib-34) Library already exists at "modelsim_lib/msim".
# ** Warning: (vlib-34) Library already exists at "modelsim_lib/msim/xil_defaultlib".
# Model Technology ModelSim DE-64 vmap 10.6c Lib Mapping Utility 2017.07 Jul 26 2017
# vmap xil_defaultlib modelsim_lib/msim/xil_defaultlib 
# Modifying E:\Program_Files\Xilinx\Modelsim_Vivado_Lib\modelsim.ini
# ** Warning: (vlog-159) Mode option -64 is not supported in this context and will be ignored.
# Model Technology ModelSim DE-64 vlog 10.6c Compiler 2017.07 Jul 26 2017
# Start time: 18:47:20 on Apr 08,2022
# vlog -64 -incr -work xil_defaultlib ../../../../IPFFT2.srcs/sources_1/ip/bmg_rom/sim/bmg_rom.v ../../../../IPFFT2.srcs/sources_1/ip/bmg_ram/sim/bmg_ram.v ../../../../IPFFT2.srcs/sources_1/ip/xfft_1/xfft_1_sim_netlist.v ../../../../IPFFT2.srcs/sources_1/ip/blk_mem_gen_1/sim/blk_mem_gen_1.v ../../../../IPFFT2.srcs/sources_1/ip/blk_mem_gen_0/sim/blk_mem_gen_0.v ../../../../IPFFT2.srcs/sources_1/ip/fifo_generator_0/sim/fifo_generator_0.v 
# -- Skipping module bmg_rom
# -- Skipping module bmg_ram
# -- Skipping module xfft_1
# -- Skipping module xfft_1_xfft_v9_1_1
# -- Compiling module glbl
# -- Skipping module blk_mem_gen_1
# -- Skipping module blk_mem_gen_0
# -- Skipping module fifo_generator_0
# 
# Top level modules:
# 	bmg_rom
# 	bmg_ram
# 	xfft_1
# 	glbl
# 	blk_mem_gen_1
# 	blk_mem_gen_0
# 	fifo_generator_0
# End time: 18:47:21 on Apr 08,2022, Elapsed time: 0:00:01
# Errors: 0, Warnings: 1
# ** Warning: (vcom-159) Mode option -64 is not supported in this context and will be ignored.
# Model Technology ModelSim DE-64 vcom 10.6c Compiler 2017.07 Jul 26 2017
# Start time: 18:47:21 on Apr 08,2022
# vcom -64 -93 -work xil_defaultlib ../../../../IPFFT2.srcs/sources_1/ip/xfft_0/sim/xfft_0.vhd 
# -- Loading package STANDARD
# -- Loading package TEXTIO
# -- Loading package std_logic_1164
# -- Loading package NUMERIC_STD
# -- Compiling entity xfft_0
# -- Compiling architecture xfft_0_arch of xfft_0
# End time: 18:47:21 on Apr 08,2022, Elapsed time: 0:00:00
# Errors: 0, Warnings: 1
# ** Warning: (vlog-159) Mode option -64 is not supported in this context and will be ignored.
# Model Technology ModelSim DE-64 vlog 10.6c Compiler 2017.07 Jul 26 2017
# Start time: 18:47:21 on Apr 08,2022
# vlog -64 -incr -work xil_defaultlib ../../../../IPFFT2.srcs/sources_1/new/fifo_rd.v ../../../../IPFFT2.srcs/sources_1/new/fifo_wr.v ../../../../IPFFT2.srcs/sources_1/new/ip_fft.v ../../../../IPFFT2.srcs/sources_1/new/ip_fft2.v ../../../../IPFFT2.srcs/sources_1/new/ip_fifo.v ../../../../IPFFT2.srcs/sources_1/new/ip_ram.v ../../../../IPFFT2.srcs/sources_1/new/ip_ram2.v ../../../../IPFFT2.srcs/sources_1/new/top.v ../../../../IPFFT2.srcs/sim_1/new/tb_ip_fft2.v 
# -- Skipping module fifo_rd
# -- Skipping module fifo_wr
# -- Skipping module ip_fft
# -- Skipping module ip_fft2
# -- Skipping module ip_fifo
# -- Skipping module ip_ram
# -- Skipping module ip_ram2
# -- Skipping module top
# -- Skipping module tb_ip_fft2
# 
# Top level modules:
# 	tb_ip_fft2
# End time: 18:47:21 on Apr 08,2022, Elapsed time: 0:00:00
# Errors: 0, Warnings: 1
# Model Technology ModelSim DE-64 vlog 10.6c Compiler 2017.07 Jul 26 2017
# Start time: 18:47:21 on Apr 08,2022
# vlog -work xil_defaultlib glbl.v 
# -- Compiling module glbl
# 
# Top level modules:
# 	glbl
# End time: 18:47:21 on Apr 08,2022, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
INFO: [USF-ModelSim-69] 'compile' step finished in '3' seconds
INFO: [USF-ModelSim-4] ModelSim::Simulate design
INFO: [USF-ModelSim-69] Executing 'SIMULATE' step in 'F:/MyTest/FPGA/IPFFT2/IPFFT2.sim/sim_1/behav/modelsim'
Program launched (PID=14728)

# ** Warning: (vsim-8683) Uninitialized out port /tb_ip_fft2/u_top/u_ip_fft/u_xfft_0/U0///(0) has no driver.

这个警告的原因应该是我的ip的部分输出端口没有接,所以导致的,没啥影响。
我很多的output都是悬空的,因为用不到

# ** Warning: (vsim-8683) Uninitialized out port /tb_ip_fft2/u_top/u_ip_fft/u_xfft_0/U0/<protected>/<protected>/<protected>(0) has no driver.
# This port will contribute value (U) to the signal network.

# Block Memory Generator module tb_ip_fft2.u_top.u_ip_ram.u_ram.inst.native_mem_module.blk_mem_gen_v8_4_2_inst is using a behavioral model for simulation which will not precisely model memory collision behavior.

使用ram ip产生的提醒,没有实际影响

xil_defaultlib中包含未知模块

在这里插入图片描述
很多,有是有有时没有,不知道触发的原因。
原因知道了,是应为我的IP没有综合完整导致的。

Break in file E:/Program_Files/Xilinx/Vivado/2018.3/data/ip/xilinx/axi_utils_v2_0/hdl/axi_utils_v2_0_vh_rfs.vhd

# ** Failure: ERROR:add_1 must be in range [-1,DEPTH-1]
#    Time: 160 ns  Iteration: 1  Protected: /tb_ip_fft2/u_top/u_fft2_top/u_ip_fft/u_xfft_0/U0/<protected>/<protected>/<protected>/<protected>/<protected>/<protected> File: E:/Program_Files/Xilinx/Vivado/2018.3/data/ip/xilinx/axi_utils_v2_0/hdl/axi_utils_v2_0_vh_rfs.vhd
# Break in file E:/Program_Files/Xilinx/Vivado/2018.3/data/ip/xilinx/axi_utils_v2_0/hdl/axi_utils_v2_0_vh_rfs.vhd

参考链接 Assertion Error in Protected Xilinx Code - How to debug?
看参考链接的时候懵懵懂懂,不知所以然,真正想清楚的时候,才豁然开朗,发现参考链接完全是对的。可能还是因为中英文表述的原因,没有读懂。
本质上,查一下自己的复位信号,复位信号出问题了
我也是在读波形的时候找到的,rst_n同时接了输入信号和输出信号。导致rst_n在输入信号拉高时,被输出信号拉成高阻态。
很遗憾的是,这种问题没有语法报错,只能自己找具体的那个地方。


大家如果有知道的,还望不吝赐教!


都看到这儿了,点个赞呗
||
\/

### 如何在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、付费专栏及课程。

余额充值