驱动原理
黑盒:验证工程师不用了解设计的内部实现,只关注设计的输入输出以及它们的定义和功能。也即是,只操作黑盒设计的输入(产生激励),同时检查黑盒设计的输出(check),不直接驱动或观测rtl内部的信号。
理解输入定义的几个来源:
工业标准规范(比如PCI协议)
其他设计者均认可的设计规范文档
理解输入定义后,验证开始计划激励策略,从以下几个方向:
控制信号:验证环境要做到可以实现所有可能的命令和命令扩展
数据总线:验证环境要做到可能的数据格式的广泛分类,其中边界是至关重要的,也即是最大值最小值,溢出读空,设计例外或设计的终极条件。
检查策略
检查机制的几个来源:
设计的输入和输出
检查机制的一个基本来源是rtl的输出,原因是设计中的任何问题都会在某一时刻的输出中显示出来。
检查机制是使用输入来预测输出
设计的上下文
HDL A和 HDL B是两个设计的单元,验证工程师需要保证HDL A所有的有效操作码,还需要知道无效操作码应该引起例外并且不会传递给驱动HDL B设计的信号,以便输出可以送到执行路径HDL B以及HDL B后的单元。HDL A的测试计划包含在指令流中嵌入无效指令的测试。
设计的微体系结构规则
验证团队从设计的微体系结构(或设计内部结构)的属性可以得到很多检查机制,所以验证工程师必须理解设计的内部结构。
基于微体系结构的检查来源:
无效的状态机的值
无效的状态机交换
队列和缓冲区的上溢或下溢
控制信号的不好的时序
无效的数据
设计的体系结构
体系结构描述的是设计如何进行
各种工业标准组织和公司发布公共协议、可编程处理单元和体系结构的架构规范
硬件设计必须遵循这些规范,体系结构之所以成为验证工程师检查机制的主要原因是体系结构有严格的文档要求。
因此,验证工程师的最高优先级的工作是检查设计在任何情况下都能遵循体系结构规范。