#UVM# 学习UVM基础(转载:面试总结)

章节(一)

什么是UVM,优势是什么

UVM(通用验证方法)是一种用于验证数字设计标准化的简单方法。
优势:
第一种自动化方法和第二种自动化类库的集合
贯穿于验证平台的可重用性
即插即用的验证IP
通用的验证平台开发
供应商和模拟器独立
高智能的验证平台(即从预先设计的覆盖计划中产生合法的激励)
支持CDV(覆盖率驱动)验证
支持CRV(受限随机)验证
UVM在Accelerate System Initiative下标准化
支持寄存器模型

uvm_component和uvm_object之间有何区别?

uvm_component:
准静态实体(在构建阶段之后,它在整个模拟过程中可用)
始终连接到给定硬件(DUT接口)或TLM端口
具有用于控制仿真行为的phase机制
配置组件拓扑结构

uvm_object:
动态实体(在需要时创建,从一个组件转移到另一个组件然后取消引用)
不连接到给定的硬件或任何TLM端口
没有phase机制

模块和基于class的tb,有什么区别

区别:
模块(module/program)是在仿真期间始终存在的静态对象。
class是一个动态对象,因为它们可以在仿真的生命周期中来去。
特别指出:interface是静态对象,因此只能用于top、模块等静态对象中,driver为动态的对像类,因此driver等类中使用的为virtual interface,通过虚的指针指向实际的interface。

什么是uvm_config_db?uvm_config_db和uvm_resource_db之间有什么区别?

uvm_config_db是一个参数化类,用于将不同类型的参数配置到uvm数据库中,如此它可以被任何较低级别层次结构中的组件使用。
uvm_config_db是一个构建在uvm_resource_db之上的便利层,但这种便利非常重要。特别是,uvm_resource_db使用“最后写入获胜”方法。另一方面,uvm_config_db通过end_of_elaboration查看层次结构中的内容,因此“父获胜”。一旦启动start_of_simulation,config_db就会变成“最后写入获胜”。
uvm_config_db#(T)中的所有函数都是静态的,因此必须使用::运算符调用它们。uvm_config_db#(T)是从uvm_resource_db#(T)扩展而来的,所以它是uvm_resource_db#(T)的子类。

uvm_do和uvm_rand_send之间的区别是什么?

uvm_do执行以下步骤:
Create
Start item
Randomize
Finish item
Get response (optional)

`uvm_rand_send执行除create之外的所有上述步骤。用户需要创建sequence或sequence item。

用户是否可以自定义UVM中的phase?

除了UVM中可用的预定义uvm_phase之外,用户还可以选择将自己的phase添加到组件中。这通常通过扩展uvm_phase类和使用构造函数调用super.new来完成,new有三个参数:

(1)阶段任务或功能的名称
(2)自上而下或自下而上的阶段
(3)任务或功能

需要实现call task或call_func和get_type_name以完成新phase的添加。以下为添加示例:
在这里插入图片描述

什么是UVM寄存器模型?为什么需要它?

在验证上下文中,寄存器模型(或寄存器抽象层)是一组类,用于模拟DUST中寄存器和存储器的存储器映射行为,以便于激励生成和功能检查(以及可选的功能覆盖的某些方面)。 UVM提供了一组基类,可以扩展它们以实现全面的寄存器建模功能。

什么是analysis_port?

(华为面试题)
analysis_port (uvm_tlm_analysis_port) — 特定类型的事务级端口,可以连接到零个,一个或多个analysis export,组件可以通过该端口调用在另一个组件中实现的方法。
uvm_analysis_port
向所有uvm_analysis_imp中实现的方法广播一个值。
uvm_analysis_imp
接收uvm_analysis_port广播的所有transaction。
uvm_analysis_export
将较低级别的uvm_analysis_imp导出到其父级。

什么是TLM fifo?

简而言之,TLM FIFO是两个UVM组件之间的FIFO,最好是在Monitor和Scoreboard之间。Monitor继续发送DATA,它将存储在TLM FIFO中,Scoreboard可以在需要时从TLM FIFO获取数据。

什么是objection机制?

(比特大陆面试题)
UVM中的objection机制是允许组件之间的分层状态通信,这有助于决定验证结束的时间。

每个内置phase都有一个内置的objection机制,它为组件和对象提供了一种同步其测试活动的方法,并指示何时可以安全地结束phase,最终确定验证进程的结束。

组件或sequence将在活动开始时rAIse objection(提起异议),该活动必须在phase结束之前完成,因此将在该活动结束时drop objection(撤销异议)。一旦所有被raise的 objection都被drop,phase就会终止。

章节(二)

(未完待续。。。)

  • 3
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那么菜

你的鼓励和批评是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值