UVM & SV八股

1.callback机制:

sv中回调(callback)机制通过在类中定义虚方法(回调方法),并在适当时机(回调钩子)调用这些方法来实现。用户继承并重写这些虚方法来插入自己的代码,改变组件的行为。

2.sv中约束块可以调用函数吗?

不可以直接调用,但可以使用函数返回值(return)、随机化函数($urandom)、类方法

3.UVM中run_phase和main_phase的关系

run_phase和12个task_phase是并行执行的,都是在同一时间开始,但是main_phase作为run_phase的一部分,会在pre_main之后和post_main之前执行。在run_phase中,用户可以在任何时候启动序列(seq),而在main_phase中通常执行的主要的测试序列。

4.item_done的作用

握手机制,用于告知sqr,drv已处理该item,可移除保留副本;标志item声明周期结束,允许seq执行下一个item

5.uvm常用port

uvm_put_port、uvm_get_port、uvm_peek_port、uvm_analysis_port、uvm_analysis_export、uvm_tlm_analyasis_fifo

6.结构体和类有什么区别

继承、多态、封装、默认访问修饰符、是否包含方法、内存分配(结构体在栈、类在堆/栈)

7.数组和队列有什么区别

队列遵循先进先出,不支持随访问,队列不需要指明大小,数组可以是多维的

8.结构体和枚举类型

结构体是一种复合数据类型,用于将多个数据合成一个单一的数据结构;

枚举是一种特殊的数据类型,定义了一组命名的常量;

9.类的三大特性:继承、多态、封装

允许一个类(子类或者派生类)继承一个类(基类或者父类);

允许不同类的对象对同一消息做出响应,通过虚方法(virtual function)实现,子类可以覆盖父类中的虚方法;

将属性和方法捆绑在一起的过程;

10.sqr和drv怎么连接

seq_item_port.connect(m_sqr.seq_item_export)

11.automatic用法

确保使用automatic关键字声明的这些变量的生命周期仅限于他们被声明的代码块,即每次执行代码块都重新初始化;在类的声明时,无法继承基类的值,需要显示地初始化这些变量

12.ref在func和task

ref关键字避免了参数值在传递过程中的复制,二十直接传递了参数的内存地址,可以直接修改原始变量

13.fork join

开启多线程

14.config_db用法

set、get前两个参数为地址,第三个为代号,第四个参数为该类中的某一变量

15.virtual sequence

与vsqr用于复杂测试环境,允许协调多个不同的sqr上的seq执行,vseq只是不同的容器,vsqr是中心化的路由器,桥接不同的sqr,不直接与drv连接,也不处理任何item

16.sqr启动

定义sqr;实例化sqr;连接sqr;启动seq(start挂载或者config_db)

17.深拷贝浅拷贝的区别

浅拷贝只会复制内存地址,深拷贝会创建新的实例,并复制其内容

18.m_sqr和p_sqr的区别

在vseq的定义中有p_sqr这个变量,指向sqr的指针;简单来说,m_sequencer是sequence_item与sequencer之间的桥梁,而p_sequencer则是在sequence中对m_sequencer的直接引用,它允许sequence直接与sequencer交互。使用p_sequencer可以简化代码,避免在sequence中进行类型转换。

19.主要的phase有哪些,作用是什么

Build、connect、end of elaboration、start of simulation、run、extract、check、report、final

常用

system verilogbuild_phase:创建和配置测试平台的结构,实例化uvm_component;

Connect_phase:建立组件之间的连接,通常通过TLM端口进行;

Run_phase:消耗仿真时间,用于激励设计和数据收集;

Check_phase:检查测试环境,确保没有不期望的行为发生;

Report_phase:报告测试结果,包括测试覆盖率和错误检查结果;

Run_time phases:reset\configure\main\shut_down:模拟DUT的复位、配置、运行和断电行为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值