用VCS启动UVM仿真

用VCS启动UVM仿真

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来进行编译仿真。