一步一步的方法提炼形式验证的结果。
通过侯和金马克埃斯林格表示
许多公司都使用正式的验证来验证复杂的soc和安全性至关重要的设计。使用正式的验证来确认设计功能和发现功能缺陷正成为一种有效的验证方法。尽管形式验证不会处理的复杂性在SoC设计水平,它是一种有效的工具来验证设计块或IP综合。
不幸的是,关闭过程不是定义良好的正式报道。不同的公司,甚至不同的项目团队在一个公司可能使用不同的标准。有经验的形式验证用户知道如何提炼形式验证直觉的结果。然而,新用户发现这个技能挑战的主人,导致沮丧和失望。在本文中,我们抓住细化过程中循序渐进的方法,制定得更生动,这样很容易理解和复制。
有必要了解的因素确定正式的验证项目的成功。各种正式的团队从多个公司记录以下六个因素的成功基于他们的经历。
如果我们想要成功签署了设计与正式的报道,我们将不可避免地需要对付所有上面提到的成功因素。来帮助我们管理和(可能更重要的是)允许经理形象化,我们介绍了“螺旋细化”错误亨特雷达,图1。它捕获的六个因素的轴雷达图表。目标是确定的主要障碍,如正式的可用性专家或界面的完整性约束。然后我们可以逐步改善或完善其他因素实现正式报道关闭。
正式报道关闭过程由多个阶段和迭代。为了简化的解释,我们分类的过程分为三个阶段,如图1所示。
0 -开始阶段:原始的RTL设计
阶段1 -设置:正式的验证测试规划,配置,和抽象
2 -验证阶段:正式的证明,bug探索和改进
关闭3 -验收阶段:正式报道
设置阶段的目标是收集所有必要的信息,创建一个正式的验证测试计划,并建立了正式的验证环境。在这个阶段,我们提取目标设计的功能设计规范文档。形成一个正式的验证测试计划,我们定义的配置和操作环境和捕获需求的综合列表。一旦完成测试计划,我们开始编写属性约束环境和捕获定义的需求。断言的初始阶段发展重点提炼断言和约束匹配需求。用户的正式设计知识、语言能力和经验将决定这个阶段的效率。
第二阶段的目的是验证设计中的属性和修复任何错误发现的形式验证。这是一个提纯的过程,需要不断改善的成功因素,这样我们可以确认尽可能多的属性。CPU资源是这个阶段的关键。大多数设计公司已经有一个服务器群环境设置功能模拟回归。通过约束设计基于操作的模式,抽象,和接口,我们可以建立一个多处理环境。我们可以配置正式工具派遣数百家小型工作与不同的正式服务器农场引擎和技术环境。帮助正式验证一些复杂的断言,我们应该不断完善他们的准备。技术,如分解,辅助或子目标断言,assume-guarantee是常用的。如果设计需要一个特殊的初始化序列建立正确的设计,最好是设置后开始正式的验证已经完成。
验收阶段的目的是确认充分验证已经完成,我们可以签署形式验证的块。随着验证的发展,达到一个阶段,大部分的目标场景验证。断言被证明或解雇预期(即。,消极的场景),而一些断言可能仍然是不确定的。有效正式的验证结果,在这个阶段,我们面临这些关键问题:
我们把正式的保险来解决这些问题。不同类型的正式报道:计算可达性报道,可观测性报道,证明核心覆盖,和有界证明覆盖。这些帮助我们理解质量的断言在设计以及实际的元素已经正式确认。同时,他们确定在遥不可及的元素设计在形式验证和潜在的过度约束。
看到这是如何工作的,我们将使用一个示例设计项目:一个数据包的调度器,重视并将传入的数据包根据预定的仲裁方案。图2描述了我们如何能够应用成功的六个因素在每个循环的三个阶段细化方法关闭正式报道。
阶段1:设置
阶段2:验证
阶段3:签收
后检查证明属性和调试阶段2中的违规行为,我们专注于不确定属性在这最后阶段和正式报道。这是正式的一部分覆盖关闭方法。
多家公司已经证明,形式验证是一个可行的替代硅块级设计验收和bug狩猎。“螺旋细化”雷达和方法提供必要的指导项目团队采用这一互动过程。它抓住了成功因素,有助于指导不同的部署方法。三个phases-set,验证,signoff-help项目团队建立一个流程,安排任务,并设置评论如果需要从一个阶段到另一个地方。过程是确定任何障碍然后逐步完善或改进的成功因素,这样正式的验证可以从阶段阶段。总体目标是验证设计的功能和关闭确认完成正式报道。
更多地了解如何更有效地检测并修正错误在你的下一个设计中,阅读完整的白皮书形式验证经历:螺旋细化方法硅缺陷打猎从西门子EDA。
金侯博士是一名产品工程师,正式的IC验证系统分部的西门子EDA。侯有超过12年的正式和assertion-based验证。她曾作为CAE和PE、产品定义的经验,客户支持,工具测试、客户培训、技术营销、以及目前的体育,正式的应用程序。侯蒙特利尔大学获得博士学位,加拿大蒙特利尔。
留下一个回复