UVM的configuration机制

  • uvm configuration机制
  • 特点
  • UVM资源池
    • 添加配置资源
    • 获取配置资源
  • config机制的使用
    • 单个变量使用configure机制
    • interface使用configure机制
  • 总结

uvm configuration机制

uvm configuration是一个强大的属性配置工具,它:
1.可以传递值;
2.可以传递对象;
3.可以传递interface(virtual);

特点

  1. 作为半个全局变量,避免全局变量带来的风险;
  2. 高层组件可以通过该机制实现在不改变代码的机制下更改它所含子组件的变量;
  3. 各个层次都可使用;
  4. 支持通配符和正则表达式;
  5. 支持用户自定义的数据类型;
  6. 可以在仿真运行的过程中进行配置;

UVM资源池


如上图所示,uvm资源池由两部分构成,分别是添加配置资源和获取配置资源

添加配置资源

uvm_configure_db#(type)::set(uvm_component   cntxt,//配置资源的源组件string          instance_name,//配置资源的目标对象所属组件,可以使用通配符和正则表达式string            field_name,//配置资源的IDT               value//资源值,);

获取配置资源

uvm_configure_db#(type)::get(uvm_component   cntxt,string    inst_name,string    field_name,inout    T   value
)

config机制的使用

configuration机制的使用就是set函数和get函数的过程

单个变量使用configure机制

interface使用configure机制

首先根据DUT构建interface
为driver添加virtual interface驱动DUT:

将事务信息分解为pin级信号驱动给DUT

新建top.sv文件,将其他平台组件include,建立顶层module,进行各种连接,将实例化interface配置给virtua interface

总结

使用uvm_config_db的优势在于:
1.与SV的层次化索引不同,可以在顶层对任意层次进行配置,也可以在硬件域对软件域的接口进行配置,操作更方便
2.验证组件更独立,水平复用和垂直的移植都更加方便
3.即使在顶层没有配置,底层也不会报错,一方面提高了复用性,另一方面增加了隐患,所以最好在配置时设置调试语句,在配置失败时报错,以便于调试。

UVM的configuration机制相关推荐

  1. UVM的factory机制

    在UVM中使用工厂模式基本上分为三个步骤: 1. 注册 当定义一个类的时候,它的类型必须要注册,UVM已经提供了专用的宏. `uvm_component_utils(class_type_name) ...

  2. UVM field automation机制

    文章目录 前言 1.什么是 uvm field automation 2.uvm field automation的介绍 2.1 uvm field automation机制的处理方法 2.2 `uv ...

  3. UVM的objection机制

    UVM通过objection机制来控制验证平台的关闭.在每个phase中,UVM会检查是否有objection被提起(raise_objection),如果有,那么等待这个objection被撤销(d ...

  4. UVM中factory机制的使用

    UVM中的factory机制一般用在sequence的重载,尤其是virtual sequence.当Test_case变化时,通过virtual sequence的重载,可以很容易构建新的测试. 因 ...

  5. uvm event 事件机制

    event 机制开始是在做Linux 系统开发的时候使用的,作用是从kernel 的内核层像用户层发送消息和数据等,内核层发送事件的api: 1 /**2 * kobject_uevent_env - ...

  6. UVM中objection机制学习

    文章目录 objection机制介绍 objection使用注意点 代码实例 objection机制介绍 在UVM中可以通过drop_objection来通知系统可以关闭验证平台,且在drop_obj ...

  7. UVM内callback机制的使用

    callback机制提高平台的可重用性,其使得在用例里面可以加入一些新的特性,而不需要修改验证平台. call的使用可以分为以下几步: 1.定义一个callback基类,基类需要继承自uvm_call ...

  8. android工程rsc文件夹,【MTK】Run-time Switchable Configuration机制

    编译阶段以某种方式将不同硬件的配置信息写入Image 配置信息一般包含Property列表/APK/... 具体流程请参考下一章节的介绍 LK(little kernel)通过 eFuse/GPIO等 ...

  9. UVM 中的消息机制

    UVM消息属性 UVM 中的消息有三种属性,分别是:严重度(severity).冗余度(verbosity).以及消息的关联行为,此外还有消息的标签 ID.UVM 的消息机制基于该三种属性和标签 ID ...

最新文章

  1. PHP 调用C的代码
  2. wireshark网络分析就这么简单_【读书笔记】2wireshark网络分析就这么简单——不同子网如何发送消息。...
  3. CentOS7下的离线yum源搭建
  4. HDOJ 4699-Editor[栈]
  5. oracle脚本刷错了怎么办,Oracle故障处理中常用的脚本
  6. 学习笔记:Zookeeper选举机制
  7. Java EE的三层架构
  8. 大数据之-Hadoop三大发行版本---大数据之hadoop工作笔记0010
  9. 【渝粤教育】电大中专电子商务网站建设与维护 (3)作业 题库
  10. 03. 确保容器中的对象拷贝正确而高效
  11. python smtplib发送邮件可直接运行代码
  12. linux操作系统入门教学
  13. 华为HCIE云计算培训笔记第5天
  14. 中国微电网市场趋势报告、技术动态创新及市场预测
  15. win7字体_潇洒个性艺术!100款英文手写签名字体
  16. C语言基础入门,编程的第一步
  17. 网络流量分析/网络流量监测
  18. 联想笔记本电脑开机无法修复计算机,联想电脑Win10更新后提示“自动修复”无法进入系统问题蓝屏解决方案...
  19. 什么是HashMap?不同版本的HashMap有什么不同?浅谈HashMap
  20. iOS开发笔记之二十四——Xcode下类中供外部调用的方法添加注释说明技巧

热门文章

  1. 安卓插件化学习 - 类的加载
  2. AFNetworking源码简单分析
  3. A-KAZE论文研读
  4. linux openssl 编译错误,“致命错误:openssl/opensslv.h:没有这样的文件或目录”编译mitmproxy...
  5. InterConnect 和SmartConnect
  6. [FAQ11783][NW]MVNO忽略国内漫游(ignore national roaming)
  7. confluence是什么
  8. 使用Velocity导出Word文档
  9. create与oncreate的区别
  10. SAP中的物料最小订购量