上QQ阅读APP看书,第一时间看更新
第2章
一个简单的UVM验证平台
2.1 验证平台的组成
验证用于找出DUT中的bug,这个过程通常是把DUT放入一个验证平台中来实现的。一个验证平台要实现如下基本功能:
- 验证平台要模拟DUT的各种真实使用情况,这意味着要给DUT施加各种激励,有正常的激励,也有异常的激励;有这种模式的激励,也有那种模式的激励。激励的功能是由driver来实现的。
- 验证平台要能够根据DUT的输出来判断DUT的行为是否与预期相符合,完成这个功能的是记分板(scoreboard,也被称为checker,本书统一以scoreboard来称呼)。既然是判断,那么牵扯到两个方面:一是判断什么,需要把什么拿来判断,这里很明显是DUT的输出;二是判断的标准是什么。
- 验证平台要收集DUT的输出并把它们传递给scoreboard,完成这个功能的是monitor。
- 验证平台要能够给出预期结果。在记分板中提到了判断的标准,判断的标准通常就是预期。假设DUT是一个加法器,那么当在它的加数和被加数中分别输入1,即输入1+1时,期望DUT输出2。当DUT在计算1+1的结果时,验证平台也必须相应完成同样的过程,也计算一次1+1。在验证平台中,完成这个过程的是参考模型(reference model)。
图2-1 简单验证平台框图
一个简单的验证平台框图如图2-1所示。在UVM中,引入了agent和sequence的概念,因此UVM中验证平台的典型框图如图2-2所示。
从下一节开始,将从只有一个driver的最简单的验证平台开始,一步一步搭建如图2-2所示的验证平台。
图2-2 典型UVM验证平台框图