前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >形式验证(Formal Verification)会越来越有用

形式验证(Formal Verification)会越来越有用

作者头像
AsicWonder
发布2024-04-15 13:25:50
1090
发布2024-04-15 13:25:50
举报

新的应用推动了对复杂芯片的需求,在这些应用中,复杂的交互和安全风险很难用其他的仿真工具验证。

随着芯片被用于很多关键的应用,芯片内部的交互数量也在增加,形式验证在芯片研发流程中的角色也越来越多。

低功耗设计已经存在了很长时间,之前主要是被移动端芯片采用。现在,我们看到AI/ML加速器中非常关注能效。因此,现在对于每个人来说,无论他们在做什么,低功耗设计都是一个大问题,可以使用形式验证解决其中的一些问题。

如果你正在做时钟门控,我们可以在没有时钟门控的情况下进行分析,并明确地告诉你功能是否等价。根据用户要求,还可以通过UPF文件考虑电源意图。

Formal 能够进入这些非常具体的领域,不需要执行全部的仿真回归就可以把这些具体问题解决得一干二净。这才是Formal的真正价值。

Formal在这里是完备的,在上面这个例子中可以完备地保证低功耗不会对功能造成错误。

测试计划中都会有各种各样测试项,其中一些你可以通过形式验证来完备地验证。随着验证空间越来越大,Formal的重要性越能够凸显。

简言之,过去功能较少、仿真可以基本保证覆盖,在今天的许多应用中仿真的效率不可接受的。

高级工艺节点 SoC 和异构封装导致的设计复杂度不断增加,验证需求往往会呈指数级增长。验证工作做了非常多的工作来证明某些特性是正确的,最费时间的就是各种质量活动评审。当我们审视整个IC验证的研发流程,尽管验证作为一个岗位持续了数十年之久,但它并没有跟上复杂性的增加,而这正是形式验证成为重要角色的原因。

验证工作中的很多特性都很难用仿真方法来证明,这反过来又导致了对Formal需求的激增。这是Formal的优势所在,由于其完备性证明的性质,形式验证可以最终证明设计是正确的、安全的或值得信赖的。

如果一颗芯片用在了自动驾驶上,你怎么能够证明你的芯片是安全的?如果Formal能够作为某种认证手段会怎么样?客户会不会更愿意采纳你的IP呢?

在过去十年中,形式验证的应用惊人增长。目前,对于绝大多数顶级半导体公司来说,它是验证武器库中不可或缺的工具。

一个很好的例子是连接性检查,如果使用Simulation,可能需要一步一步地遍历所有连接,这可能需要相当长的仿真时间 。要想提高生产力,我们需要Formal验证,释放出仿真周期,从而在这些仿真周期内做更有价值的事情。

现在的验证思路是基于 IP 的分而治之验证,首先彻底验证 IP 或子系统,然后检查是否正确集成。对于基于 IP 的验证,形式验证已经扩展到对许多(但不是所有)类型的 IP 进行sign off,但状态空间仍然是一个问题。例如,复杂的串行协议对于形式验证仍然具有挑战性 - 时序深度通常太高。

一些形式化技术可以扩展到芯片级,但仅限于一些有限的验证点——大型数字 SoC 的完全Formal signoff仍然太具有挑战性。

每个设计都可以有一个Formal 应用的验证解决方案,尤其是以算术为主的设计此时,传统的仿真方法基本上不可能验证完备。

从理论上,你如何验证设计中不存在什么,例如设计不存在木马,这通常是通过仿真无法解决的验证问题,因为仿真只能证伪,不能够证明。但是Formal真的可以!

但Formal技术也造成了人才短缺,因为在这领域,只有极少数人精通断言和Formal验证工具。很多大厂都已经在实际项目中使用了Formal验证工具并且从Formal验证中收益。更多的是,行业内中有一些人想要了解Formal,但是缺少指引。

Emulation vs. formal vs. simulation

验证流程中主要是Emulation Simulation 。有些东西非常适合Formal验证,但不太适合Simulation,反之有些数模混合或者异步设计适合Simulation,而不适合Formal验证。

仿真和Formal验证技术是相辅相成的。在覆盖率方面,通过仿真,你可以很容易地达到80%、85%甚至90%的覆盖率,然后你就会很快达到曲线上的一个另外的95%收敛瓶颈。根据signoff的标准,另外 5% 左右,你可以做再怎么多的随机化,也仍然无法达到这些标准。

这 5% 恰好是Formal验证的甜点,因为 5% 是仿真难以达到的地方,可能是边界场景,也可能是dead code。这个时候,传统的验证流程就会安排一些有经验的工程师介入进行代码review:“我们一直认为这是无法覆盖到的或者风险不大,可以验证交付。” 真的么???

上面这种手动干预是不太合适的,低效率的,这个时候可以使用仿真和Formal验证技术,互补验证。

仿真完成基本的验证,由Formal验证完成最后一公里,类似的应用可以有连接性、死锁、安全、低功耗、算法验证和等价性比较验证等等。

Formal的局限性 与所有 EDA 工具一样,Formal工具也有一些局限性。相比完整的SoC,Formal更适合在模块上运行。当涉及到冗长的时序序列时,Formal会面临挑战。

就目前而言,有些验证任务Formal做得很好,有些仿真做得很好。我们永远不会看到Formal完全消除仿真的时候。 就像EDA工具做完综合后以及做完PR后,一直努力避免门级仿真,仅利用等价性比对,但是很多场景还是无法避免。

但是,我们看到Formal验证的应用正在以更快的速度增长。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字芯片实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 新的应用推动了对复杂芯片的需求,在这些应用中,复杂的交互和安全风险很难用其他的仿真工具验证。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档