1 测试平台概述
测试平台(testbench)是整个验证系统的总称,包括验证结构中的各组件、组件之间的连接关系、测试平台的配置和控制;从更系统的意义来讲,还包括编译仿真的流程、结果分析报告和覆盖率检查等。狭义上我们主要关注验证平台的结构和组件,它们产生设计所需的各种输入,并在此基础上进行设计功能的检查。我们首先给出经典的测试平台结构,如图6.1所示。可以看到:
测试平台(testbench)是整个验证系统的总称,包括验证结构中的各组件、组件之间的连接关系、测试平台的配置和控制;从更系统的意义来讲,还包括编译仿真的流程、结果分析报告和覆盖率检查等。狭义上我们主要关注验证平台的结构和组件,它们产生设计所需的各种输入,并在此基础上进行设计功能的检查。我们首先给出经典的测试平台结构,如图6.1所示。可以看到:
如果能很清晰地知道一份验证周期的检查清单,那么对每一个项目节点需要做什么、上一个节点跟下一个节点有什么联系、不同节点在整个项目周期有什么作用,就有一个全面的认识。这样,作为验证新手,相信会更好地扮演验证角色。
在选择验证方法和构建验证环境之前,需要搞清楚验证计划是什么。在展开设计之前,设计人员和验证人员会阅读功能描述文档,以理解设计的各项功能为前提,考虑如何实现或验证各项功能。如果功能描述本身不清晰,则需要与系统人员沟通来修改功能描述文档;如果设计和验证双方人员对某一项功能理解有分歧,也需要与系统人员的解释保持统一。完成验证计划后,还需要对其进行修改吗?答案是肯定的。
到了目前的阶段,已经无法依赖单一的工具、语言或方法来达到验证的完备性。在实际的验证工作中,需要综合使用多种语言、方法、工具实现此目的。不同的语言、方法、脚本和工具之间没有绝对的优劣之分。比如,仿真验证协同形式验证一起完善功能覆盖率,也可以通过语言和脚本之间的整合完成一项验证流程。总而言之,作为一名有经验的工程师,需要掌握现有的各种方法和工具,通过合理的选择,“保质、高效、低耗”地完成验证任务。所以,我们在这里将验证方法分为若干类,梳理目前主流的验证方法和工具。
Update your browser to view this website correctly.&npsb;Update my browser now