uvm 中set_type_override_by_type
时间: 2023-07-07 21:14:00 浏览: 198
UVM学习记录.docx
`set_type_override_by_type()` 是 UVM 中的一个函数,用于覆盖指定类型的组件或接口的默认类型。其函数原型如下:
```verilog
function void uvm_config_db#(T)::set_type_override_by_type(
uvm_component comp,
type_id desired_type,
string inst_path = "",
uvm_object_wrapper replace_with = null,
bit replace = 1,
uvm_object_wrapper original_wrapper = null
)
```
参数说明:
- `comp`:要进行类型覆盖的组件或接口对象。
- `desired_type`:要覆盖的类型。
- `inst_path`:要覆盖的实例路径。默认为空,表示对所有实例进行覆盖。
- `replace_with`:要替换成的类型。默认为 `null`,表示使用原始类型。
- `replace`:是否替换。默认为 1,表示进行替换。
- `original_wrapper`:原始类型的对象包装器。默认为 `null`,表示使用 `replace_with` 中的对象包装器。
例如,下面的代码将 `my_agent` 中的 `my_driver` 对象的类型从 `my_driver` 覆盖为 `my_special_driver`:
```verilog
uvm_config_db#(uvm_object_wrapper)::set_type_override_by_type(
my_agent.my_driver,
type_id::get(my_driver::type_id::get()),
"",
uvm_object_wrapper::type_id::get_by_name("my_special_driver"),
1
);
```
阅读全文