modelsim脚本对于小的RTL代码开发可以省去testbench的编写,写一个小的脚本运行查看设计的代码功能的正确性,方便简单,基本指令很简单,如下:
vlib 文件夹
vmap 映射文件夹名//以上两个文件夹名一致
vcom(编译VHDL代码)/vlog(编译Verilog代码) 要编译的.vhd / .v文件名
vsim -L 文件夹(-L是表示仿真的时候包含“文件夹”库中所有模块。) 文件夹.文件名(此处文件名不要加后缀) -t 1ns(-t 1ns是仿真时序图上最小的时间单位,如果不加-t 1ns,默认的是ps。)
add wave -r *(将test里所有的信号都添加到波形图里。(这行代码会自动将波形图调用出来)r 表示 region。)
接下来是对时钟和各输入信号复制,用的语句有repeat ,force, run等,下面是一个例子
注:modelsim脚本使用过程中遇到的问题,第三行的命令字,当开发的是VHDL语言时用的是vcom
但是如果用的verilog开发的硬件语言时,该命令字要改成vlog,其他不变
vlib work //定义库文件夹名为work
vmap work //定义映射文件夹名为work
vlog signal_generate.v //要编译的文件是.v文件用的命令是vlog,如果是.vhd用vcom
vsim -L work work.signal_generate -t 1ns //要进行仿真的是work文件夹下的signal_generate文件
add wave -r *
force -repeat 2 clk 0 0,1 1 //产生周期为2ns 低电平,占空比1:1,高电平 高电平占用时间是1ns(各颜色对应的意义)
run 500 //接上面的时序运行500个2ns周期的时钟。
force reset 1 //在RTL代码设计里面的reset复位信号,一开始赋值为1
run 10 //reset的值为1运行10ns也就是5个时钟周期(每个时钟周期2ns)
force reset 0 //将reset的值复位为0
run 490 //运行接下来一直为低 |