| |
UVM测试平台的第一个phase是build phase。在此phase期间,组成测试平台层次结构的uvm_component类被构造成对象。构造过程自上而下,在配置和构造下一级别之前构建层次结构的每一级。这种构造方法称为延迟构造。
【此处需插入一幅图】
在顶层test module 的initial块中调用run_test()方法时,UVM测试平台将被激活。此方法是一个UVM静态方法,它采用一个字符串参数来定义要运行的test并通过factory来构造它。然后,UVM基础结构通过调用test类build方法来启动build phase。
在执行tests build phase期间,验证平台组件配置对象将被准备,并对配置对象中的虚拟接口句柄进行testbench module接口的分配。下一步是将配置对象放入test的配置表中。最后,下一级层次结构被构建。
在下一级层次结构中,检索由test准备的配置对象,并且可以进行进一步的配置。在配置对象用于指导下一级层次结构的配置和条件构造之前,可以通过该级别的层次结构修改它。此条件构造会影响测试平台的topology或层次结构。build phase自上而下工作,因此对于测试平台层次结构的每个继承级别都重复该过程,直到到达分层树的底部。
build phase完成后,connect phase用于确保所有内部组件被连接。connect phase从测试平台层次结构的底部到顶部工作。在connect phase之后,其余的UVM phases在控制权传递回testbench module之前运行完成。
The Test Is The Starting Point For The Build Process:
UVM测试平台的构建过程从test class开始,并自上而下工作。 The test class build method是在build phase期间首先被调用的方法,test method设置的内容决定了在UVM测试平台中构建的内容。the tests build method的功能是:
设置一些factory overrides,以便将配置对象或组件对象创建为继承类型;
创建和配置各个子组件所需的配置对象;
通过testbench module,将一些虚拟接口句柄分配放入配置空间;
构建嵌套的env配置对象,然后将其设置到配置空间中;
在testbench层次结构中构建下一级别,通常是顶层env。
对于给定的设计验证环境,构建方法中完成的大部分工作对于所有tests都是相同的,因此建议创建一个可以轻松扩展为每个test case的测试基类。
为了帮助解释test build过程的工作原理,此处将引用块级验证环境。
此示例是SPI主接口DUT的环境,它包含两个agents,一个用于其APB总线接口,另一个用于其SPI接口。可以在Block Level Testbench Example文章中找到此示例的构建和连接过程的详细说明。
【此处需插入一幅图】