2018年11月27日火曜日

[Vivado]ModelSimシミュレーション方法

【環境】
・Vivado2018.02
・Modelsim10.5b(Intel FPGA Starter Edition)

【手順】
[ModelSim用ライブラリをコンパイル(初回のみ)]
①Vivado実行用Tclファイルを作成(simlib_compile.tcl)
compile_simlib                                                       \
  -directory {simlib}                                                \
  -family   kintex7                                                  \
  -language all                                                      \
  -library  unisim                                                   \
  -simulator modelsim                                                \
  -simulator_exec_path {c:\Tool\Intel\18.1\modelsim_ase\win32aloem}  \
  -32bit                                                             \
  -verbose
②Vivado"TclConsole"にてコンパイル実行
$source simlib_compile.tcl
※コンパイル時間は上記で約1時間
※コンパイルしたVivadoライブラリを移動させた場合、"modelsim.ini"内のパスも移動先パスに変更すること。

[コンパイル&シミュレーション実行例]
③ModelSim実行用Tcl作成(run.tcl)
# Path Setting
# ===============================================================================
set    PROJECT_NAME   "TEST"
set    VIVADO_INSTALL "c:/Tool/Xilinx/Vivado/2018.2"
set    VIVADO_LIBRARY "c:/vivado/compile_simlib/modelsim"
append IP             "../" $PROJECT_NAME ".srcs/sources_1/ip"
append IPSTATIC       "../" $PROJECT_NAME ".ip_user_files/ipstatic"

# Library
# ===============================================================================
vlib work
vmap work                   work
vmap unisims_ver            $VIVADO_LIBRARY/unisims_ver
vmap unisim                 $VIVADO_LIBRARY/unisim
vmap unimacro_ver           $VIVADO_LIBRARY/unimacro_ver
vmap unimacro               $VIVADO_LIBRARY/unimacro
vmap secureip               $VIVADO_LIBRARY/secureip
set    VSIM_LIB "-L work -L unisims_ver -L unisim -L unimacro_ver -L unimacro "
append VSIM_LIB "-L secureip "

# Compile
# ===============================================================================
vlog -work work     $VIVADO_INSTALL/data/verilog/src/glbl.v

# MMCM(IP)
vlog -work work -sv $VIVADO_INSTALL/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv
vcom -work work -93 $VIVADO_INSTALL/data/ip/xpm/xpm_VCOMP.vhd
vlog -work work     $IP/MMCM_GEN/MMCM_GEN_clk_wiz.v
vlog -work work     $IP/MMCM_GEN/MMCM_GEN.v

# User RTL
vlog -work work -lint ../HDL/test.v
vlog -work work        ./TB.v

# vsim
# ===============================================================================
set    EXEC_VSIM "work.TB work.glbl "
append EXEC_VSIM "-t ps "
append EXEC_VSIM "-l vsim.log "
append EXEC_VSIM "-novopt "
append EXEC_VSIM "-wlf vsim.wlf "
append EXEC_VSIM $VSIM_LIB
append EXEC_VSIM " -do " {"add wave -r *; run -all; quit"}

eval vsim $EXEC_VSIM

④ModelSim"Transcript"にてシミュレーション実行
$vsim -c -do run.tcl

【参考】
①[AR# 64083]サードパーティ シミュレータ用に Vivado シミュレーション ライブラリをコンパイルする方法
②ModelSim Command Reference Manual
③3ステップで実行-ModelSimコマンドライン(Verilog)