1. 准备
下载好uvm的库,解压后的文件夹uvm-1.1d,accellera官网下载UVM
将库保存在linux虚拟机自己的目录下
2. 步骤
在.bashrc文件中设置变量 $UVM_HOME,这个变量保存uvm-1.1d的目录,设置了这个变量后,在用到uvm库的路径的时候,就可以用$UVM_HOME.
12345cd ~gvim .bashrc// 在.bashrc文件中添加uvm-1.1d这个文件夹的地址//比如 export UVM_HOME=~/uvm/uvm-1.1d
设置VCS运行脚本
1234# filename :runvcs +acc +vpi -sverilog $UVM_HOME/src/dpi/uvm_dpi.cc -CFLAGS -DVCS -timescale=1ns/1ps -f filelist.f ./simv +UVM_TESTNAME=$1# +UVM_TESTNAME是要测试的case,使用的时候 ./run my_case0,这个$1就替换成了my_case0
filelist.f文件的内容
123456+incdir+$UVM_HOME/src$UVM_HOME/src/uvm_pkg.sv/home/IC/Desktop/my_uvm/dut/dut.svtop_tb.sv# dut.sv是DUT# top_tb.sv是测试平台最顶层
在top_tb.sv中`include一些文件
123456789101112131415`timescale 1ns/1ps`include "uvm_macros.svh"import uvm_pkg::*;`include "my_if.sv"`include "my_transaction.sv"`include "my_sequencer.sv"`include "my_driver.sv"`include "my_monitor.sv"`include "my_agent.sv"`include "my_model.sv"`include "my_scoreboard.sv"`include "my_env.sv"`include "base_test.sv"`include "my_case0.sv"
运行
1./run my_case0
3. VCS仿真UVM脚本21234567vcs +vpi +acc -sverilog +incdir+${UVM_HOME}/src \ ${UVM_HOME}/src/uvm_pkg.sv \ ${UVM_HOME}/src/dpi/uvm_dpi.cc \ -CFLAGS -DVCS \ -timescale=1ns/1ps \ top_tb.sv ./simv
上面脚本中,顺序不能错,一点都不能错。
+acc:使能PLI+vpi:开启VPI PLI
可以将top_tb.sv替换成filelist.f文件
注意:在Makefile中,访问变量需要加{}中括号。
4. VCS仿真UVM脚本3在.bashrc文件中设置变量 VCS_UVM_HOME ,设置成。
1export VCS_UVM_HOME = $UVM_HOME/src
运行VCS
1vcs -sverilog -ntb_opts uvm-1.1 test.sv
如果用到uvm_pkg.sv,就可以按照上面那样直接运行了。其中uvm-1.1是编译选项,告诉vcs按照uvm1.1来进行编译仿真。