回调用于改变组件或对象的行为而不修改其代码。请参阅SystemVerilog callback - VLSI Verify以更好地理解。UVM 中的phasing机制就是回调的一个简单示例。
下面仅提及广泛使用的回调宏:
UVM 回调为其实现提供了一组类。
uvm_callback 方法可以使用范围解析运算符来调用,因为它们是静态方法。
例如: uvm_callbacks#(T, CB)::add(obj,cb);
其中:
T?:使用用户定义回调的对象类型,它必须从 uvm_object 派生。
CB?:用户自定义回调类型
obj :?使用用户定义回调的对象句柄
cb?:用户定义回调对象
uvm_callbacks、uvm_callback_iter 和 uvm_callback 类还有许多其他方法,这里不讨论,常用方法和宏在上一节中介绍。?