| |
UVM测试平台是从派生自uvm_component基类的类构建的。测试平台层次结构由一系列“has-a”类关系决定,换句话说,哪些组件包含哪些其他组件。UVM测试平台中的顶层类通常称为测试类,该类负责配置测试平台,通过在层次结构中构建下一级别并通过启动主要的sequence启动激励来启动构建过程。对于给定的验证环境,测试类下面的测试平台层次结构是合理一致的,并且每个测试用例都是通过扩展测试基类来实现的。
UVM测试平台架构是模块化的,以便于在不同项目中重用验证组件组(水平重用)或在同一项目中更高级别的集成(垂直重用)。有两种主要的集合组件类型用于启用重用 - env(environment的简称)和agent。
The Agent
大多数DUT具有许多不同的信号接口,每个接口都有自己的协议。UVM agent将一组uvm_components聚集在一起,此处这些uvm_components着重于特定的pin级接口。agent的目的是提供一个验证组件,允许用户生成和监控pin级事务。
SystemVerilog包用于将与agent关联的所有类收集到一个名称空间中。
【此处需插入图片】
agent程序包的内容通常包括:
Sequence_item - agent将具有一个或多个sequence items,用于定义agent将生成的pin级活动,或报告agent观察到的pin级活动。
A Driver - The driver负责将一系列sequence_items中的数据转换为pin级事务。
A Sequencer - Sequencer的作用是将sequence_items从生成它们的sequence传到driver。
A Monitor - Monitor观察pin级活动并将其观察结果转换为sequence_items,并将此sequence_items发送到记分板等组件,这些组件被使用来分析测试平台中发生的情况。
Configuration object- 一个容器对象,用于将信息传递给代理,影响它的功能以及构建和连接的方式。