zoukankan      html  css  js  c++  java
  • build_phase()与build()的关系

    先来给结论,如果build_phase继承自uvm_component的话,那么build_phase里面会调用build函数。
    下面我们通过源码和例子来进行分析。

    代码

    运行结果

    • build被调用了。
    • 尝试注释掉super.build_phase,你会发现build就没有被调用。

    super.build_phase里面到底做了什么呢?

    uvm_component.svh源代码分析

    • build_phase调用了build()
    • super.build()里面apply_config_settings(print_config_matches)自动获取config_db::set设置的参数。这部分源代码可以进一步进行分析。

    查看zhangqiang的那本书,你就会看到super.build_phase是干了什么呢?
    对于build_phase来说,uvm_component对其做的最重要的事情就是3.5.3节所示的自动获取通过config_db::set设置的参数。
    如果要关掉这个功能,可以在自己的build_phase中不调用super.build_phase。

    话又说回来,那我们什么情况下可以省略config_db::get呢?

    • uvm_component必须使用uvm_component_utils宏注册;
    • pre_num必须使用uvm_field_int宏注册
    • 在调用set函数的时候,set函数的第三个参数必须与要get函数中变量的名字相一致,即必须是pre_num。

    代码

    结果:
    my_scoreboard pre_num = 100

  • 相关阅读:
    mojoportal中弹出窗口
    css 层居中
    mojoportal中添加自定义javascript
    C#执行cmd [转载]
    异步委托 学习笔记
    Windows Sysinternals
    有关int,Int32的疑惑解答
    WEB Debug tools汇总
    规范很重要
    [笔记]VGA 接口电阻网络阻抗
  • 原文地址:https://www.cnblogs.com/xuqing125/p/15761692.html
Copyright © 2011-2022 走看看