目录
Q3: 前面多次提到验证组件和验证环境,究竟什么是验证组件和验证环境,它们又是如何被应用的呢?
Q1: 什么是UVM?
UVM(Universal Verification Methodology)是一种用于验证集成电路的方法学。UVM建立在SystemVerilog语言基础之上,并且提供了一个标准化的,可重用的验证组件和验证环境,以提高验证效率和质量。
Q2:UVM有什么特点?
- 模块化和可重用性:UVM通过可重用的验证组件和测试平台,减少了开发时间和成本。每个验证组件可以在多个项目中重复使用,从而提高了验证效率。
- 标准化:UVM提供了一套标准的类库和方法,确保了不同团队和项目之间的一致性,这使得团队可以更加容易地共享和维护验证环境。
- 扩展性:UVM提供了一个灵活的框架,允许用户根据具体需求进行扩展和定制。用户可以创建自定义的验证组件、序列和配置,以适应特定的验证需求。
- 面向对象编程:UVM采用面向对象编程(OOP)方法,支持类的继承、多态和封装等特性。这使得验证环境的设计更加灵活和可维护。
- 随机测试和覆盖率驱动验证:UVM支持随机测试生成,可以自动生成多种测试场景,覆盖设计的各个角落。结合覆盖率分析工具,UVM能够有效地识别验证的薄弱环节,提高验证的覆盖率和质量。
Q3: 前面多次提到验证组件和验证环境,究竟什么是验证组件和验证环境,它们又是如何被应用的呢?
验证组件,即UVC(UVM Component),在验证环境中模拟DUT上下游的IP的功能,从而使得DUT的功能能够被完全测试。图中DUT是一个3:1的多路复用器,它有一组输入端口和三组输出端口。在工作情况下,共有一个上游IP和三个下游IP与它相连,它会将从输入端口接收到的数据传输到指定的输出端口。图中INPUT UVC可以产生激励,如sel, data, address等信号;除了通过Interface将激励传递给DUT外,INPUT UVC 还会将这些激励传递给Scoreboard UVC,用于之后和OUTPUT UVC接收到的数据作比较。OUTPUT UVC收集输出端的信号,并将它们传输到Scoreboard UVC。在Scoreboard UVC中,根据传递出的激励,将实际接收的信号与预期接受到的信号进行比较。如果吻合则测试通过。Clock and reset UVC 用于控制时钟和复位信号。各类UVC共同组成验证环境对DUT进行验证。
一个UVC通常是一个可复用的验证组件,它又是由Monitor, Driver, Agent, Sequencer等小组件构成。后面,我们会详细介绍它们。