Modelsim的自动化脚本仿真平台


自动化仿真平台由tcl语言搭建,大规模设计使用此平台让仿真便捷不少。大体上用tcl语言进行modelsim仿真的流程如下:
1. 建立库
2. 映射库到物理目录
3. 编译源代码
4. 启动仿真器
5. 执行仿真 tcl语言的语法 vlib :建立库。格式 vlib<library name> 。库名缺省值是work vmap:映射逻辑库名,将逻辑库名映射到库路径。语法格式vmap work <library name> vdir:显示指定库内容。语法格式vdir –lib <library name> vlog:编译verilog源代码,库名缺省时编译到work,文件按顺序编译。语法格式vlog –work <library_name> <file1>.v <file2>.v vcom:编译VHDL源代码,库名缺省时编译到work,文件按顺序编译。语法格式 vcom –work <library_name> <file1>.vhd <file2>.vhd vsim: 启动仿真器。语法格式vsim –lib <library_name><top_level_design> VHDL vsim top_entity top_architecture 仿真Entity/Architecture对也能选择一个结构 Verilog vsim top_levela top_level2 仿真多个top级模块 vsim命令的参数 -L<Library >:后面跟上仿真的库名 -t <time_unit> :指定仿真的时间分辨率;单位可以是{fs,ps,ns,ms,sec,min,hr}如果用了verilong的`timescale指令,将使用这个设计中的最小时间精度;时间进度可选项(缺省是ns) -sdfmin |-sdftyp|-sdfmax <instance>=<sdf_filename>:注释SDF文件;是可选项;使用实例名也是可选项;如果没有使用,SDF用于* add wave /tb/ * :该命令作用是将tb.v中模块tb下所有的信号加到波形文件中,注意*前要加空格
run: 执行命令。语法格式run <time_step> <time_units>按照timesteps指定的时间长度执行仿真 run命令的参数:-<time_step> <time_units>指定运行的timesteps数量,单位可用{ fs,ps,ns,ms,sec } -step :到下一个HDL状态的的步骤 -continue:继续上次在-step或断点后的仿真 -all:一直运行 所需文件 除了本身的设计文件之外,此仿真平台还要有以下文件:

tb.v: 测试激励文件 glbl.v: 使用xilinx IPcore的就需要此文件 define.v: 定义了全局变量 runtb.bat: 脚本文件,双击可以用来打开run.do文件 run.do: 主要的控制文件 src.f: 设计文件的路径列表 cfg.f: ise安装目录下verilog库文件的路径 下面为各个文件的内容 1. runtb.bat vsim -do "do run.do "
2 .run.do quit -sim vlib work vlog -f src.f -f cfg.f ../src/tb.v vsim -t ps -L XilinxCoreLib_ver -L unisims_ver -L secureip -L simprims_ver -L unimacro_ver -L simprim -L unimacro -L unisim -L XilinxCoreLib work.tb work.glbl log -r /* view signals wave # do wave.do add wave/top/ * run –all
3. cfg.f +licq_all+ +access+r -O0 -work work +libext+.vmd+.v -y G:/iselib14_5/secureip -y G:/iselib14_5/simprims_ver -y G:/iselib14_5/unimacro_ver -y G:/iselib14_5/unisims_ver -y G:/iselib14_5/xilinxcorelib_ver -y G:/iselib14_5/simprim -y G:/iselib14_5/unimacro
-y G:/iselib14_5/unisim -y G:/iselib14_5/XilinxCoreLib /* included files containing parameters and definitions */
+incdir+../src
-y G:/iselib14_5/unisim -y G:/iselib14_5/XilinxCoreLib /* included files containing parameters and definitions */
+incdir+../src 4.src.f /* source code */ ../src/define.v ../src/tb.v ../src/glbl.v ../src/top.v ../src/rx/BIT_ALIGN_MACHINE.v ../src/rx/RX.v ../src/rx/rx_dut.v
../src/rx/rx_top.v ../src/tx/ctl.v ../src/tx/TX.v ../src/tx/tx_dut.v
../src/tx/tx_top.v

2关掉自动优化选项
在modelsim.ini中,
“VoptFlow=0
Resolution = ns”