怎样将例化的uvn test包含在verdi的instance中,并将其中变量加入到dump的波形中(方便verdi追test以及debug)

本文详细介绍了如何在Verdi环境中将UVM类测试用例包含到模块实例中,并确保其代码可追踪。首先,类测试必须在模块内部定义并运行,且模块不能包含在包中。其次,为了在波形中显示类测试的变量,需要使用static修饰符,并通过连续赋值语句在模块中传递这些变量。虽然这种方法允许在Verdi中查看变量波形,但静态变量可能会引发并发问题。最后,文章指出,当类测试定义在模块外部时,其代码将无法追踪。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.怎样将例化的uvn test包含在verdi的instance中

1.test class在module test中例化(verdi只显示module,class只有包含在module中才会被显示)。注意如果是在module的同一个文件中,但是在module外面去定义class tests会不会也可以追踪呢?不可以写在module外面,写在外面是没法追代码的,代码都是灰白的。

2.注意需要在对应的module tests中将class test进行run(110行)。(testbench.sv(或者说top.sv中)中就不用去使用run_test了)

3.test所在module文件列出来在filelist中。

4.注意module不能包含在pkg中。

5.可能打开verdi也没有显示该test,可以在declaretion窗口找到该case(对应所在的module),双击,然后在instance中就会显示该case。

比如下面这个例子(定义了和test同名的module,test定义在了module中,并按照上面步骤在module中run的test):

1.module and test的定义

 filist:

verdi结果(可以看到test已经在instance上显示,并且class test也处于可以通过点击鼠标右键追踪代码的状态):

 如果class test在module test外面定义那么class test的代码是不可被追踪的。如下图(class代码是不可被最终状态):

二.怎样将例化的uvn test 的变量加入到dump的波形中:

如上面例子中所示。

0.将class test中的想dump的变量用static来修饰。(因为静态变量是不用实例化类就可以直接使用的)(14和16行)

1.在module test中将定义一个变量,然后使用连续赋值语句assign来接收class test中的static修饰的变量。(105和106行)

2.dump_fsdb_vcs.tcl中加入对module test的信号波形dump。

 3.然后在verdi中就可以拉出那个接收class test中static变量值的变量波形来查看了。

缺点:static变量,如果有多个实例化的class,那么这些class都有可能改变这个static变量。其实可以使用verdi的interactive debug mode进行debug。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值