report源码分析——report_object和report_message
uvm的report机制,主要涉及uvm_report_object,uvm_report_handle,uvm_report_server这三个类:
uvm_report_object主要是提供uvm_report的接口函数,
uvm_report_handle主要根据message的configuration,来将message传输到显示模块,
uvm_report_server主要实现具体的显示功能,文件读写功能,
一个report的组成部分:id string,severity(四种severity,来区分不同的action),verbosity(决定打印log的层次),message,action
log的显示可以直接输出到display或者直接输入到某个指定的文件中,文件的descriptors符合SV的标准。
uvm_report_object中的对象和function:
包含一个report_handle,来与之传递message。
主要的Function:
uvm_report_enabled(verbosity,id);供上层调用;
子函数:uvm_process_report_message(uvm_report_message),将message传递给相应的handle。
uvm_report(severity,id,message,verbosity,filename,line,context_name,report_enabled_checked);最重要的函数;
filename是一个宏定义:`__filename__,line是一个宏定义:`__line__
context_name是一个string,表示comp的路径,可以用%m来sformat产生。
report_enabled_checkd,表示已经经过判断,不在内部进行verbosity的判断。
四种调用uvm_report的function,只是将相应severity替换

verbosity的设置:(根据id和verbosity)
verbosity按数值计算,predefine的从低到高依次是UVM_NONE,UVM_LOW,UVM_MEDIUM,UVM_HIGH,UVM_FULL

uvm_action的设置:包括UVM_NO_ACTION,UVM_DIAPLAY,UVM_LOG,UVM_COUNT,UVM_STOP,UVM_EXIT,UVM_CALL_HOOK

输出file的设置:

severity的override的设置:

自己report_handle的设置:

hook操作,只有在uvm_action是UVM_HOOK的时候,才会执行,先调用report_hook,然后根据severity在进行调用,只要有一个function返回
0,report就不会有后续的操作:

report_header:打印一些copyright的信息,在run_test执行时,先于其他component的phase执行,file为0时,输出到display,否则输出到指定文件

report_summarize:由report_server里report summarize:file为0时,输出到display,run_test在顶层结束时,调用:

die function,在uvm_count计数到一定的值,自动调用die函数,先输出summary再调用$finish:

uvm_report_message是UVM中message的类型类,其中包括(int,string,object)container,已经add操作,已经对handle和object的接口操作
重要的方法有:new和message的set:


report源码分析——report_object和report_message的更多相关文章
- report源码分析——宏的执行
uvm_info,uvm_error其实是对uvm_report_info,uvm_report_error的封装. 其中warning,error,fatal,macros默认都是定义为UVM_NO ...
- report源码分析——report_handle和report_server和report_catcher
report_handle主要实现对message的action,severity,file的设置,然后将message传递给server: 主要的function有两个:initial和proces ...
- zookeeper源码分析之四服务端(单机)处理请求流程
上文: zookeeper源码分析之一服务端启动过程 中,我们介绍了zookeeper服务器的启动过程,其中单机是ZookeeperServer启动,集群使用QuorumPeer启动,那么这次我们分析 ...
- 最新版ffmpeg源码分析
最新版ffmpeg源码分析一:框架 (ffmpeg v0.9) 框架 最新版的ffmpeg中发现了一个新的东西:avconv,而且ffmpeg.c与avconv.c一个模样,一研究才发现是libav下 ...
- Solr4.8.0源码分析(13)之LuceneCore的索引修复
Solr4.8.0源码分析(13)之LuceneCore的索引修复 题记:今天在公司研究elasticsearch,突然看到一篇博客说elasticsearch具有索引修复功能,顿感好奇,于是点进去看 ...
- Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建
Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建 由于公司里的Solr调试都是用远程jpda进行的,但是家里只有一台电脑所以不能jpda进行调试,这是因为jpda的端口冲突.所以 ...
- goahead webserver源码分析
1.一个txt文本架构图 main() | |--websOpenServer() | |-- websOpenListen() | ...
- HTTP服务器的本质:tinyhttpd源码分析及拓展
已经有一个月没有更新博客了,一方面是因为平时太忙了,另一方面是想积攒一些干货进行分享.最近主要是做了一些开源项目的源码分析工作,有c项目也有python项目,想提升一下内功,今天分享一下tinyhtt ...
- Android7.0 Phone应用源码分析(四) phone挂断流程分析
电话挂断分为本地挂断和远程挂断,下面我们就针对这两种情况各做分析 先来看下本地挂断电话的时序图: 步骤1:点击通话界面的挂断按钮,会调用到CallCardPresenter的endCallClicke ...
随机推荐
- Newtonsoft.Json 转换DateTime类型为字符串时,串内部会有一个T。解决方案
使用Newtonsoft.Json 转换DateTime类型时,若使用标准转换,则字符串内会有一个T(虽然再转换成DateTime没有问题). 若要转换成DateTime没有T,可以加上特性: pub ...
- [cloud][sdn] openstack openflow opendaylight openvswitch
https://www.quora.com/What-is-the-relation-between-OpenStack-OpenDaylight-OpenFlow-and-Open-vSwitch- ...
- [daily][archlinux] 本地字符乱码, 无法显示中文
一: 突然有一天,Konsole里边看见的中文文件名的文件,就变成了乱码.thunderbird存到本地的附件,文件名也变成了乱码. 在X下查看locale,内容如下: 手动设置了之后也不对. 但是在 ...
- [archlinux][plasma][screensaver] plasma5配置屏保程序,没成功(-_-#)
plamsa用了好久,一直没有屏保.我想要玄酷的屏保! 用xscreensaver, 之前用FVWM2的时候,就用过了,很玄酷. 一,安装 pacman -S xscreensaver 二,配置 xs ...
- Tacacs+认证详细调研
1 .TACACS+概述 1.1 什么是TACACS+ TACACS+(Terminal Access Controller Access Control System,终端访问控制器控制系统协议 ...
- SpringBoot-整合lombok
添加lombok依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lom ...
- 【Python】【面试必看】Python笔试题
前言 现在面试测试岗位,一般会要求熟悉一门语言(python/java),为了考验求职者的基本功,一般会出 2 个笔试题,这些题目一般不难,主要考察基本功.要是给你一台电脑,在编辑器里面边写边调试,没 ...
- 如何让帝国CMS7.2搜索模板支持动态标签调用
帝国cms站内搜索一般不支持动态标签调用,如果要调用如何实现呢?修改两个地方就可以实现了.打开 /e/search/result/index.php 文件,找到(文件改了,不会调用也是徒劳!看看这个帝 ...
- MySQL的nnodb引擎表数据分区存储
Symlinks are fully supported only for MyISAM tables. 对应Innodb引擎数据文件放到其他目录 mysql> SHOW VARIABLES L ...
- win7 64位共享打印机
故障一 链接的电脑提示需要密码 处理步聚:取消win7共享计算机上网络的密码保护共享 1.查看网上邻居链接局域网的网络的网络防火墙设置. 2.更改链接局域网的网络的防火墙的更改高级共设置. 3.关闭链 ...