modelsim脚本仿真(二)带quartus的IP核工程仿真

仿真以调用quartus的pll为例

我把工程打包发出来了。
链接: sim_ip.

1.文件夹结构


prj为quartus工程sim为modelsim仿真脚本以及tb文件。

2.使用quartus调用pll IP核

先在prj里新建pll工程,然后调用pll对应的IP核(这里过程略过,我将自己的IP核命名为pll,存放在ip文件夹中),完成之后进入PLL的IP文件夹会生成一个pll_sim文件夹,在这里面在会有一个.vo文件,这个要拿出来与顶层一起编译。
需要用到的有rtl顶层例化和IP文件夹里的.vo文件
在这里插入图片描述
ip文件夹:
在这里插入图片描述
pll_sim文件夹:
在这里插入图片描述
我们在编译的时候需要编译这个文件夹中的pll.vo
我们使用的是modelsim,这个软件是mentor公司的,quartus在生成IP的时候会把各个仿真软件的脚本同时生成出来,也就是在mentor文件夹中的tcl脚本文件,我的工程生成的是msim_setup.tcl

2.1顶层文件例化

module my_pll(
	input clk_50,
	input rst_n,
	output clk_100,
	output locked
	
);

pll pll1( 
	.locked		(locked),
	.outclk_0	(clk_100)	,
	.refclk		(clk_50),
	.rst			(rst_n)
	);

endmodule

2.仿真设计

主要文件如下:
在这里插入图片描述

如图主要有4个文件,sim.bat是Windows脚本,用于启动modelsim的,sim.do就是我们的modelsim脚本,tb_pll.v就是测试文件,msim_setup.tcl为前面所说的quartus生成的用于modelsim的脚本文件。

2.1.sim.bat文件内容:

modelsim -do sim.do

2.2. tb_pll.v文件:

`timescale 1ns/1ps
module tb_pll();


reg clk_50;
reg rst_n;

wire clk_100;
wire locked;

my_pll pll0(
	.clk_50		(clk_50),
	.rst_n 		(rst_n),
	. clk_100  ( clk_100),
	.locked (locked)
);

always begin #3 clk_50 = 1; #3 clk_50 = 0; end

initial
begin
	rst_n = 1;
	#10
	rst_n = 0;
	#10
	#1000
	$stop;
end
endmodule

2.3.设计仿真脚本sim.do

transcript on
if {[file exists dyq_work]} {
	vdel -lib dyq_work -all
}
#编译quartus器件库
do msim_setup.tcl 
dev_com

#在sim下新建自己的库dyq_work
vlib dyq_work  
vmap work dyq_work

#编译源代码,对于IP核部分,要编译前面说的vo文件,而不是v文件
vlog  ../prj/ip/pll_sim/pll.vo
vlog  ../prj/rtl/*.v
vlog  ../sim/*.v


#这里设置仿真精度,-L是映射库
vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclonev_ver -L cyclonev_hssi_ver -L cyclonev_pcie_hip_ver -L dyq_work -L work -voptargs="+acc"  tb_pll

#添加波形
add wave *

view structure
view signals
run -all

3.仿真

以上完成之后双击bat文件就可以直接打开modelsim进行仿真了。如果启动不了,那就是环境变量没有配置好。
在这里插入图片描述
编译完后的sim文件夹:
在这里插入图片描述

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值