平台:Modelsim10.5b,前提为安装了Quartus 任一版本 虽然说的是所谓的Modelsim独立仿真,不需要经过Quatyus启动Modelsim软件,但本质上还是使用的Quartus的仿真库。
基于之前的 Modelsim 独立仿真,本次在上述内容中更新了脚本文件对IP核仿真的支持,具体内容见下方文件:
#
#此脚本文件存放于工程文件夹下的tb子文件夹
#在 modelsim 的 transcript 窗口执行的时候使用
# do filename.do 命令后,自动执行仿真
#编译仿真库
transcript on
if ![file isdirectory verilog_libs] {
file mkdir verilog_libs
}
vlib verilog_libs/altera_ver
vmap altera_ver ./verilog_libs/altera_ver
vlog -vlog01compat -work altera_ver {d:/intelfpga/18.1/quartus/eda/sim_lib/altera_primitives.v}
# d:/intelfpga/18.1/quartus/eda/sim_lib/ 前述地址为Quartus 本地安装路径
vlib verilog_libs/lpm_ver
vmap lpm_ver ./verilog_libs/lpm_ver
vlog -vlog01compat -work lpm_ver {d:/intelfpga/18.1/quartus/eda/sim_lib/220model.v}
vlib verilog_libs/sgate_ver
vmap sgate_ver ./verilog_libs/sgate_ver
vlog -vlog01compat -work sgate_ver {d:/intelfpga/18.1/quartus/eda/sim_lib/sgate.v}
vlib verilog_libs/altera_mf_ver
vmap altera_mf_ver ./verilog_libs/altera_mf_ver
vlog -vlog01compat -work altera_mf_ver {d:/intelfpga/18.1/quartus/eda/sim_lib/altera_mf.v}
vlib verilog_libs/altera_lnsim_ver
vmap altera_lnsim_ver ./verilog_libs/altera_lnsim_ver
vlog -sv -work altera_lnsim_ver {d:/intelfpga/18.1/quartus/eda/sim_lib/altera_lnsim.sv}
vlib verilog_libs/cycloneive_ver
vmap cycloneive_ver ./verilog_libs/cycloneive_ver
vlog -vlog01compat -work cycloneive_ver {d:/intelfpga/18.1/quartus/eda/sim_lib/cycloneive_atoms.v}
if {[file exists rtl_work]} {
vdel -lib rtl_work -all
}
vlib rtl_work
vmap work rtl_work
#编译 testbench文件
vlog **_tb.v
#编译 设计文件(位于工程文件夹下的rtl子文件夹)
vlog ../rtl/.v
#vlog ../rtl/.v
#vlog ../rtl/.v
#编译 IP文件
vlog ../rtl/.v
#指定仿真顶层模块
#-L altera_ver 这几个为可选项,用到谁的IP,就添加谁,不清楚就全部保留
#-L lpm_ver 这几个为可选项,用到谁的IP,就添加谁,不清楚就全部保留
#-L sgate_ver 这几个为可选项,用到谁的IP,就添加谁,不清楚就全部保留
#-L altera_mf_ver 这几个为可选项,用到谁的IP,就添加谁,不清楚就全部保留
#-L altera_lnsim_ver 这几个为可选项,用到谁的IP,就添加谁,不清楚就全部保留
#-L cycloneive_ver 这几个为可选项,用到谁的IP,就添加谁,不清楚就全部保留
vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cycloneive_ver -L rtl_work -L work -voptargs="+acc" tb_name_tb
#添加信号到波形窗
add wave -position insertpoint sim:/tb_name_tb
run -all
以下述代码为例:
vlib verilog_libs/altera_ver
vmap altera_ver ./verilog_libs/altera_ver
vlog -vlog01compat -work altera_ver {d:/intelfpga/18.1/quartus/eda/sim_lib/altera_primitives.v}
文中的tb_name_tb为仿真文件名称
花括号中所使用的路径为本地PC上Quartus安装的相关路径,其内包含相应的仿真库文件:如下 内有Verilog HDL和VHDL的仿真库文件,由于本人所用开发语言为Verilog,故脚本文件中所调用的文件为.v类型的。 仿真运行之后,可以见到相应的仿真库都被添加到了Modelsim的Library中: 这里仿真FIFO的例子也成功的跑起来了: 有兴趣的童鞋可以试一下
|