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