目录
(5) Factory机制与override机制:factory的替换列表中添加替换项
1. uvm objection
(1) 通过此机制控制task phase的运行与终止,保证task phase内语句的正常进行
(2) 进入task phase中遇到仿真时间,而未遇到raise objection,此时立即退出phase,导致该phase执行语句未被执行
(3) 如果由raise无drop,导致无法退出该phase,后续的phase无法被执行,仿真无法停止
2. Factory
(1) 两表机制
注册表:通过宏记录到这个表
替换表:create
(2) 步骤
① 用宏注册到注册表
② 用class_name::type_id::create()来代替new()实例化对象(必须)
③ 根据具体要求向替换表添加替换条目
④ 在运行仿真时,uvm会根据这两张表自动地实现factory机制
(3) 两个宏
`uvm_object_utils()对object进行注册
`uvm_component_utils()对component进行注册
如果要注册一个参数化的类需要使用:
`uvm_object_param_utils()对object进行注册
`uvm_component_param_utils()对component进行注册
宏的作用:
① 为注册的类创建一个代理类:type_id
1) 这个类在注册类的内部,起到间接实例化对象的代理作用