工厂机制(factory)—UVM

简介

  • 工厂的存在,就是为了更方便地替换验证环境中的实例或者注册了的类型,同时工厂的注册机制也带来了配置的灵活性;
  • 实例或者类型的替代,在UVM中称作覆盖(override),而**被用来替换的对象或者类型,应该满足注册(registration)和多态(polymorphism)**的要求;
  • uvm的验证环境构成可以分为两个部分:一部分构成了环境的层次,通过ucm_component类完成;另一部分构成了环境的属性(例如配置)和数据传输,这部分通过uvm_object类完成。
  • ucm_component类继承与uvm_object,这两种类也是进出工厂的主要模具和生产对象。之所以称为模具,是因为通过注册,可以利用工厂完成对象的创建;
  • 之所以由工厂创建对象,也是利用了工厂生产模具可以灵活替代的好处,这使得在不修改原有验证环境层次和验证包的同时,实现了对环境内部组件类型或者对象的覆盖。

ucm_component和uvm_object的例化

  • 必须要有的步骤:定义——>注册——>构建
  • 注册:`uvm_component_utils(T,parent) 或者 uvm_object_utils(T)
class comp1 extends uvm_component;//定义
    `uvm_component_utils(comp1)   //注册
    function new(string name ="comp1",uvm_component parent = null);//构建函数
        super.new(name,parent);
    endfunction:new  
endclass

class obj1 extends uvm_object;//定义
    `uvm_object_utils(obj1)</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小verifier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值