uvm(7)factory

重载

针对任务或者函数,定义virtual;然后就可以重载

第二个是 约束的重载

然后

m_trans.crc_err_cons.constraint_mode(0);

这个是关闭此约束

m_trans.constraint_mode(0);

这是关闭所有约束

还可以集成原来的transation直接重写约束起到重载的作用

用factory重载

set_type_override_by_type语句相当于在factory机制的表格中加入了一条记录。 当查到有重载记录时, 会使用新的类型来替代旧的类型

使用factory重载需要满足条件

此函数原型如下

把第一个参数的类型重载成第二个参数的类型。

有时候可能并不是希望把验证平台中的A类型全部替换成B类型, 而只是替换其中的某一部分, 这种情况就要用到set_inst_override_by_type函数。 这个函数的原型如下:

举例如下

当进行如下操作

把monitor更新

无论是set_type_override_by_type还是set_inst_override_by_type, 它们的参数都是一个uvm_object_wrapper型的类型参数, 这种参数通过xxx: : get_type( ) 的形式获得。 UVM还提供了另外一种简单的方法来替换这种晦涩的写法: 字符串。

与set_type_override_by_type相对的是set_type_override, 它的原型是:

与set_inst_override_by_type相对的是set_inst_override, 它的原型是:

但是如果想在initial中使用的话,要用如下函数

full_inst_path就是要替换的实例中使用get_full_name( ) 得到的路径值

比如这个样子

其实上述函数就是原型

如下对命令行重载

连续重载

在有多个重载时, 最终重载的类要与最初被重载的类有派生关系。 最终重载的类必须派生自最初被重载的类, 最初被重载的类必须是最终重载类的父类。

也就是读完连续重载的语句然后在确定最终情况

调试重载

针对上述重载

或者如下

常用重载

重载transaction

对于一个default sequence,我们需要对里面的trans做更改就可以重载

然后在set trans就可以

sequence

就是用于嵌套的seq

component

上述常用于产生异常用例,就是上面两个

其实还可以用重载driver来产生

只需在build中

用于无法用重载seq的情形

factory机制实现

factory说白了就是通过字符串来创建一个类(new)

有如下相关函数

factory.create_object_by_type(my_transaction::get_type()))

一般只用到第一个参数

还有

factory.create_component_by_name("my_transaction", get_full_name(), "scb", this)

第一个参数是字符串类型的类名, 第二个参数是父结点的全名, 第三个参数是为这个新的component起的名字,第四个参数是父结点的指针。 在调用这个函数时, 这四个参数都要使用

本质上来看, factory机制其实是对SystemVerilog中new函数的重载。

相关推荐
上海芯聚电子3 小时前
ADC与FPGA之间,如何减少板级设计复杂度?
fpga开发·adc
自小吃多5 小时前
高云FPGA ModelSim中的仿真
笔记·嵌入式硬件·fpga开发
通信王666 小时前
适用于 FPGA 和 SoC 的UltraFast 设计方法指南(1)-UG949
fpga开发
明德扬6 小时前
AD9653采集模块、PCIe采集卡和完整采集系统怎么选?
fpga开发·fpga
智塑未来6 小时前
FPGA开发板选型:研发交付能力怎么看
人工智能·fpga开发
泛联新安10 小时前
FPGA功能仿真:VShark正式亮相,换仿真器不用换习惯
fpga开发·编译·仿真·嵌入式软件·代码漏洞扫描
泛联新安14 小时前
FPGA仿真加速:AccEmu正式亮相,一周的回归,一天跑完
机器学习·fpga开发·数据挖掘·回归·自动化·嵌入式软件·代码漏洞扫描
Terasic友晶科技14 小时前
【教程】Agilex 5 SOC FPGA的HPS端如何响应FPGA端中断(四)——设计中断驱动程序
fpga开发·hps·fpga端中断·设计中断驱动程序
szxinmai主板定制专家1 天前
基于 RK3588+RK1820/28 算力卡的国产工控机,适用于机器视觉,机器人等边缘算力场景
人工智能·fpga开发·zynq·控制器·mpsoc·半导体设备
unicrom_深圳市由你创科技1 天前
硬件在环(HIL)测试在FPGA项目中为什么重要?
fpga开发