小白UVM实战学习笔记——环境搭建

小白UVM实战学习笔记——环境搭建

初学UVM,记录一下,姑且是搭建好了环境。
虚拟机&操作环境参考这篇: IC_EDA_ALL虚拟机
目前只用了vcs,这个虚拟机上的内容比较全,留用。
vscode的配置可以参考: vscode搭建Verilog HDL开发环境
由于不建议虚拟机联网,所以目前没有在虚拟机上装vscode。在win系统上写代码,然后到ubantu上编译…
参考书籍是张强的《UVM实战》,书中源码以及UVM源码在这里拿到的: github

文件准备

除了需要用到的sv代码外,还需要两个比较重要的文件:makefilefilelist.f

1.makefile

这个文件无后缀,和sv代码放一起就行,使你避免冗长复杂的输入,可以直接用封装好的命令。看到网上做UVM的makefile文件大多都比较类似,一般不需要轻易改动。目前没有做更多了解。

makefile:

.PHONY:vcs sim verdi clean

VCS = vcs -f filelist.f \
	-timescale=1ns/1ns \
	-full64 \
	-R \
	-debug_acc+all \
	+define+FSDB \
	-fsdb \
	-lca -kdb \
	-ntb_opts uvm-1.1 \
	-sverilog \
	+v2k

vcs:
	${VCS}

sim:
	./simv -gui

verdi:
	verdi -ssf tb.fsdb &

clean:
	rm -rf csrc verdiLog simv.daidir \
	novas.* \
	vc_hdrs.h \
	simv \
	*.key \
	*.fsdb \
	*.log	\
	inter.vpd	\
	DVEfiles

共提供了4个命令:(在工程目录下通过命令行输入)
make vcs: 使用VCS对代码编译,在没有filelist.f文件时是编译不了的。后面介绍
make sim: 用simv查看仿真波形
make verdi: 用verdi查看仿真波形,注意需要在顶层tb模块中添加语句:

initial begin
	$fsdbDumpfile("tb.fsdb");
	$fsdbDumpvars;
end

才能够运行,否则报错。
make clean: 编译完成后清理掉产生出来的无用文件,让你的文件目录更整洁。

2.filelist.f

上文提到的make vcs指令中,需要读取filelist.f中的文件。里面应包含uvm库的路径,以及项目里的所有.sv文件。该文件和makefile放一起即可。
这里需要提前设置一下UVM_HOME的环境变量。
在/home/ICer下打开命令行,输入

g .bashrc

在打开的bashrc中加一行

export UVM_HOME=/home/ICer/UVM_example/uvm-1.1d

在这里插入图片描述
注意,UVM_HOME的路径应当和你的实际路径一致。我的uvm版本是1.1d,存在了/home/ICer/UVM_example/这个路径下。
这样就将UVM_HOME添加至环境变量中了。
以《UVM实战》书中2.2.1的源码(详见文章开头的源码链接)为例,我的filelist.f如下:

   +incdir+$UVM_HOME/src
   $UVM_HOME/src/uvm_pkg.sv
   /home/ICer/UVM_example/puvm/src/ch2/dut/dut.sv
   top_tb.sv
   # $UVM_HOME即刚刚在环境变量中指定的路径
   # dut.sv是DUT
   # top_tb.sv顶层testbech,由于该文件就在当前目录下,所以没有指定其路径

之后在工程目录里使用make vcs就可以编译了。
在这里插入图片描述
查看波形的话我用的是verdi:
make verdi
在这里插入图片描述
选择要查看的信号——右键——Add to Waveform——New Waveform即可将信号添加至输出波形。在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值