UVM的树形结构是怎么创建的?

UVM树通过uvm_component来实现树形结构。所有的UVM树看的结点都是一个uvm_component。每一个uvm_component都有一个特点:他们在new的时候需要指定一个类型为uvm_component,名字为parent的变量。
uvm_component有phase的概念。
对于每一个uvm_component,它都有一个m_child[]用来保存它的孩子,同理也告诉这些孩子他们的父母是谁。

UVM树形结构

先来看看uvm_component.svh对应的源码:

  • m_parent/m_children[string]/m_children_by_handle[]构建了整个UVM的树形结构。
  • line1736-1739,uvm_root的name==top,但是set_name("")所有在get_full_name等函数调用的时候,就不会显示这一级。
  • 判断出来是最顶层,直接return,m_parent == null并且m_child[]也不会赋值。
  • line1748,相信看过uvm_phase就会知道这个函数。
  • line1749,判断uvm_build_phase是不是在common_domain里面。
  • line1771,通常在uvm_test_top,case的那一层parent的参数设置为null。
  • m_parent
  • m_children[]
  • m_children_by_handle[]
    构建了UVM树形结构
UVM树形结构
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容