[UVM]UVM Component之Subscriber
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相关推荐
- UVM中component之间如何通信
在简单的测试平台里,component之间通过变量或者config_db机制通信是可行的,但是如果在复杂测试平台中依然使用这种耦合性很强的方式通信的话,就不太行了.因此,UVM提供了TLM这样的概念. ...
- [UVM]UVM TLM1.0 Interface归纳总结 --- 图解UVM TLM1.0 Interface
UVM TLM1.0 Interface归纳总结 --- 图解UVM TLM1.0 Interface Transaction-Level Modeling (TLM) 用户模块之间的通信. 是实现基 ...
- [UVM]UVM Sequence之Response的使用
UVM Sequence之Response 前言:Sequence機制提供了一種Sequence -> Sequencer -> Driver的單向數據傳輸機制.但是在複雜的驗證平台中, ...
- [UVM]UVM Register Defines
UVM Register Defines UVM register library has the defines declared in it. these are being used in th ...
- [UVM]UVM环境中的clock agent方案
UVM环境中的clock agent方案 摘要:在验证环境中,我们通常需要多个不同频率的时钟,为了能方便的产生所需时钟,我们可以开发一个clk_agent,通过config来指定频率,通过interf ...
- UVM学习笔记(一)工厂、phase机制、config
目录 一.工厂机制 1.1 使用步骤 1.2 um_coreservice_t类 1.3 factory创建component.object实例的方法 1.4 UVM创建component.objec ...
- UVM layering sequence for layered protocol
在OSI(Open System Interconnect )模型中,将网络结构分为7层,自上而下:应用层,表示层,会话层,传输层,网络层,链路层,物理层.每层都有相应的协议和对应的数据结构. IC中 ...
- 通用验证方法学(Universal Verification Methodology, UVM):简介及内容导航
目录 1. 介绍 1.1. 数字集成电路(Integrated Circuit, IC)设计 1.2. 数字集成电路(Integrated Circuit, IC)验证 2. 一个简易UVM验证平台例 ...
- 从VHDL到UVM验证平台转变的优点评估
路科验证官网:路科验证 - 专注于数字芯片验证的系统思想和前沿工程领域 EETOP路科首页: EETOP - 路科验证 - IC验证培训 CSDN路科首页:CSDN - 路科验证 - IC验证培训 由 ...
最新文章
- 【Qt】Qt再学习(三):Chart Themes Example(常用图表)
- Aggregate functions cannot be used in the select right after the flatAggregate
- MySql的连接查询
- 3.Booleans and Conditionals
- JAVA-java内存分配
- 【STM32 基础实验蜂鸣器发声】
- 最详细的世界集成电路发展历史足迹
- OpenCV官方网站:这里可以白嫖教程、检索API、下载例程
- hack tool Mirkov4
- iOS中唯一一款不带开屏广告的日历
- html图片滚动红点_程序员最爱的小红点更新了!史上最薄的钛制ThinkPad发布
- klouderr什么意思_bought是什么意思_bought的翻译_音标_读音_用法_例句_爱词霸在线词典...
- 简历javaweb项目描述怎么写_JavaWeb开发简历项目经验怎么写
- MAC 使用技巧总结
- Julia·Pluto·Plots报错解决方法
- 利用脚手架创建vue项目时报这个错误,哪位大神帮忙解答一下,实在是找到解决办法了。万分感谢
- Python小姿势 - # Python网络爬虫之如何通过selenium模拟浏览器登录微博
- ae 创建图像等高线 蒙版_「PS软件」工具使用,图层蒙版与橡皮擦的应用分析
- VB中的IIF() 函数
- php 大数据量及海量数据处理算法总结