自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 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 758 1

原创 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 324

原创 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 222

原创 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 224

原创 UVMphase机制

UVM有一套属于自己的运行机制,名为phase机制,但是对于phase机制由谁产生,phase机制如何运行,经常让大家迷惑,接下来我将介绍一下phase机制UVM世界从一个run_test创建。

2022-10-20 17:55:18 216 1

原创 UVM的工厂机制(factory)

工厂机制是UVM的真正魅力所在,也是软件的一种设计模式,接下来我将对工厂的意义和背后机制做一个简单的说明以上就是我总结的factory机制,覆盖是factroy最有优势的地方。要想使用factory机制,必须要先注册。通过注册、创建、覆盖即可发挥出factory的全部优势。create方法和override的方法有很多,但背后都有由actory实现,选择其中一种使用即可,我推荐采用registry的方法,因为相比于factory更加简单。

2022-10-19 22:46:41 972 1

原创 uvm_reg中修改mirror、desired、actual value的方法总结

前门访问-寄存器产生uvm_reg_item,adapter把uvm_reg_item转为bus_drive能用的transaction,将transaction传递给bus_sequencer,在由sequencer传递给driver。1、再利用寄存器模型时,可以用其来追踪dut中寄存器的值,寄存器模型中的寄存器,其每个field有两个值,分别是。如果想要更新镜像值又不对DUT进行操作,要用UVM_PREDICT_DIRECT。如果期望值/镜像值不同于实际值,则修改硬件实际值。帮助实现寄存器模块的检查。

2022-10-15 19:53:29 2968 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除