入门UVM验证方法学

1.验证概述:

  • 本质:尽最大可能找出设计的bug
  • FPGA 验证类型分为静态验证和动态验证,其中静态验证包括文档审查、代码审查、跨时钟域检查、静态时序分析和逻辑等效性检查(形式验证); 动态验证包括功能仿真、时序仿真和板级验证。这些验证类型实现了 FPGA 软件的全生命周期覆盖。静态验证一般由测试工具自动完成,人工分析结果,耗时较少; 功能仿真、时序仿真需要人工搭建测试平台,编写测试用例,分析仿真结果,耗时占整个验证周期的 70% ~80% 。

2.如何实现验证

  • 测试向量文件: 以模拟的方式验证设计的正确性,以源的方式来激励设计的逻辑模块。
    入门UVM验证方法学_第1张图片
  • 验证三要素:
    • 灌入激励,产生输入信号;
    • 收集响应,收集输出信号;
    • 做比较,比较结果;
  • 验证语言的发展:
    • Verilog testbench(适用于简单模块)
    • C/C++ 高级语言但是存在兼容性问题,没有时序的概念,存在不便
    • System Verilog 与Verilog完全兼容,偏向高级语言(存在类、函数、数组等概念)

3.验证方法学

  • 方法学意义
    • 制定一个统一的标准、规范,方便交流,提高可复用性。
    • 提供底层库文件,可以调用函数,减少底层开发,提高效率。

4.简单的UVM平台

入门UVM验证方法学_第2张图片

  • DUT:待验证设计,一般用Verilog来设计
  • Driver:产生激励的模块
  • Reference Model:参考模型,通常是用C/system Verilog来写,输出理想的值
  • Monitor:抓取DUT的输出,即真实值
  • Scoreboard:计分板,做比较

5.较为完整的UVM平台

入门UVM验证方法学_第3张图片
Sequencer:信号发生器,测试序列产生器
Driver:驱动作用,将序列产生器输出的信号转换为DUT端口可以识别的信号
env:测试的顶层
在这个图的最外层还应该有一个testbench,将所有DUT和UVM两大部分包起来。

6.一个实例

入门UVM验证方法学_第4张图片

  • DUT与UVM的通信: UVM的任何一个模块与DUT通信必然要有一个 interface ,system Verilog中用一对 set、get来进行连接。
  • UVM中各个组件的通讯:基于TLM的方式,通过打包的方式通讯。

7. UVM树

入门UVM验证方法学_第5张图片

8.phase机制

入门UVM验证方法学_第6张图片

  • 从上到下是顺序执行的,每一行中的内容是并行执行的,执行完耗时最长的部分进入下一行。

你可能感兴趣的:(SV与验证方法学)