1、验证平台(TestBench)
验证最基本目的在于测试DUT的正确性,其最常用的方法就是给DUT施加不同的输入(激励),并且观测DUT的输出,将输出与期望值相比。什么是期望值?例如我们DUT是一个加法器,那么当我们输入1+1时,我们期望DUT输出是2.当在DUT计算1+1的结果时,验证平台也执行同样的过程。在UVM中,完成这个过程的是参考模型(Reference Model)。因此一个基本的验证平台包含driver,用来把不同的激励施加到DUT;包含monitor,用来监测DUT的输出;包含scoreboard,用来比较期望值与monitor监测到的DUT的输出;包含reference model,它的输入跟DUT完全一样,输出送到scoreboard,用来和DUT的输出进行比较。
2、层次化的验证平台结构
底层是信号层,包含被测设计和将其连接到测试平台的信号。
上一级是命令层。 DUT的输入由总线读写等驱动任务驱动。 DUT的输出被监视器捕获并进行信号转换,输入到命令层。 断言跨越命令层和信号层,可以查看单个信号,也可以查看命令层。
功能层给命令层提供输入。
场景层:什么是一个场景(scenario)?验证工程师的工作就是要确保芯片完成预期任务。每一个任务都是一个场景。