1. 准备
- 下载好uvm的库,解压后的文件夹uvm-1.1d,accellera官网下载UVM
- 将库保存在linux虚拟机自己的目录下
2. 步骤
- 在.bashrc文件中设置变量 $UVM_HOME,这个变量保存uvm-1.1d的目录,设置了这个变量后,在用到uvm库的路径的时候,就可以用$UVM_HOME.
| cd ~ gvim .bashrc
export UVM_HOME=~/uvm/uvm-1.1d
|
- 设置VCS运行脚本
1 2 3 4
| vcs +acc +vpi -sverilog $UVM_HOME/src/dpi/uvm_dpi.cc -CFLAGS -DVCS -timescale=1ns/1ps -f filelist.f ./simv +UVM_TESTNAME=$1
|
- filelist.f文件的内容
1 2 3 4 5 6
| +incdir+$UVM_HOME/src $UVM_HOME/src/uvm_pkg.sv /home/IC/Desktop/my_uvm/dut/dut.sv top_tb.sv
|
- 在top_tb.sv中`include一些文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| `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"
|
- 运行
3. VCS仿真UVM脚本2
1 2 3 4 5 6 7
| vcs +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 ,设置成。
1
| export VCS_UVM_HOME = $UVM_HOME/src
|
运行VCS
1
| vcs -sverilog -ntb_opts uvm-1.1 test.sv
|
如果用到uvm_pkg.sv,就可以按照上面那样直接运行了。其中uvm-1.1是编译选项,告诉vcs按照uvm1.1来进行编译仿真。