7. Resource database in UVM(UVM的资源数据库)

UVM集中资源数据库用于存储可配置(configurable)对象/object、变量/variables、虚拟接口/virtual interfaces、队列/queues、类句柄/class handles等,并从数据库中检索它们。这种可配置的测试平台为验证工程师提供了一定程度的自由度,以在测试平台的各个部分中使用所提供的信息。

7.1 Resource database mechanism/资源数据库机制

资源数据库由多态资源容器组成,这些容器以查找表的形式存储每个资源,这是一个集中的资源数据库。 

如下所示的uvm_resource_baseuvm_resource是uvm源代码片段。

uvm_resource_base 类

virtual class uvm_resource_base extends uvm_object;protected string scope;int unsigned precedence;static int unsigned default_precedence = 1000;......
endclass

uvm_resource 类

class uvm_resource #(type T=int) extends uvm_resource_base;typedef uvm_resource#(T) this_type;static this_type my_type = get_type();......
endclass

uvm_resource_base类是资源容器系列的公共基类,定义了一组函数。uvm_resource#(type T)是一个参数化类,为资源操作提供附加函数,如read()和write() 。

每个资源都有一组范围。范围/作用域(scope)是一个上下文,类似于 uvm 测试平台层次结构中组件的实例化,它表示唯一的字符串(例如tb_top.env.agent_o.mon )。范围也可以使用uvm_object::get_full_name().

一组范围表示为正则表达式。为简单起见,一组字符串可以说是一组范围(例如,像tb_top\.env\.agent_o.*这样的正则表达式涉及字符串tb_top .env.agent_o.mon和tb_top.env.agent_o.drv等) 。测试平台层次结构中可以有“N”组字符串(范围)。

当在数据库中查找资源的范围和名称匹配时,优先级变量是资源相对于其他资源的关联优先级。变量default_precedence用于初始设置默认优先级值,即1000。允许更改优先级值。当两个资源具有相同优先级时,第一个找到的资源具有优先级。

 

 

资源数据库由一对关联数组名称组成,即“名称表”和“类型表”。“名称表”和“类型表”也称为“名称映射”和“类型映射”。资源按名称存储在“名称表”中,并按类型句柄存储在“类型表”中。名称和类型表都有一个与之关联的队列。如果多个资源具有相同的名称或类型,则将其存储在相应的队列中。

注:资源数据库也称为资源池/resource pool。

7.2 Adding resource entry in the database/在数据库中添加资源条目

7.3 Searching resource in the database/在数据库中搜索资源

7.4 Auditing

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/578959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

变换编码基本原理:理解视频编码中的关键技术

在视频编码中,变换编码是一项重要的基本原理,其通过对视频信号进行变换和压缩,实现了高效的视频数据编码和传输。本文将介绍变换编码的基本原理、应用及其在视频编码中的重要作用。 1. 变换编码的基本原理 1.1 变换编码概述 变换编码是一种…

设计模式-单例模式(结合JVM基础知识)

1.定义介绍 所谓单例模式,是指在程序运行时,整个JVM中只有一个该类的实例对象 2. 单例模式的优点 复用性高,节省内存资源。类的加载、连接、初始化、使用都要占用虚拟机内存空间,因此,频繁创建对象会造成资源浪费&a…

【教程】从gitee或者github,下载单个文件或文件夹命令

1.打开git 2.初始化 git init 3.设置允许下载子目录 (不需要修改任何,只要原样复制,需要按照个人状况修改的话我会标注) git config core.sparseCheckout true 4. 选择要下载的单个文件夹的路径 这里单引号内部需要修改&…

StarRocks-3.1.6升级

1、升级路径 1.1、小版本升级 您可以跨小版本升级您的 StarRocks 集群,例如,从 v2.2.6 直接升级到 v2.2.11。 1.2、大版本升级 从 StarRocks v2.0 开始,您可以跨大版本升级 StarRocks 集群,例如,从 v2.2.x 直接升级…

使用事件机制的好处例子说明

