uvm源码
从uvm的原始、本质开始
小成学验证
这个作者很懒,什么都没留下…
展开
-
uvm_pkg——原始真解
uvm_pkg中通过·include插入了多个pkg,其中包括:uvm_macros定义了uvm的所有宏,uvm_dpi实现了sv和外部语言交互,uvm_base定义了包括工厂机制、phase机制等基础class,uvm_dap提供了一种数据访问策略,uvm_tlm和uvm_tlm2用于组件通信,uvm_comps定义了所有component,uvm_seq定义了sequence机制,uvm_reg_model定义了寄存器模型。原创 2024-04-24 10:26:22 · 332 阅读 · 0 评论 -
uvm_dap——Data Access Policies
uvm_set_get_dap_base是一个参数化的虚类,内部预留了set,get,try_set,try_get四个函数接口,set更新资源池,get从资源池拿数据。uvm_simple_lock提供lock机制,当lock时set会报错,try_set返回0,get不受影响。uvm_get_to_lock在第一次get后会lock,之后在set会报错。uvm_set_before_get规定在get前必须先set,否则会报错。uvm_dap:一种安全的数据访问策略。原创 2024-04-24 10:55:47 · 260 阅读 · 0 评论 -
uvm_root——世界树根
综上所述,uvm_top最终是通过uvm_root的m_get_uvm_root创建,但是执行途中创建了uvm_coreservice_t。2、在uvm_root的get函数先用静态函数get创建一个核心服务类uvm_coreservice_t,返回cs的get_root函数。3、在uvm_coreservice_t的get_root中返回m_get_uvm_root函数。4、在uvm_root的m_get_uvm_root函数中创建并返回了uvm_root的实例。1、在uvm_root类里使用。原创 2024-04-29 10:52:25 · 404 阅读 · 0 评论 -
uvm_factory——户部尚书
工厂机制负责管理uvm世界中所有object、component的注册、覆盖以及create前覆盖类的查找。uvm_default_factory :定义了注册、设置覆盖、创建、查找覆盖等方法。protected uvm_object_wrapper m_type_names[string]:类似于哈希表,保存对象类型的名称和类型的映射关系。protected bit m_types[uvm_object_wrapper]:1表示该类型已被注册。protected原创 2024-05-25 20:54:15 · 834 阅读 · 1 评论