码迷,mamicode.com
首页 > 其他好文 > 详细

factory源码分析——uvm_default_factory

时间:2017-10-26 21:02:08      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:wrap   根据   rri   height   images   .com   bsp   ace   def   

uvm_factory本身是一个virtual class,不实现function,只定义模型,除了static的get函数:

      函数返回的是一个default_factory,已经实现过各个function。

      技术分享

      技术分享

 

uvm_default_factory,主要的三部分功能:register,create,override。

内部成员变量:  

register方面的变量:

        bit                     m_types[uvm_object_wrapper]   ——注册type

        uvm_object_wrapper  m_type_names[string] ——注册name

override方面的变量:

        uvm_factory_override       m_type_overrides[$] ——type_overide_by_type    

        uvm_factory_override       m_wild_inst_overrides[$] ——type_overide_by_name(name不含*等匹配符)

        uvm_factory_override  m_override_info[$]

        uvm_factory_queue_class  m_inst_override_queues[uvm_object_wrapper]  ——type_overide inst相关

        uvm_factory_queue_class  m_inst_override_name_queues[string]  ——type_override_by_name(name包含*匹配符)

 

register:在m_type_names中找不到该obj时,注册更新m_type_names;m_types; 

      如果m_inst_override_name_queues中,存在该name,更新m_inst_override_queues

      技术分享

 

create_object_by_name:首先检查是否有override类型的name,之后调用registry的create_object函数;

             registry的static对象从m_type_names中拿到;(create_component_by_name类似)

      技术分享

create_object_by_type:首先检查是否有override类型的type,之后调用registry的create_object函数;

              (create_component_by_type类似)

      技术分享

find_override_by_name:根据inst_path,查找m_inst_override_name_queues,或m_type_override,间接调用find_override_by_type;

find_override_by_type:迭代查找,直到查到的override type为本身;

      技术分享

set_type_override_by_type,没有注册,先注册,有override的记录,由replace来控制要不要替换,

                没有记录,直接push_back

      技术分享

set_type_override_by_name,与set_type_override_by_type类似。

set_inst_override_by_type,没有注册先注册,之后push_back到inst的queue中。

      技术分享

      技术分享

set_inst_override_by_name,根据是否有wildcard,push_back到不同的queue中。

      技术分享

 

m_has_widlcard,判断是否有*和?

      技术分享

factory源码分析——uvm_default_factory

标签:wrap   根据   rri   height   images   .com   bsp   ace   def   

原文地址:http://www.cnblogs.com/-9-8/p/7561869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!