不使用事件机制 class Button {public void OnClick(){// 调用文本框的方法显示消息TextBox.ShowMessage("按钮被点击了!");} }class TextBox {public static void ShowMessage(string message){Console.WriteLine(message);} }如果你想要在按钮被点击时执…

AR眼镜定制_AR智能硬件方案|显示方案|光学方案

AR眼镜的硬件方案定制是根据客户需求和功能来设计的。从芯片平台选型、主板尺寸大小、内存、电池容量,到实现各项功能的传感器、显示光机模组、摄像头、接口、按键、充电等,再到整机的结构、散热设计,以及双目AR眼镜、单目智能眼镜、全息头盔…

【集合】Vector与CopyOnWriteArrayList

前言: 此篇博客着重于:在多线程并发执行读、写操作的场景下,Vector集合、CopyOnWriteArrayList集合是否能保证线程安全?它们是通过什么方式保证线程安全的? Vector: (1)add(E e)方法…

Linux系统下修改环境变量及生效方法

1.修改环境变量 (1)打开终端,输入以下命令后回车: vim ~/.cshrc (2)将所需的环境变量添加进去,按“Esc”退出,再按shiftZZ,使其保存 2.执行source ~/.cshrc使其生效即…

Text to image论文精读 TISE (Text-to-Image Synthesis Evaluation):用于文本到图像合成的评估度量工具包

TISE (Text-to-Image Synthesis Evaluation)是一款用于评估文本生成图像的Python评估工具箱。文章由Tan M. Dinh, Rang Nguyen, and Binh-Son Hua等人发表。 其以统一的方式促进、倡导公平的评估度量,并为未来的文本到图像综合研究提供可重复的结果。 文章链接&am…

centos7.9中离线安装nginx开启ssl,arm架构

一、首先需要去国内相关镜像库下载相关依赖rpm: http://mirrors.bfsu.edu.cn/centos-altarch/7.9.2009/os/aarch64/ http://mirror.nju.edu.cn/centos-altarch/7.9.2009/os/aarch64/ http://mirrors.tuna.tsinghua.edu.cn/centos-altarch/7.9.2009/os/aarch64/ htt…

电子企业数字工厂管理系统有哪些实施难点

随着科技的快速发展,数字化转型已经成为企业提升竞争力、优化生产流程的必经之路。在电子企业中,数字工厂管理系统的实施尤为关键,它能够助力企业实现高效、精准的生产管理。然而,在实际操作过程中,实施数字工厂管理系…

linux ARM64 异常

linux 的系统调用是通过指令陷入不同异常级别实现的。arm64 架构的 cpu 的异常级别结构如下: 在上图中,用户层运行在 EL0 也就是异常级别 0,Linux 内核运行在 EL1 也就是异常级别 1,安全可信操 作系统运行在异常级别 2&#xff1a…

(四) ClickHouse 中使用 `MaterializedMySQL` 引擎单独同步 MySQL 数据库中的特定表(例如 `aaa` 和 `bbb`)

要在 ClickHouse 中使用 MaterializedMySQL 引擎单独同步 MySQL 数据库中的特定表(例如 aaa 和 bbb),您可以使用 TABLE OVERRIDE 功能。这个功能允许您指定要同步的特定表,同时忽略其他表。以下是步骤说明: 1. 启用 M…

微信小程序---分包

概念:分包就是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。 分包的优点:可以优化小程序首次启动的下载时间,在多团队共同开发时可以更好的解耦…

[2023-年度总结]凡是过往,皆为序章

原创/朱季谦 2023年12月初,傍晚,在深圳的小南山看了一场落日。 那晚我们坐在山顶的草地上,拍下了这张照片——仿佛在秋天的枝头上,结出一颗红透的夕阳。 这一天很快就会随着夜幕的降临,化作记忆的碎片,然…

calc()

需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);任何长度值都可以使用calc()函数进行计算;calc()函数支持 "", "-", "*", "/" 运算;c…

ComfyUI如何中文汉化

comfyui中文地址如下: https://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Translationhttps://github.com/AIGODLIKE/AIGODLIKE-ComfyUI-Translation如何安装? 1. git安装 进入项目目录下的custom_nodes目录下,然后进入控制台,运…

Geotrust与QuickSSL证书

随着互联网的发展,SSL证书已经成为了保护网站数据传输安全的重要手段。然而,一些SSL证书申请流程繁琐,需要提供各种证明文件和等待审核,这对于许多小型企业或个人站长来说是一个很大的困扰。QuickSSL是Geotrust旗下的子品牌之一&a…

飞天使-k8s知识点7-kubernetes升级

文章目录 验证新版本有没有问题需要安装的版本微微 1.20.6.0kubeadm upgrade plan 验证新版本有没有问题 查看可用版本的包 现有的状态 查看版本 yum list kubeadm --showduplicates |grep 1.20 yum list kubelet --showduplicates |grep 1.20 yum list kubectl --showduplic…

什么是CPA、CPS、CPM、CPT、CPC

网络营销中的几个常见基本术语:CPA、CPS、CPM、CPT、CPC 他们的英文全称与基本含义分别是: CPA(Cost Per Action) 每行动成本。CPA是一种按广告投放实际效果计价方式的广告,即按回应的有效问卷或注册来计费,而不限广告投放量。电…