验证环境配置传递

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 验证环境配置传递的更多相关文章

  1. Xamarin Anroid开发教程之验证环境配置是否正确

    Xamarin Anroid开发教程之验证环境配置是否正确 经过前面几节的内容已经把所有的编程环境设置完成了,但是如何才能确定所有的一切都处理争取并且没有任何错误呢?这就需要使用相应的实例来验证,本节 ...

  2. SDL 开发实战(一):SDL介绍及开发环境配置

    一.什么是SDL? SDL是 “Simple DirectMedia Layer”的缩写,SDL是一个开源的跨平台的多媒体库,封装了复杂的音视频底层操作,简化了音视频处理的难度. SDL使用C语言写成 ...

  3. Android编译环境配置(Ubuntu 14.04)

    常识:编译Android源代码需要在Linux系统环境下进行... 在Linux中,开发Android环境包括以下需求:Git.repo.JDK(现在一般使用OpenJDK)等:其中,Git用于下载源 ...

  4. Mac版-Jdk安装与环境配置

    下载安装 oracle官网下载,地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 下载好后,点击安装包,一直 ...

  5. Oracle 12cR1 RAC 在VMware Workstation上安装(上)—OS环境配置

    Oracle 12cR1 RAC 在VMware Workstation上安装(上)-OS环境配置 1.1  整体规划部分 1.1.1  所需软件介绍 Oracle RAC不支持异构平台.在同一个集群 ...

  6. RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)

    一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量. 在项目启 ...

  7. SV搭建验证环境

    1)首先定义纯虚类Sv_object,主要实现下边两个function: 定义local static 变量nextobjectID; 虚方法 virtual function void copy(S ...

  8. CTF必备技能丨Linux Pwn入门教程——环境配置

    说在前面 这是一套Linux Pwn入门教程系列,作者依据Atum师傅在i春秋上的Pwn入门课程中的技术分类,并结合近几年赛事中出现的一些题目和文章整理出一份相对完整的Linux Pwn教程. 问:为 ...

  9. WIN10下java8的开发环境配置与第一个java程序

    一.开发环境配置 1.在官网上下载jdk-8u111-windows-x64.exe 2.运行安装包,可以自定义安装路径 3.进入环境变量设置: 计算机右键-->属性-->高级系统设置-- ...

随机推荐

  1. CSS-选择器的使用

    * 默认选择器,这个符号能匹配所有样式,所以如果没有额外定义就默认为这个样式,一般用于消除页面与浏览器的内外边距 <style> *{ padding:0; // 所有标签默认消除内边距 ...

  2. 机器学习&恶意代码检测简介

    Malware detection 目录 可执行文件简介 检测方法概述 资源及参考文献 可执行文件简介 ELF(Executable Linkable Format) linux下的可执行文件格式,按 ...

  3. 面试必问之 CopyOnWriteArrayList,你了解多少?

    一.摘要 在介绍 CopyOnWriteArrayList 之前,我们一起先来看看如下方法执行结果,代码内容如下: public static void main(String[] args) { L ...

  4. 一条 Git 命令减少了一般存储空间,我的服务器在偷着笑

    元旦不是搭建了一个<Java 程序员进阶之路>的网站嘛,其中用到了 Git 来作为云服务器和 GitHub 远程仓库之间的同步工具. 作为开发者,相信大家都知道 Git 的重要性.Git ...

  5. jsp文本框输入限制问题

    1.jsp文本窗口实现控制输入格式 <input onkeyup = "value=value.replace(/[\W]/g,'')" onbeforepaste=&quo ...

  6. 【C++】自定义数据类型

    自定义数据类型 标签:c++ 目录 自定义数据类型 一.结构体 定义方法: 特点: 成员访问方式: 初始化: 结构数组 指针和动态内存分配: 结构变量作为函数参数: 二.联合 定义方法: 特点: 举例 ...

  7. 多种语言tcp编程

    再次强调,最好socket编程 c#的tcpclient等封装无法对接android的socket服务器 c#的tcpclient等封装可对接java的socket服务器 python socket服 ...

  8. 树形dp空间优化(dfn)

    树形dp空间优化 介绍 有时题目会告诉我们n叉树的最大层数,或者给出一个完全n叉树树,直接做树形dp会爆空间时,就可以用这个优化方法. 多数树形dp都是先dfs到子树,再合并到根上,显然当合并到根上时 ...

  9. Servlet-斜杠在web中不同意义

    Servlet-斜杠在web中不同意义 在web中 / 斜杠是一种绝对路径 / 斜杠 如果被浏览器解析,得到的地址是:http://ip/port/ / 斜杠 如果被服务器解析,得到的地址是:http ...

  10. 总是记不住但又总是要用的css

    有没有经常遇到一些样式每次写都要用百度呢?我收集了一些我平时经常要用到的但又总是记不住的样式.有错误的地方欢迎指正.转载请注明出处. 一.设置input 的placeholder的字体样式 input ...