【问题标题】:Module not Defined When Simulating Using Modelsim使用 Modelsim 进行仿真时未定义模块
【发布时间】:2017-02-21 07:17:20
【问题描述】:

所以我已经从 Vivado 2015.4 升级到 2016.2。我使用 Vivado 编译加密 IP 的模拟文件。当我启动 Modelsim 10.4 时,出现一个新错误:

sources_1/ip/output_buffer/sim/output_buffer.v(289): Module 'fifo_generator_v13_1_1' is not defined.

我注意到的第一件事是,在我的项目流程中,生成的模拟文件现在是 verilog,这可能是我的问题的根源,因为我通常模拟 VHDL。

首先我编译fifo_generator库等各种库:

compile_simlib -simulator questa

然后我生成模拟文件:

import_files -norecurse -fileset sources_1 cgen/output_buffer/output_buffer.xci
upgrade_ip [get_ips output_buffer]
generate_target simulation [get_files output_buffer.xci]
export_simulation -simulator questa -of_objects [get_files output_buffer.xci]
exec echo exit | vsim -c -do top/top.srcs/sources_1/ip/output_buffer_sim/questa/compile.do -modelsimini modelsim.ini

我的 modelsim.ini 文件然后映射这些库:

[Library]

fifo_generator_v13_1_1 = msim/fifo_generator_v13_1_1
output_buffer = top/top.srcs/sources_1/ip/output_buffer/questa

最后,我的 .tcl 脚本将构建项目并添加模拟文件:

vlog top/top.srcs/sources_1/ip/output_buffer/sim/output_buffer.v

然而,当我启动我的项目时,它抱怨找不到 fifo_generator。任何想法为什么会这样?

编辑

根据要求,生成的compile.do:

vlib work
vlib msim

vlib msim/xil_defaultlib
vlib msim/xpm
vlib msim/fifo_generator_v13_1_1

vmap xil_defaultlib msim/xil_defaultlib
vmap xpm msim/xpm
vmap fifo_generator_v13_1_1 msim/fifo_generator_v13_1_1

vlog -work xil_defaultlib -64 -sv \
"/software/CAD/Xilinx/2016.2/Vivado/2016.2/data/ip/xpm/xpm_memory/hdl/xpm_memory_base.sv" \
"/software/CAD/Xilinx/2016.2/Vivado/2016.2/data/ip/xpm/xpm_memory/hdl/xpm_memory_dpdistram.sv" \
"/software/CAD/Xilinx/2016.2/Vivado/2016.2/data/ip/xpm/xpm_memory/hdl/xpm_memory_dprom.sv" \
"/software/CAD/Xilinx/2016.2/Vivado/2016.2/data/ip/xpm/xpm_memory/hdl/xpm_memory_sdpram.sv" \
"/software/CAD/Xilinx/2016.2/Vivado/2016.2/data/ip/xpm/xpm_memory/hdl/xpm_memory_spram.sv" \
"/software/CAD/Xilinx/2016.2/Vivado/2016.2/data/ip/xpm/xpm_memory/hdl/xpm_memory_sprom.sv" \
"/software/CAD/Xilinx/2016.2/Vivado/2016.2/data/ip/xpm/xpm_memory/hdl/xpm_memory_tdpram.sv" \

vcom -work xpm -64 \
"/software/CAD/Xilinx/2016.2/Vivado/2016.2/data/ip/xpm/xpm_VCOMP.vhd" \

vlog -work fifo_generator_v13_1_1 -64 \
"../../output_buffer/fifo_generator_v13_1_1/simulation/fifo_generator_vlog_beh.v" \

vcom -work fifo_generator_v13_1_1 -64 \
"../../output_buffer/fifo_generator_v13_1_1/hdl/fifo_generator_v13_1_rfs.vhd" \

vlog -work fifo_generator_v13_1_1 -64 \
"../../output_buffer/fifo_generator_v13_1_1/hdl/fifo_generator_v13_1_rfs.v" \

vlog -work xil_defaultlib -64 \
"../../output_buffer/sim/output_buffer.v" \

vlog -work xil_defaultlib "glbl.v"

它会复制 modelsim.ini 文件,然后您可以运行这三个命令中的一个或全部。实际上我要做的就是编译,这样我就有了稍后可供我的模拟使用的对象,即创建的output_buffer.v 文件。

# RUN_STEP: <compile>
compile()
{
  # Compile design files
  source compile.do 2>&1 | tee -a compile.log

}

# RUN_STEP: <elaborate>
elaborate()
{
  source elaborate.do 2>&1 | tee -a elaborate.log
}

# RUN_STEP: <simulate>
simulate()
{
  vsim -64 -c -do "do {simulate.do}" -l simulate.log
}

# STEP: setup
setup()
{
  case $1 in
    "-lib_map_path" )
      if [[ ($2 == "") ]]; then
        echo -e "ERROR: Simulation library directory path not specified (type \"./output_buffer.sh -help\" for more information)\n"
        exit 1
      fi
     copy_setup_file $2
    ;;
    "-reset_run" )
      reset_run
      echo -e "INFO: Simulation run files deleted.\n"
      exit 0
    ;;
    "-noclean_files" )
      # do not remove previous data
    ;;
    * )
     copy_setup_file $2
  esac

  # Add any setup/initialization commands here:-

  # <user specific commands>

}

【问题讨论】:

    标签: vhdl verilog simulation modelsim vivado


    【解决方案1】:

    模块 fifo_generator_v13_1_1 被编译为 fifo_generator_v13_1_1 库,我认为这可能是一个问题。尝试将 -L fifo_generator_v13_1_1 添加到您的 vsim 命令中,以搜索此库中的模块。

    【讨论】:

    • 好的,那为什么行得通?这是针对需要自动化的相当大的项目,那么我如何将其编码为自动化的 vsim 命令(例如 vmap)、.tcl 命令或 modelsim 命令?
    • 对不起,我误解了 -library 选项,它用于指定应该编译哪个库。能否提供 Vivado 命令 export_simulation 生成的脚本?
    • 已经完成了。我已经尝试将该 vmap 命令添加到我的 .tcl 脚本中,但它只是说“库已经存在”。
    • vmap 在这种情况下不会有帮助,因为它是在 compile.do 中完成的。根据UG900 export_simulation 命令应该生成.sh 脚本巫婆命令来编译、阐述和模拟设计。 compile.do 是由 export_simulation 生成的文件吗?它只包含编译设计的命令。
    • 完成了,但我认为这没什么大不了的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多