Modelsim 仿真 IP 核

平台:Modelsim10.5b,前提为安装了Quartus 任一版本
虽然说的是所谓的Modelsim独立仿真,不需要经过Quatyus启动Modelsim软件,但本质上还是使用的Quartus的仿真库。

基于之前的 Modelsim 独立仿真,本次在上述内容中更新了脚本文件对IP核仿真的支持,具体内容见下方文件:

#/*================================================*\
#		  Filename 	﹕ start.do
#			Author 	﹕ Adolph
#	  Description  	﹕ Modelsim 仿真脚本文件
#		 Called by 	﹕ No file
#Revision History   ﹕ 2022-4-19 
#		  			  Revision 1.0
#  			  Email	﹕ [email protected]
#\*================================================*/
#此脚本文件存放于工程文件夹下的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为仿真文件名称
Modelsim 仿真 IP 核_第1张图片

花括号中所使用的路径为本地PC上Quartus安装的相关路径,其内包含相应的仿真库文件:如下
Modelsim 仿真 IP 核_第2张图片
内有Verilog HDL和VHDL的仿真库文件,由于本人所用开发语言为Verilog,故脚本文件中所调用的文件为.v类型的。
仿真运行之后,可以见到相应的仿真库都被添加到了Modelsim的Library中:
Modelsim 仿真 IP 核_第3张图片
这里仿真FIFO的例子也成功的跑起来了:
Modelsim 仿真 IP 核_第4张图片
有兴趣的童鞋可以试一下

你可能感兴趣的:(FPGA学习,fpga开发,verilog设计,Modelsim仿真)