crazybird

【原创】验证平台的搭建——应用篇

0
阅读(2886)

基于上一篇博文《验证平台的搭建——实现篇》的基础上,讲讲该验证平台的使用方法。

一、基本参数设置

针对不同的计算机以及软件的安装路径,需要对验证平台的一些参数进行设置。首先是器件库的路径设置,打开批处理文件sim.bat,根据具体情况进行设置,如图1所示。

库路径的设置.bmp

图1 库路径的设置

其次是设置需要用到哪些器件库,打开do脚本文件vsim.do,可根据具体需求进行设置(这里用到的器件库有altera_ver、lpm_ver、sgate_ver、altera_mf_ver、altera_lnsim_ver等),如程序清单1所示。

程序清单1

if {$lib == "altera"} { vsim -suppress 3009 -t 1ps -quiet -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclone_ver -L cycloneii_ver -L cycloneiii_ver -L cycloneiiils_ver -L cycloneive_ver -L cycloneiv_hssi_ver -L cycloneiv_pcie_hip_ver -L cycloneiv_ver -L work -voptargs="+acc" -wlf $log_path/vsim.wlf work.testbench } else { vsim -suppress 3009 -t 1ps -quiet -L work -voptargs="+acc" -wlf $log_path/vsim.wlf work.testbench }

一般情况下,以上参数只需设置一次。

二、验证平台启动参数设置

关于验证平台的启动参数说明可双击批处理文件“显示帮助信息.bat”进行查看,如图2所示。

显示帮助信息.bmp

图2 显示帮助信息

而参数的设置是在批处理文件“sim_start.bat”中进行的。验证平台运行于命令下且不需要器件库,如程序清单2所示;验证平台运行于命令下且需要器件库,如程序清单3所示;验证平台运行于图形界面下且不需要器件库,如程序清单4所示;验证平台运行于图形界面下且需要器件库,如程序清单5所示。

程序清单2

call sim

程序清单3

call sim -lib altera

程序清单4

call sim -gui

程序清单5

call sim -lib altera -gui

接下来,举一个简单的例子并通过验证它的功能来介绍验证平台的使用。此次要验证的是altera的PLL核,输入时钟为50MHz,输出时钟为100MHz和50MHz,IP核参数设置如程序清单6所示。

程序清单6

altpll_component.bandwidth_type = "AUTO", altpll_component.clk0_divide_by = 1, altpll_component.clk0_duty_cycle = 50, altpll_component.clk0_multiply_by = 2, altpll_component.clk0_phase_shift = "0", altpll_component.clk1_divide_by = 1, altpll_component.clk1_duty_cycle = 50, altpll_component.clk1_multiply_by = 1, altpll_component.clk1_phase_shift = "0", altpll_component.compensate_clock = "CLK0", altpll_component.inclk0_input_frequency = 20000, altpll_component.intended_device_family = "Cyclone IV E",

相应的测试代码如程序清单7所示。

程序清单7

`timescale 1ns/1ps module testbench; reg rst; reg clk_in_50M; wire clk_out_100M; wire clk_out_50M; wire locked; parameter CLK_CYCLE = 20; initial begin clk_in_50M = 0; forever #(CLK_CYCLE/2) clk_in_50M = ~clk_in_50M; end sys_pll u_sys_pll ( .areset ( rst ), .inclk0 ( clk_in_50M ), .c0 ( clk_out_100M), .c1 ( clk_out_50M ), .locked ( locked ) ); initial begin rst = 1; #(CLK_CYCLE*10); rst = 0; #(CLK_CYCLE*1000); $stop; end endmodule

由于需要查看输入输出时钟的波形关系,因此PLL功能的验证主要基于图形界面。又因为对PLL的仿真需要器件库,故验证平台的仿真参数设置如程序清单8所示。

程序清单8

call sim -lib altera -gui

双击sim_start.bat批处理文件,启动仿真,仿真结果如图3所示。输入50MHz的时钟、输出100MHz和50MHz的时钟,很显然,PLL的功能是正确的。

PLL仿真结果.bmp

图3 PLL仿真结果

如果不指定器件库的话,将出现错误,如图4所示。

编译错误.bmp

图4 编译错误

好像讲完了,其他的就自己去创造吧。哈哈*^_^*


首创于电子技术应用网站,未经同意不得转载~~

Baidu
map