# This TCL script is used to simulate verilog design with modelsim. # You should configure the modelsim and debussy properly before you # call this script with run.bat batch file. # # By TAO YULiang @ MicroE.SJTU # <yuliang.sjtu@gmail.com> #
#--------- create library and mapping ------------# # usage: vlib <library_name> # vmap <logical_name> <directory_path> vlib work #vmap work work
set path [pwd] set proj_dir [file dirname $path]
set sim [file mkdir [filejoin$proj_dir"sim"]] set debussy [file mkdir [filejoin$proj_dir"debussy"]]
# get vlog files set tbfiles [glob -nocomplain [filejoin [filejoin$proj_dir"tb"] "*.v"]] set rtlfiles [glob -nocomplain [filejoin [filejoin$proj_dir"rtl"] "*.v"]] set tbfile [glob -nocomplain [filejoin [filejoin$proj_dir"tb"] "*_tb.v"]]
#------------------ add wave -------------------# # enable following two lines if you check wave file in modelsim #regsub {work\.((.*)_tb)$} $tb_module {sim:/\1/\2/*} top_signals #add wave -radix hexadecimal $top_signals
#-------------------- run ------------------# # usage: run <time_step> <time_units> run -all quit
run.bat
@echo off rem run.bat rem xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx echo x x echo x Run simulation with modelsim. x echo x Make sure your modelsim and debussy was configured properly. x echo x By TAO YULiang @ MicroE.SJTU {yuliang.sjtu@gmail.com} x echo x x echo x PRESS [ENTER] TO CONTINUE x echo x x echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx echo. pause >nul
set ROOT_DIR="D:\Study\863\asic_design\mbpred" set MODULE_DIR=%cd%
if not exist%MODULE_DIR%\sim md%MODULE_DIR%\sim
cd%MODULE_DIR%\sim if not exist msim.tcl copy%ROOT_DIR%\scripts\msim.tcl msim.tcl
echo. echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx echo x start simluation with modelsim... x echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx vsim -c -do msim.tcl
echo. echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx echo x simluation was completed sucessfully. x echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx set/p option=execute debussy to check your wave? (y/n) if"%option%"=="n"goto exit