• uvm_misc——杂货铺(miscellaneous)


      uvm_misc 是个很有意思的文件夹,本质上就是个UVM的杂货铺,包含一些很重要的class, task, function, 但不知道给归类到哪儿,所以,uvm_misc就很好地承担了这个任务,几乎所有的设计都会遇到这种情况。在uvm_misc中有uvm_void 的定义,uvm_status_container的定义,生成随机数种子的方法实现,以及uvm_instance_scope

    virtual class uvm_void;
    endclass
    
    // Append/prepend symbolic values for order-dependent APIs
    typedef enum {UVM_APPEND, UVM_PREPEND} uvm_apprepend;
    
    // Forward declaration since scope stack uses uvm_objects now
    typedef class uvm_object;
    
    typedef class uvm_coreservice_t;
    typedef class uvm_factory;
    
    typedef class uvm_config_db;
    // m_uvm_config_obj_misc is an internal typedef for the uvm_misc.svh file
    // to use. UVM users should use the uvm_config_object typedef
    typedef uvm_config_db#(uvm_object) m_uvm_config_obj_misc;
    
    
    //----------------------------------------------------------------------------
    //
    // CLASS- uvm_scope_stack
    //
    //----------------------------------------------------------------------------
    
    class uvm_scope_stack;
    endclass
    
    
    
    //------------------------------------------------------------------------------
    //
    // CLASS- uvm_status_container
    //
    // Internal class to contain status information for automation methods.
    //
    //------------------------------------------------------------------------------
    
    class uvm_status_container;
    endclass
    
    // Variable- uvm_global_random_seed
    //
    // Create a seed which is based off of the global seed which can be used to seed
    // srandom processes but will change if the command line seed setting is 
    // changed.
    //
    int unsigned uvm_global_random_seed = $urandom;
    
    
    // Class- uvm_seed_map
    //
    // This map is a seed map that can be used to update seeds. The update
    // is done automatically by the seed hashing routine. The seed_table_lookup
    // uses an instance name lookup and the seed_table inside a given map
    // uses a type name for the lookup.
    //
    class uvm_seed_map;
      int unsigned seed_table [string];
      int unsigned count [string];
    endclass
    
    uvm_seed_map uvm_random_seed_table_lookup [string];
    
    
    //------------------------------------------------------------------------------
    // Internal utility functions
    //------------------------------------------------------------------------------
    
    // Function- uvm_instance_scope
    //
    // A function that returns the scope that the UVM library lives in, either
    // an instance, a module, or a package.
    //
    function string uvm_instance_scope();
    endclass

    参考文献:

    1 uvm_void/uvm_scope_stack/uvm_status_container/uvm_copy_map/uvm_seed_map/misc
    http://blog.sina.com.cn/s/blog_466496f30100xky5.html

  • 相关阅读:
    Java Mysql连接池配置和案例分析--超时异常和处理
    springmvc学习笔记--Interceptor机制和实践
    Apache HttpClient使用之阻塞陷阱
    springmvc学习笔记--REST API的异常处理
    基于redis的排行榜设计和实现
    MySQL修改root密码的方法总结
    Ubuntu 16.04下安装golang
    锁优化的手段总结
    Java内存溢出问题总结
    GC日志时间分析
  • 原文地址:https://www.cnblogs.com/dpc525/p/8012375.html
Copyright © 2020-2023  润新知