UVM phase:
- 一般在build phase构建本验证层次,创建下层的组件,在之后的connect_phase做句柄连接、端口连接等任务
- 如果一个低层次的对象使用new()创建,那么写在高层次的new()中或build_phase()中都可以,因为并不涉及时间上的先后顺序
- 如果使用type_id::create()创建,则必须要写在高层次的build_phase()中,这可以看作是对UVM特性的延续
- build_phase/final_phase方法自顶向下执行,这样例化的时候,配置可以向下传播到各component中,其他都是自下向上的,用于在例化之后组件的连接
- 工厂创建的component可以通过create时传入的parent参数,得到一个字符串类型的上层名称,这样,对于所有uvm_component组成的验证环境,就产生了一个类似于硬件路径一样的验证组件网络
- SV环境下的run()是上层调用下层,显式“点火”
- UVM环境下的run_phase()是平行“点火”,因为uvm_root在一层层构建组件的时候也构建了层次,就可以得到所有的组件层次和句柄