zoukankan      html  css  js  c++  java
  • field_automation源码分析

    field_automation主要通过uvm_field_utils_begin和uvm_field_utils_end来加到自己写的class中。

    uvm_field_utils_begin,在object和component注册到factory的时候,会自动调用。

    uvm_field_utils_end,貌似没有用到,比较奇怪。

    uvm_field_utils_begin,中主要是重载了一个function:__m_uvm_field_automation。这个类主要用在print

          compare,copy等操作中,实现具体的动作。调用发生在uvm_object的class中的function;

          

          调用过程发生在do_compare等hook之前:

          

          

          

          

    函数的具体操作,定义在这些宏中:

          

    每一个内部变量都会经过这样的定义,所这个宏展开是一段很长的代码,每个变量都存在一个case...endcase

          比如UVM_COPY,会copy该class中所有注册的变量。(左边的ARG是需要copy到的class,local_data是输入变量参数)

          

    最后的endfunction,通过uvm_component_utils_end或者uvm_object_utils_end来实现。

          

    field_automation可以实现的action有:

          

    在有的action的实现过程中,会有一个class:__m_uvm_status_container,这个class中保存了供automatic使用的全局变量。

    uvm_status_container 中的主要变量有:uvm_scope_stack     scope;

                      uvm_comparer      comparer;

                      uvm_packer   packer;

                      uvm_recorder   recorder;

                      uvm_printer    printer;

        变量bitstream表示set_int_local中的变量值;

        变量stringv表示set_string_local中的变量值;

        变量object表示set_object_local中的变量值;

        

    这些变量在uvm_object的实现中,都设置为了default_comp;

          

          

  • 相关阅读:
    LCD1602的第一个显示程序
    我的8*8点阵led做螺旋流水灯
    RS232电平TTL电平转换器MAX232相关
    如何自定义silverlight的加载页面
    关于一个页面中多个silverlight应用程序通信的总结
    ComboBox小技巧
    学习和分享的人
    转: 高效时间管理-介绍GTD
    转载:PHPexcel学习笔记2
    转载:PHPexcel学习笔记
  • 原文地址:https://www.cnblogs.com/-9-8/p/7571364.html
Copyright © 2011-2022 走看看