zoukankan      html  css  js  c++  java
  • 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:

          

          

  • 相关阅读:
    电容的串联和并联的性质
    start.sh
    shell 得到当前目录路径
    Java程序远程无法执行nohup命令
    mysql windows 安装5.7
    电阻并联的性质
    电阻串联的性质
    webjars
    邮箱设置
    万用表使用注意事项
  • 原文地址:https://www.cnblogs.com/-9-8/p/7506872.html
Copyright © 2011-2022 走看看