Итак, я обновился с 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>
}