UVM面试题(56-60)

56、什么是uvm_config_db?它的作用是什么?

UVM configure机制 使用 uvm_config_db 配置数据 支持在不同的测试平台组件之间 共享配置参数 。 任何测试平台组件都可以配置参数,其他组件可以从配置数据库访问这些参数 ,而无需知道其在层次结构中的位置。

例如,测试平台顶层可以通过uvm_config_db存储 virtual interface 句柄。然后任何uvm_driver或uvm_monitor组件都可以查询uvm_config_db以获取此virtual interface的句柄,并将其用于获取实际接口信号。

57、我们如何使用uvm_config_db的get()和set()方法?

get()和set()是用于使用uvm_config_db配置或检索信息的主要方法。 任何验证组件都可以使用 set()方法 为config_db配置一些信息,还可以控制其他组件对该信息的可见性。 可以将其设置为全局可见性,或者仅对一个或多个特定测试平台组件可见。

get() 函数从数据库中匹配配置参数。get()和set()方法的语法如下:

uvm_config_db#()::set(uvm_componentcontext, string inst_name, string field_name, value)

uvm_config_db#()::get(uvm_componentcontext, string inst_name, string field_name, ref value)

context 指定调用get / set的当前类或组件。

inst_name 是调用get / set的组件实例的名称。

field_name 是在config_db中get / set的参数的名称。

扫描二维码关注公众号,回复: 13371274 查看本文章

标识get / set的配置信息的类型。

58、验证平台中较低层次结构的组件是否可以使用get / setconfig方法将句柄传递给较高层次结构中的组件?

建议不要以这种方式在UVM中传递配置对象。通常,较高级别的组件设置配置数据而较低级别的组件使用get / set方法获取它们。

59、在UVM方法学中仿真如何结束?

UVM具有分 阶段(phase) 执行,该执行由一组 构建阶段,运行阶段和检查阶段 组成。

在运行阶段执行实际的仿真,并且在此阶段中每个组件都可以在开始时raise objection并保留该objection直到完成其仿真行为为止。一旦所有组件都drops objection则运行阶段完成,然后所有组件的check()阶段执行,最后测试结束。

这是正常仿真结束的方式,但是如果某些组件由于设计或测试平台中的错误而挂起, 仿真超时(timeouts) 也可以控制仿真结束。

60、什么是UVM RAL(UVM Register Abstraction Layer)?

UVM RAL(寄存器抽象层) 是UVM支持的功能,有助于使用抽象寄存器模型来验证设计中的寄存器以及DUT的配置。UVM寄存器模型寄存器抽象模型反映了寄存器设计的结构规范, 提 供 了一种跟踪DUT寄存器内容和位置的方式。 这是硬件和软件工程师的共同参考。RAL的其他一些功能包括支持寄存器的front door和backdoor初始化以及内置的功能覆盖率支持。

猜你喜欢

转载自blog.csdn.net/weixin_44582960/article/details/106958568