通用验证方法(Universal Verification Methodology,UVM)是一种标准,旨在通过提供可在多个项目中部署的API框架来帮助公司开发模块化、可重用和可扩展的测试台结构,从而加快验证环境和验证IP(VIP)的开发和重复使用速度。
它是使用SystemVerilog(IEEE 1800)的语法和语义定义的一组类库,并且现在是IEEE标准。 UVM背后的主要思想是通过提供API框架来帮助公司开发模块化、可重用和可扩展的测试台结构,从而加快验证环境和验证IP(VIP)的开发和重复使用速度。
UVM主要源自Open Verification Methodology (OVM),并得到了Synopsys、Cadence、Mentor 和 Aldec等多个EDA厂商支持。 UVM类库除了**数据自动化功能如拷贝(copy)、打印(print)和比较(conpare)**之外,还提供通用实用程序例如配置数据库、TLM以及组件层次结构。 它引入了一个抽象层,在其中每个验证环境中都有特定角色的组件。例如,驱动器类对象(driver)仅负责向设计驱动信号,而监视器(monitor)仅监视设计接口,并不会向该接口驱动信号。
下图显示了如何通过扩展已经存在于UVM中以uvm_*前缀表示的可用类来构建典型的验证环境。这些组件已经具备必要的代码,可以让它们相互连接、处理数据包并与其他组件同步工作。