is_active是agent的一个成员,缺省值是UVM_ACTIVE,这表示处在active模式的agent需要例化driver、monitor和sequencer;而如果is_active的值是UVM_PASSIVE,这表示agent是passive模式,只可以例化monitor。active模式的agent既有激励功能也有监测功能;passive模式的agent只有监测功能。 如何配置agent为active模式还是passive模式呢?可...
uvm_active_passive_enum is_active=UVM_ACTIVE 这里UVM默认了is_active值为UVM_ACTIVE,其中uvm_active_passive_enum为变量类型,如果要用config_db传参,使用config_db#(uvm_active_passive_enum)进行set和get。 之所以在agent中设置一个if判断语句来决定是否实例化drv的原因是因为,我们在输入和输出的端口都有agent,...
uvm_active_passive_enum is_active = UVM_ACTIVE; is_active是agent的一个成员,缺省值是UVM_ACTIVE,这表示处在active模式的agent需要例化driver、monitor和sequencer;而如果is_active的值是UVM_PASSIVE,这表示agent是passive模式,只可以例化monitor。active模式的agent既有激励功能也有监测功能,passive模式的agent只具有监...
所有的agent都要派生自uvm_agent类,且其本身是一个component,应该使用uvm_component_utils宏来实现factory注册。这里最令人困惑的可能是build_phase中为何根据is_active这个变量的值来决定是否创建driver的实例。is_active是uvm_agent的一个成员变量,从UVM的源代码中可以找到它的原型如下: uvm_active_passive_enumis_act...
Active: 在总线上通过物理事务做读写操作。Read()、write()、update() 和 mirror() 是Active API,它们使用物理接口在 DUT 上运行。您可以选择使用后门机制,在这种情况下它不会消耗仿真周期。与使用前门访问相同的RTL寄存器行为一致。 Passive:仅使用寄存器模型操作。set()、get() 和 predict() 是直接在模型上操...
通过直接复用子环境,也间接复用了子环境内部的scoreboard,在build阶段,需要通过config_db将不需要再产生激励的agent配置为passive模式,默认情况下agent为active模式 使用方案二在新建MCDF顶层scoreboard时复杂度较方案一会低很多(也可以不用构建) 复用了模块一级的scoreboard,因此方案二便于调试 构建验证环境的内经 环境构建...
2)用is_active决定是否创建driver。is_acitve是uvm_agent的成员变量。uvm_agent.svh源代码如下: 3)uvm_active_passive_enum是枚举类型:原型为:(注释说通常用在agent) 4)uvm_agent中,is_active默认是UVM_ACTIVE,例化driver的。其实可以在is_active 中做别的,只是这个例子例化了driver。
uvm_agent中有时候只需要包含一个monitor,不需要driver和sequencer,需要通过uvm_active_passive_enum is_active = UVM_ACTIVE;来进行有条件的例化 is_active是agent的一个成员,默认值是UVM_ACTIVE,表示处在active模式的agent需要例化driver,monitor和sequencer;如果is_active是UVM_PASSIVE,表示agent是passive模式,只可以例...
is_active是uvm_agent内置的一个成员变量,通过顶层传值,控制driver是否进行例化,且is_active的值默认为UVM_ACTIVE。 UVM_PASSIVE:例化monitor而不需要例化driver(输出端口无需驱动) UVM_ACTIVE:例化monitor,也需要例化driver(输入端口需要驱动) 例化动作可以在build_phase函数中完成,也可以在new函数中完成,但强烈建议仅...
is_active是uvm_agent内置的一个成员变量,通过顶层传值,控制driver是否进行例化,且is_active的值默认为UVM_ACTIVE。 UVM_PASSIVE:例化monitor而不需要例化driver(输出端口无需驱动) UVM_ACTIVE:例化monitor,也需要例化driver(输入端口需要驱动) 例化动作可以在build_phase函数中完成,也可以在new函数中完成,但强烈建议仅...