UVM 下载
为了方便学习, 我们下载一个 1.1d 版本的
使用
为了方便学习, 我们直接使用张强的<UVM 实战> 使用的版本
到github 上下载, <UVM 实战> 的随书源码和 UVM 源码
|
|
进入虚拟机 Redhat
|
|
添加UVM 环境变量
把以下内容添加到 ~/.bashrc
中
|
|
并且 source ~/.bashrc
跑第一个 UVM 例程
-
1
cd ~/example_uvm/puvm/src/ch2/section2.2/2.2.1/
-
新建一个 makefile 并填入下列内容
1 2 3 4 5 6 7 8 9 10
# compile vcs_compile: vcs -debug_access+r+w+nomemcbk -debug_region+cell +vpi -sverilog $(UVM_HOME)/src/dpi/uvm_dpi.cc -CFLAGS -DVCS -timesca le=1ns/1ps -f filelist.f vcs_run: ./simv vcs_all: vcs -debug_access+r+w+nomemcbk -debug_region+cell +vpi -sverilog $(UVM_HOME)/src/dpi/uvm_dpi.cc -CFLAGS -DVCS -timescale=1ns/1ps -f filelist.f ./simv clean: rm -rf csrc/ simv.daidir/ simv
-
新建一个 filelist.f 并填入下列内容
1 2 3 4 5 6
+incdir+$UVM_HOME/src $UVM_HOME/src/uvm_pkg.sv /home/user/example_uvm/puvm/src/ch2/dut/dut.sv top_tb.sv # dut.sv是DUT # top_tb.sv是测试平台最顶层
-
make
1
make vcs_compile
没有意外的话 这里会出错, 原因是 uvm 的宏定义有语法错误, 需要修改一下才能使用, 修改见本文后面
-
run
1
make vcs_run
修改 uvm 源码以通过编译
注意: 貌似Windows 下有下面这个问题, 在MACOS 上没有问题
报错地方
|
|
错误信息:
|
|
原因分析
仔细阅读上下行代码,很好理解,原因是//开头的注释相当于将后面的整行代码注释掉了,而又由于有 \ 符号将后面的代码接上了,于是编译器的编译规则默认下面的几行也注释掉了,所以后面的代码不能起效,自然报错。。
解决
这类错误会出现在以下几个文件中:
|
|
将uvm的库文件里面所有含有//开头且以\结尾的注释行都替换掉
采用vim/gvim打开后使用正则表达式替换掉即可。具体替换的正则表达式如下:
|
|
参考博文
https://east1203.github.io/2019/06/13/IC/tools/%E7%94%A8VCS%E5%90%AF%E5%8A%A8UVM%E4%BB%BF%E7%9C%9F/