Q13:ref类型。
ref 参数类型是引用。
- 向子程序传递数组时应尽量使用 ref 获取最佳性能。如果不希望子程序改变数组的值,可以使用 const ref 类型。
- 在任务里可以修改变量而且修改结果对调用它的函数随时可见。
具体见:https://blog.csdn.net/Michael177/article/details/120807371
Q14:component和object的区别?item属于哪一个?
UVM 中 component 也是由 object 派生出来的。不过相比于 object,component有很多其没有的属性,例如 phase 机制和树形结构等。在 UVM 中,不仅仅需要 component 这种较为复杂的类,进行 TB 的层次化搭建,也需要 object 这种基础类进行 TB 的事务搭建和一些环境配置等。item属于object。
Q15:UVM的树形结构。
- UVM中的树根为uvm_top,其为uvm_root的一个实例(也是唯一一个),且uvm_top本质上是一个uvm_component。
- uvm_test_top的parent是uvm_top,而uvm_top的parent为null;如果一个component在实例化的时候parent被设置为null,那么这个component的parent会被设置为系统中唯一的uvm_root的实例uvm_top。
- 一般在test层例化env。
- 在env里例化scoreboard、reference model、agent。
- 在agent里例化sequencer、driver和monitor。
Q16:UVM验证环境组成。
- Sequencer :负责将数据转给 driver
- driver:负责数据的发送; driver 有时钟/时序的概念。
- agent :简单地把 driver , monitor 和 sequencer 封装在一起。agent 对应的是物理接口协议,不同的接口协议对应不同的 agent ,一个平台通常会有多个 agent 。
- env :则相当于是一个特大的容器,将所有成员包含进去。