(一)UVM验证平台搭建1

 UVM实战中实例源码下载:https://www.hzcourse.com/web/refbook/detail/5651/229

一、环境配置

终于配置跑通 UVM实战中的实例了,下面是基于linux+vcs+verdi的环境配置

1、将下载的源码文件夹解压后共享到虚拟机中

2、需要重新配置setup.vcs文件

原始文件:

#!/bin/csh
setenv VCS_HOME /opt/vcs/E-2011.03 
setenv UVM_HOME ~/uvm/uvm-1.1d
setenv WORK_HOME `pwd`
setenv SIM_TOOL VCS 
set path = (/opt/vcs/E-2011.03/bin ${WORK_HOME}/bin $path)

说明:

  1. 这个配置文件是基于csh的,安装的虚拟机不一定支持,支持bash。

修改文件:

#!/bin/bash

export VCS_HOME=/opt/synopsys/vcs
export UVM_HOME=/home/host/verify/example_and_uvm_source_code/uvm-1.1d/
export WORK_HOME=/home/host/verify/example_and_uvm_source_code/puvm
export SIM_TOOL=VCS
export NOVAS_HOME=/opt/synopsys/verdi
export PATH=/opt/synopsys/vcs/linux64/bin:$PATH

说明:

  1. vcs_home:vcs的安装路径
  2. uvm_home:uvm库文件的路径
  3. work_home:执行代码的工作路径
  4. sim_tool:设置使用的仿真工具是vcs
  5. novas_home:verdi的安装路径
  6. path:脚本的路径
  7. 修改完后要source setup.vcs

3、run文件配置

 

#!/bin/csh
if ( $SIM_TOOL == "QUESTA" ) then
vlib work
vlog -f filelist.f
vsim -sv_lib $UVM_DPI_DIR/uvm_dpi -do $WORK_HOME/bin/vsim.do -c top_tb
endif

if ( $SIM_TOOL == "VCS" ) then
vcs -sverilog $UVM_HOME/src/dpi/uvm_dpi.cc -CFLAGS -DVCS -timescale=1ns/1ps -f filelist.f 
./simv 
endif

if ( $SIM_TOOL == "NCSIM" ) then
ncverilog +sv -f filelist.f -licqueue -timescale 1ns/1ps -uvm -uvmhome $UVM_HOME 
endif

 说明:

  1. sim_tool:对应不同的仿真工具,在setup.vcs中设置的是vcs
  2. 但不能直接使用这个run文件,需要修改
  3. 使用Makefile来运行

4、Makefile

使用makefile用着更习惯

UVM_HOME = /home/host/verify/example_and_uvm_source_code/uvm-1.1d/

elab:
	vcs -top top_tb -full64 -lca -sverilog -debug_access+all -timescale=1ps/1ps -sim_res=1ps -kdb \
    $(UVM_HOME)/src/dpi/uvm_dpi.cc -CFLAGS -DVCS \
    +incdir+$(UVM_HOME)/src $(UVM_HOME)/src/uvm.sv \
    -f filelist.f \
	-LDFLAGS"-Wl,--rpth,$(NOVAS_HOME)/share/PLI/VCS/LINUX64"
run:
	./simv &
verdi:
    verdi -ssf ./tb.fsdb &
clean:
	\rm -rf AN.DB
	\rm -rf *simv*
	\rm -rf DVEfiles
	\rm -rf ucli.key

all: clean elab run

说明:

  • 设置uvm_home的路径
  • elab中要把UVM的库文件incdir进来,设置了top顶层是top_tb
  • 若UVM的库文件就在VCS的安装路径下面可以直接用-ntb_opts uvm
  • 需要修改filelist和把dut.sv包含到对应的路径中
  • 在原始的top_tb.sv文件中加入下列initial代码
  • 先删掉原本的run文件,执行make all 再make verdi 即可以用verdi看波形
initial begin
	$fsdbDumpfile("tb.fsdb");
	$fsdbDumpvars;
end

(修改后的)2.2.1代码运行结果:

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在搭建UVM验证平台之前,您需要了解以下内容:UVM语法和结构,UVM验证框架,UVM注册机制,UVM构建和配置方法,UVM测试库,UVM系统级验证UVM统计测试,UVM随机测试,以及UVM文件格式。接下来,你需要使用UVM API来构建一个基本验证环境,然后进行测试和验证结果的记录和分析。最后,你需要根据实际需要对验证平台进行调整和优化,以满足你的验证要求。 ### 回答2: 搭建一个UVM(Universal Verification Methodology)验证平台可以帮助我们有效地进行硬件验证。下面是搭建UVM验证平台的一些建议。 首先,一个UVM验证平台需要一个良好的环境设置。这包括设置合适的操作系统和相应的验证工具。验证工具可以是仿真器(如ModelSim、VCS等)和波形查看器(如DVE、Verdi等)等。同时需要安装UVM库,它包含了许多UVM验证环境所需的类和函数。 其次,我们需要定义测试环境和验证组件。测试环境是一个UVM对象,它包含了验证环境中的各个组件,如顶级模块、输入接口、输出接口等。验证组件是属于测试环境的子对象,它们有不同的功能,如驱动器(driver)、监视器(monitor)、代理(agent)等。每个验证组件负责特定的任务,并且彼此之间可以通过消息传递进行交互。 接下来,我们需要编写测试用例和配置文件。测试用例是验证平台的核心,它们用于模拟各种场景和情况,以测试我们设计的硬件是否符合预期的行为。配置文件则用于配置验证环境和测试组件的参数和属性。 然后,我们需要编写测试启动脚本。测试启动脚本用于指定我们要运行的测试用例以及其他必要的设置,如仿真时间、波形文件保存位置等。 最后,我们可以运行仿真来验证我们的设计。在仿真过程中,UVM验证平台将执行我们编写的测试用例,并通过各个验证组件和消息传递机制来收集和分析波形数据。 总之,搭建一个UVM验证平台需要正确安装验证工具和UVM库,定义测试环境和验证组件,编写测试用例和配置文件,以及编写测试启动脚本。这样,我们就可以使用UVM验证平台验证我们的硬件设计。 ### 回答3: 要搭建一个UVM验证平台,需要以下步骤: 1. 首先,确定验证平台的需求和目标,包括验证环境、测试用例、复用性需求和时间限制等。 2. 设计验证环境。选择适合验证目标的硬件平台和工具。设计验证环境包括顶层模块、测试控制器、驱动器、监控器和代理等。 3. 编写测试用例。根据验证目标和需求编写测试用例,包括功能测试、边界测试、性能测试等。测试用例应涵盖各种正常和异常情况。 4. 实现UVM验证组件。根据验证环境设计和测试用例编写UVM验证组件,包括顶层模块的连接、各个组件的功能实现和接口设置等。 5. 集成和运行验证环境。将验证组件连接到验证环境中,并进行集成测试。确保各个组件的正确互连和功能正常。 6. 运行测试用例。在验证平台上运行测试用例,并收集和分析测试结果。根据测试结果进行调试和修复。 7. 持续改进和优化。根据使用过程中发现的问题和需求,不断改进和优化验证平台,提高验证效率和质量。 8. 文档和培训。及时编写和更新验证平台的文档,包括使用手册、API文档等。培训团队成员,使其熟悉验证平台的使用和开发流程。 总之,搭建一个UVM验证平台需要确定需求、设计验证环境、编写测试用例、实现验证组件、集成和运行验证环境,持续改进和优化,并进行文档和培训。这样可以提高验证效率和质量,有效降低验证成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值