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树形结构

原文地址:https://www.cnblogs.com/xuqing125/p/15761698.html