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

05-11 20:03