[UVM源代码研究] uvm中的factory机制(uvm-1.2版)

《UVM实战》笔记——第八章 factory机制 UVM实战笔记之工厂机制,持续更新中 阅读详情
AI摘要

本文详细介绍了UVM(UniversalVerificationMethodology)中工厂模式的实现,包括uvm_object/class组件注册、uvm_object_utils宏的使用、uvm_object_registry和uvm_object_wrapper的作用,以及override函数在uvm_factory中的关键角色。通过源代码分析,展示了工厂机制在UVM设计模式中的重要地位和工作流程。

[UVM源代码研究] uvm中的factory机制(uvm-1.2版)

工厂(factory)机制

工厂机制作为设计模式(design pattern)中的一种并不是uvm独有的,但却作为一个重要的概念被uvm引入实现了。

“工厂”表示一个负责创建其他类型对象的类,工厂决定了我们最终创建的类的类型。

factory机制的实现包含了以下几个步骤:

  1. 实现factory机制的类必须使用uvm_object/cmponent_utils系列宏进行注册
  2. 调用set_type_override等override函数对需要创建的类进行覆盖(可选)
  3. 创建类的时候必须使用::type_id::create方法创建(这样才会执行查找override表创建最终的类型)

下面我们分别对以上3个步骤中涉及到的UVM源代码进行解读。

`uvm_object/component_utils系列宏

我们在使用factory机制的时候,必不可少的一个步骤就是相关类在实现的时候必须使用`uvm_object/component_utils宏进行注册,下面以uvm_object为例讲述一系列的相关宏的具体实现。

src/macros/uvm_object_defines.svh中的源代码

在这里插入图片描述

src/macros/uvm_object_defines.svh中的源代码

在这里插入图片描述

src/base/uvm_registry.svh中的源代码

在这里插入图片描述

将uvm_object/component_utils宏展开,首先都会调用m_uvm_object_registry_internal/param宏,这两个宏中都定义了一个参数化的uvm_object_registry类类型type_id,不同的是`m_uvm_object_registry_internal宏多了个参数S,而在定义type_id类型的时候将参数S按内容直接替换为字符串作为参数化的类uvm_object_registry的第二个参数。

UVM override 机制 1、 override的几种方法 set_type_override_by_type(orig_type::get_type(), new_type::get_type()); //把TB中的orig_type都替换为new_type set_inst_override_by_type("relative_path", orig_type::get_type(), new_type::get_type()); //只有绝对路径下的orig_type替换为new_type 不使用xxx::get_type 阅读详情

相关推荐

factory机制-重载(一)

这里写自定义目录标题1.SystemVerilog对重载的支持2.对约束的重载3.factory 机制式的重载4.重载的方式和种类5.factory机制的调试 1.SystemVerilog对重载的支持 SystemVerilog是一种面向对象的语言。面向对象语言都有一大特征:重载。当在父类中定义一个函数/任务时,如果将其设置为virtual类型,那么就可以在子类中重载这个函数或任务。 重载的最大优势是使得一个子类的指针以父类的类型传递时,其表现的行为依然是子类的行为。 2.对约束的重载 在测试一个DUT时

sinat_41774721的博客 2960

[UVM源代码研究] 聊聊uvm_tlm_analysis_fifo这个特殊的uvm_component(uvm-1.2版)

聊聊uvm_tlm_analysis_fifo这个特殊的uvm_component

sunstat的博客 2567

工厂机制(factory)-UVM

一 uvm_do的作用

weixin_42705678的博客 1766

【UVM实战】第二章:一个简单的UVM验证平台(2)只有driver的验证平台【时序解读】

只有driver的验证平台~

悟已往之不谏 知来者之可追 1693

2.1 量子精密测量:SERF原子陀螺仪中的核自旋-电子自旋强耦合机制

本文深入解析了SERF原子陀螺仪中核自旋-电子自旋强耦合机制的核心原理与应用。通过量子精密测量技术,SERF陀螺仪实现了超高精度的惯性导航,其独特的磁场自补偿和拉莫尔进动特性使其在弱磁场环境下表现出色。文章还探讨了关键技术突破和前沿进展,展示了量子精密测量在惯性导航领域的巨大潜力。

kotlin6android的博客 211

HI3516CV610海思SOC:超高清智慧视觉开发全攻略

本文全面解析海思HI3516CV610 SOC在超高清智慧视觉开发中的应用。该芯片集成双核A7处理器、1Tops NPU、AI ISP及4K视频编码器,专为智能摄像头设计。文章详细介绍了开发环境搭建、核心硬件架构、媒体处理平台(MPP)实战、AI算法集成与系统调优等全流程攻略,帮助开发者高效构建稳定可靠的视觉AI产品。

weixin_29269441的博客 1254

linux下autocad完美替代品bricscad的安装运行

前言 在Linux平台下,能完美兼容.dwg文件的软件并不多。 虽然国产的中望和浩辰为适配uos操作系统,近期都推出了linux版本,但目前好像还没有对应的破姐流出。(如果有的话请私信我或留下评论) 然而有了这一款源自比利时的软件——bricscad,linux下查看和编辑.dwg文件再也不是噩梦了! 安装pj 资源链接:https://pan.baidu.com/s/1dC7zarlqwuO5fa4CBL_KGQ 提取码:24j6 1.下载对应的压缩包,解压并安装其中对应的deb或rpm软件包。 2.在C

weixin_35259117的博客 4486

FICO F.27 Customer statement 打印

需求,定制化打印,替换标准的F.27打印 类似于采购订单的打印,但是略有不同,查阅资料之后步骤如下: T-code F.27 is SAP standard program to produce customer/vendor correspondence (letter). Correspondence Type is used to specify the related printing program and form for the particular correspondence. SAP

IamRunjiang的博客 1965

YOLOv8改进有效系列目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

Hello,各位读者们好,本专栏自开设两个月以来已经更新改进教程120+余篇其中包含C2f、主干、检测头、注意力机制、Neck多种结构上创新,也有损失函数和一些细节点上的创新,订阅本专栏以后你不仅可以收获跟专栏的阅读权限,同时可以进Qq群,里面包含集成我所有创新的YOLO最新目录,和我本人录制的视频讲解教程,如果你想要在YOLOv8系列收获一篇论文,我相信订阅本专栏后你一定会有所收获~YOLOv8改进有效系列目录。

Snu77的博客 18万+

23种设计模式-享元(Flyweight)设计模式

软考中级-软件设计师 享元设计模式

片言可决讼,半纸能缚龙 3223

CKA-CN考试之路----2

部分知道就可以了,考试不用输入,后面不再复述.这里我们需要将两端内容凭借成1个yaml。执行题目中给的的命令进行测试。

Q先生 242

Cesium 相机操作

Cesium 提供了三种方式对相机的位置进行摆放。

虎康的博客 2590

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: [UVM源代码研究] sequence、 sequencer与driver的通信(uvm-1.2版)
下一篇: [UVM源代码研究] 聊聊uvm_tlm_analysis_fifo这个特殊的uvm_component(uvm-1.2版)
数字验证Kane陈
博客等级 码龄12年 662粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值