UVM:8.2.2 重载的方式及种类

1.set_type_override_by_type 实现两种不同类型之间的重载。原型:



2.有时不希望把平台中的A 全部替换成B,只是替换部分,用set_inst_override_by_type,原型:


1)第一个是相对路径。


3.示例:


1)运行到main_phase是,会输出:



4.上面两个的参数都是uvm_object_wrapper 型的参数,通过xxx::get_type()获得。UVM 还有另外一种写法:字符串。

1)与set_type_override_by_type 相对的是set_type_override,原型:


用parrot 替换bird,如下:


2)与set_inst_override_by_type相对的是 set_inst_override,原型:


用new_monitor 重载my_monitor 如下:



5.上述都是在uvm_component 的函数,但是在top_tb 的initial里,无法使用。UVM 提供另外4个函数来替换上述4个函数,原型是:


1)都位于uvm_factory中。


6.应用。系统存在一个uvm_factory 类型的全局变量factory。

1)可以在initial 里使用:


2)在component也可以直接调用factory 机制的重载函数:


其实uvm_component 的四个重载函数直接调用了factory 相应函数,上面截图可以看到。


7.还可以命令行。实例重载和类型重载分别:

<sim command> +uvm_set_inst_override=<req_type>,<override_type>,<full_inst_path>

<sim command> +uvm_set_type_override=<req_type>,<override_type>{,<replace>}

分别对应set_inst_override_by_name 和 set_type_override_by_name。

1)实例重载:


2)类型重载:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值