验证等级:
设计者级验证
又称宏验证,是最低级别的,通常由设计者来验证。也就是冒烟测试(smoke test),目的是保证设计可用于“真实”的验证环境,确保设计可以被装载到模拟引擎中,且设计的基本功能正确。
单元级验证
也即是ip级验证。特点是单元由正式的规范以及物理或时序约束,这些设计者都要遵循,验证者可以使用随机的测试激励和独立的检查机制来创建更先进的验证环境。
验证的目的是全面的验证单元的功能,但有些功能仍旧是无法验证到的,比如跨多个单元的功能划分。
一旦完成单元级验证,确保单元的基本功能正确,便可以进行更高级别的验证--确认进出单元的连接以及接口协议是否正确。
内核级验证
内核是特殊的可重用单元,需要由固定接口的完整功能规范。
内核一旦被验证,重用该内核不需要再次验证。
可重用验证内核的验证周期--回归测试集、清晰的规范、覆盖率条目、可能的验证情况。
设计团队之外的人使用内核时,验证团队必须使用定义明确的处理过程,避开不信任的内核,也就是要遵循内核支持的行为验证。
芯片级验证
芯片级验证是多个单元组成的,这一层次拥有定义明确的接口边界。
验证的目的是确保组成单元正确连接以及确保设计符合所有的单元接口协议。
较低层级的环境和设计会随着工程项目的进展而不断改变,但芯片级验证环境却只需要很少的维护,验证环境相对比较稳定。
板级和系统级验证
板级也即是逻辑门验证。
板级和系统级验证的目的是确认芯片互连、集成和电路板设计。
系统的定义是可独立验证组件的逻辑分割
系统验证主要关注系统内部芯片或单元间的相互作用关系,而不是芯片或单元内部的具体功能。
硬件/软件协同验证
该验证将系统级硬件和运行在硬件上的代码结合起来,这些代码可以是设备驱动程序、系统启动代码、系统启动代码、微指令、或者运行在硬件上的应用软件。
目的是找到硬件设计者和软件架构师以及程序员对于规范理解不一致导致的错误。