22 UVM Callbacks

回调用于改变组件或对象的行为而不修改其代码。请参阅SystemVerilog callback - VLSI Verify以更好地理解。UVM 中的phasing机制就是回调的一个简单示例

1 UVM Callback Usage

  1. 允许即插即用机制以建立可重用的验证环境。
  2. 基于钩子方法(hook method)调用,执行用户自定义的代码,而不是空的回调方法。这带来了组件或对象的各种风格。
  3. 回调可用于在组件中引入错误或延迟。

2 UVM Callback Macros

下面仅提及广泛使用的回调宏:

22 UVM Callbacks_第1张图片

3 UVM Callback Classes

UVM 回调为其实现提供了一组类。

22 UVM Callbacks_第2张图片

4 UVM Callback Methods

uvm_callback 方法可以使用范围解析运算符来调用,因为它们是静态方法。

例如: uvm_callbacks#(T, CB)::add(obj,cb);

其中:

T :使用用户定义回调的对象类型,它必须从 uvm_object 派生。

CB :用户自定义回调类型

obj : 使用用户定义回调的对象句柄

cb :用户定义回调对象

22 UVM Callbacks_第3张图片

uvm_callbacks、uvm_callback_iter 和 uvm_callback 类还有许多其他方法,这里不讨论,常用方法和宏在上一节中介绍。 

5 Steps to implement uvm_callback

6 UVM callback in uvm_sequence

6.1 UVM callback in uvm_sequence example

你可能感兴趣的:(UVM,vlsiverify_uvm)