验证流程
硬件设计的目的在于创建一个基于设计规范并且能够完成特定任务的设备
作为验证工程师的目的是确保该设备能够成功地完成预定地任务
作为一个验证工程师,必须核设计者一样阅读硬件规范并且拟定验证计划,然后按照计划,创建测试来检查RTL代码是否准确地实现了所有的特性。如果多人对同一个规范进行解读,那么设计流程可能会出现冗余。作为验证工程师,需要阅读同样的硬件规范并对其含义做出独立的判断,然后利用测试来检查对应的RTL代码是否与你的解读一致。
不同层次的测试
- 代码块(block)层次上
- 代码块边界
- 待测设计的最高层次(尽可能让所有代码块并发活动)
- 出现错误时待测设计的表现
验证计划
验证计划是和硬件规范紧密联系在一起的,它描述了需要验证什么样的特性,以及采用哪些技术。这些步骤可能包含有定向或者随机的测试、断言、软硬件协同验证、硬件仿真、形式验证,以及对验证IP的使用等等。
基本测试平台的功能
测试平台的用途在于确定待测设计的正确性,包含下列步骤:
- 产生激励
- 把激励施加到DUT上
- 捕捉响应
- 检验正确性
- 对照整个验证目标测算进展情况
定向测试
验证的传统做法可能是使用定向测试。使用这种方法,首先需要阅读硬件规范,然后写下验证计划,计划上列有各种测试,每个测试针对一系列相关的特性。按照这个计划,接着编写出针对待测设计具体特性的激励向量,然后使用这些向量对待测设计进行仿