UVM Component之Subscriber

一、Subscriber是用來收Coverage的,下面是一種推薦的寫法:

class uvm_ip_subscriber extends uvm_subscriber;//這裡使用FIFO通信而不是IMP,大大降低了工作量uvm_tlm_analysis_fifo#(dma_trans)            dma_monitor_to_sub_fifo[1];extern function new(string name, uvm_component parent);extern virtual function write(T t);extern virtual task get_dma_trans();extern virtual task run_phase(uvm_phase phase);//coverage groupcovergroup ostd_cfg_group;option.per_instance = 1;ostd: coverpoint(reg_cfg_trans.reg_wr_ostd[7:0]){bins udb_0    =    {0};bins udb_1    =    {[1:8]};bins udb_2    =    {[9:16]};bins udb_3    =    {[17:254]};bins udb_4    =    {255};}endgroupendclass: uvm_ip_subscriberfunction uvm_ip_subscriber::new(string name, uvm_component parent);super.new();dma_monitor_to_sub_fifo[0] = new("dma_monitor_to_sub_fifo_0", this);//創建covergroupostd_cfg_group = new();
endfunction: new//必須得重寫write這個純虛函數
function uvm_ip_subscriber::write(T t);
endfunction: writetask uvm_ip_subscriber::get_dma_trans();dma_monitor_to_sub_fifo[0].get(tr);$cast(tr_clone, tr);reg_cfg_tr_q[0].push_back(tr_clone);if(reg_cfg_tr_q[0].size() > 0) beginreg_cfg_trans = reg_cfg_tr_q[0].pop_front();//採樣ostd_cfg_group.sample();end
endtask: get_dma_trans

[UVM]UVM Component之Subscriber相关推荐

  1. UVM中component之间如何通信

    在简单的测试平台里,component之间通过变量或者config_db机制通信是可行的,但是如果在复杂测试平台中依然使用这种耦合性很强的方式通信的话,就不太行了.因此,UVM提供了TLM这样的概念. ...

  2. [UVM]UVM TLM1.0 Interface归纳总结 --- 图解UVM TLM1.0 Interface

    UVM TLM1.0 Interface归纳总结 --- 图解UVM TLM1.0 Interface Transaction-Level Modeling (TLM) 用户模块之间的通信. 是实现基 ...

  3. [UVM]UVM Sequence之Response的使用

    UVM Sequence之Response  前言:Sequence機制提供了一種Sequence -> Sequencer -> Driver的單向數據傳輸機制.但是在複雜的驗證平台中, ...

  4. [UVM]UVM Register Defines

    UVM Register Defines UVM register library has the defines declared in it. these are being used in th ...

  5. [UVM]UVM环境中的clock agent方案

    UVM环境中的clock agent方案 摘要:在验证环境中,我们通常需要多个不同频率的时钟,为了能方便的产生所需时钟,我们可以开发一个clk_agent,通过config来指定频率,通过interf ...

  6. UVM学习笔记(一)工厂、phase机制、config

    目录 一.工厂机制 1.1 使用步骤 1.2 um_coreservice_t类 1.3 factory创建component.object实例的方法 1.4 UVM创建component.objec ...

  7. UVM layering sequence for layered protocol

    在OSI(Open System Interconnect )模型中,将网络结构分为7层,自上而下:应用层,表示层,会话层,传输层,网络层,链路层,物理层.每层都有相应的协议和对应的数据结构. IC中 ...

  8. 通用验证方法学(Universal Verification Methodology, UVM):简介及内容导航

    目录 1. 介绍 1.1. 数字集成电路(Integrated Circuit, IC)设计 1.2. 数字集成电路(Integrated Circuit, IC)验证 2. 一个简易UVM验证平台例 ...

  9. 从VHDL到UVM验证平台转变的优点评估

    路科验证官网:路科验证 - 专注于数字芯片验证的系统思想和前沿工程领域 EETOP路科首页: EETOP - 路科验证 - IC验证培训 CSDN路科首页:CSDN - 路科验证 - IC验证培训 由 ...

最新文章

  1. 【Qt】Qt再学习(三):Chart Themes Example(常用图表)
  2. Aggregate functions cannot be used in the select right after the flatAggregate
  3. MySql的连接查询
  4. 3.Booleans and Conditionals
  5. JAVA-java内存分配
  6. 【STM32 基础实验蜂鸣器发声】
  7. 最详细的世界集成电路发展历史足迹
  8. OpenCV官方网站:这里可以白嫖教程、检索API、下载例程
  9. hack tool Mirkov4
  10. iOS中唯一一款不带开屏广告的日历
  11. html图片滚动红点_程序员最爱的小红点更新了!史上最薄的钛制ThinkPad发布
  12. klouderr什么意思_bought是什么意思_bought的翻译_音标_读音_用法_例句_爱词霸在线词典...
  13. 简历javaweb项目描述怎么写_JavaWeb开发简历项目经验怎么写
  14. MAC 使用技巧总结
  15. Julia·Pluto·Plots报错解决方法
  16. 利用脚手架创建vue项目时报这个错误,哪位大神帮忙解答一下,实在是找到解决办法了。万分感谢
  17. Python小姿势 - # Python网络爬虫之如何通过selenium模拟浏览器登录微博
  18. ae 创建图像等高线 蒙版_「PS软件」工具使用,图层蒙版与橡皮擦的应用分析
  19. VB中的IIF() 函数
  20. php 大数据量及海量数据处理算法总结

热门文章

  1. 基于STM32的物联网智能家居系统 可以实现温度湿度的实时监控
  2. 大物实验不确定度计算
  3. 手机中电容屏和电阻屏有什么区别?
  4. 鼠标交互的使用与优化
  5. 眼缘有那么重要?实战解读如何让App靠“脸”吃饭
  6. 高度塌陷的产生原因及解决方法
  7. 22春天津大学《基础会计》在线作业二
  8. Morse code(摩尔斯电码-摩斯密码)
  9. 网页前端设计-作业六(CSS3)
  10. 代码质量管理工具SonarQube详解