verification 验证环境配置传递
验证环境配置传递
tc配置env
继承关系:
tc_base->tc_base_bt->tc_xx
base_env->xx_env
base_env_cfg->xx_env_cfg
在tc_base_bt的new函数中设置env和env_cfg的override
override_by_name("base_env", "xx_env");
override_by_name("base_env_cfg", "xx_env_cfg");
tc_base中的build_phase例化env
base_env env = base_env::type_id::create("env", this);
在env的new函数中例化env_cfg
function base_env::new(string name="", uvm_component parent);
super.new(name, parent);
env_cfg = base_env_cfg::type_id::create("env_cfg");
endfunction
在tc_base_bt的build_phase将env.cfg的类型从base_env_cfg转为xx_env_cfg,并保存在env_cfg这个引用中。
function void build_phase(uvm_phase phase);
xx_env_cfg env_cfg;
super.build_phase(phase);
$cast(env_cfg, env.cfg);
endfunction
在tc_xxx的build_phase中用env_cfg引用设置xx_env_cfg的值
function void build_phase(uvm_phase phase);
super.build_phase(phase);
env_cfg.xxx = 0;
endfunction
tc配置agent
agent的默认配置在tc_base_bt中的build_phase通过uvm_config_db,配置下去
uvm_config_db::#(xx_agent_cfg)set(null, "xxx", "cfg", xx_agt_cfg);
如果某个用例还有特殊配置,则在用例的build_phase重新再uvm_config_db配置一下
agent_cfg中包含driver_cfg,slave_driver_cfg,monitor_cfg的对象,在agent_cfg new的时候new出来,配置的时候,通过层层引用的方式设置
axi_agent_cfg axi_cfg = axi_agent_cfg::type_id::create("axi_cfg");
axi_cfg.drv_cfg.default_rready = 1;
axi_cfg.slv_drv_cfg.default_arready = 1;
axi_cfg.mon_cfg.pack_mode = axi_dec::PART_DATA;
uvm_config_db::#(axi_agent_cfg)set(null, "*AXI*", "axi_cfg", axi_cfg);
verification 验证环境配置传递的更多相关文章
- Xamarin Anroid开发教程之验证环境配置是否正确
Xamarin Anroid开发教程之验证环境配置是否正确 经过前面几节的内容已经把所有的编程环境设置完成了,但是如何才能确定所有的一切都处理争取并且没有任何错误呢?这就需要使用相应的实例来验证,本节 ...
- SDL 开发实战(一):SDL介绍及开发环境配置
一.什么是SDL? SDL是 “Simple DirectMedia Layer”的缩写,SDL是一个开源的跨平台的多媒体库,封装了复杂的音视频底层操作,简化了音视频处理的难度. SDL使用C语言写成 ...
- Android编译环境配置(Ubuntu 14.04)
常识:编译Android源代码需要在Linux系统环境下进行... 在Linux中,开发Android环境包括以下需求:Git.repo.JDK(现在一般使用OpenJDK)等:其中,Git用于下载源 ...
- Mac版-Jdk安装与环境配置
下载安装 oracle官网下载,地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载好后,点击安装包,一直 ...
- Oracle 12cR1 RAC 在VMware Workstation上安装(上)—OS环境配置
Oracle 12cR1 RAC 在VMware Workstation上安装(上)-OS环境配置 1.1 整体规划部分 1.1.1 所需软件介绍 Oracle RAC不支持异构平台.在同一个集群 ...
- RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)
一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量. 在项目启 ...
- SV搭建验证环境
1)首先定义纯虚类Sv_object,主要实现下边两个function: 定义local static 变量nextobjectID; 虚方法 virtual function void copy(S ...
- CTF必备技能丨Linux Pwn入门教程——环境配置
说在前面 这是一套Linux Pwn入门教程系列,作者依据Atum师傅在i春秋上的Pwn入门课程中的技术分类,并结合近几年赛事中出现的一些题目和文章整理出一份相对完整的Linux Pwn教程. 问:为 ...
- WIN10下java8的开发环境配置与第一个java程序
一.开发环境配置 1.在官网上下载jdk-8u111-windows-x64.exe 2.运行安装包,可以自定义安装路径 3.进入环境变量设置: 计算机右键-->属性-->高级系统设置-- ...
随机推荐
- 正则验证&模态框
在日常生活中,凡是需要表单验证的都会用到正则验证.下面拿一个简单的带有模态框的正则验证的小demo看一下 <style> /* 遮罩层 */ .ma ...
- Jupyter常用配置
一 安装 pip install --upgrade jupyterthemes 二 设置主题 #查看主题列表 jt -l #设置主题并打开工具栏 jt -t chesterish -T 三 设置列 ...
- 深入理解Java虚拟机之Java内存区域与内存溢出异常
Java内存区域与内存溢出异常 运行时数据区域 程序计数器 用于记录从内存执行的下一条指令的地址,线程私有的一小块内存,也是唯一不会报出OOM异常的区域 Java虚拟机栈 Java虚拟机栈(Java ...
- 多线程的libcurl的使用
摘要:libcurl在多线程中,采用https访问,经常运行一段时间,会出现crash. libcurl的在多线程中的使用特别注意的有两点: 1. curl的句柄不能多线程共享. 2. ssl访问时, ...
- 解决windows下因为防火墙无法通过go get 下载gin的问题
使用: go get -u github.com/gin-gonic/gin 出现以下错误: unrecognized import path "gopkg.in/yaml.v2" ...
- 将Cesium Tools用于更好的构建管理
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium技术正在给建筑业带来革命性的变化.我们与 partn ...
- 一文读懂mysql权限系统
前言: MySQL权限系统的主要功能是证实连接到一台给定主机的用户,并且赋予该用户在数据库上的SELECT.INSERT.UPDATE和DELETE权限.附加的功能包括有匿名的用户并对于MySQL特定 ...
- vue学习9-更新视图
<!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <meta ht ...
- Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
本文为博主原创,转载请注明出处: 最近在进行压测,为了观察并定位服务性能的瓶颈,所以在代码中很多地方加了执行耗时的日志,但这种方式只能观察,却在压测的时候,不太能准确的把握代码中某些方法的性能,所以想 ...
- .Net Api 之如何使用Elasticsearch存储文档
.Net Api 之如何使用Elasticsearch存储文档 什么是Elasticsearch? Elasticsearch 是一个分布式.高扩展.高实时的搜索与数据分析引擎.它能很方便的使大量数据 ...