形式验证的潮流引领离不开这款工具

原创 路科验证 2024-04-25 12:01
最近的时间,有幸参加了Simens OneSpin有关形式验证为期一天的会议,多数session我是跟了下来的,听了以后再次让我肯定了两件事情。一个是形式验证对于service的属性浓厚,需要围绕客户的需求、将形式验证四处开花,充分应用起来。另外一个是,Simens EDA这家公司一直秉承着他们创新探索的精神,很多EDA idea都能够从他们的工具早先让业界知道。整个一天下来让我受益挺多,会议先从行业境况、趋势,再到为了解决趋势当中的难点介绍OneSpin的新特性,继而有机会让听众了解到整个OneSpin是如何嵌入到Questa的功能验证family中。

接下来我将会议中一些让人有启发的PPT截取下来,将自己的理解和这些PPT结合起来,以便给路粉们对形式验证的一些新的发展方向有所了解。

这一张图还是相当直观有价值的,在左上角可以看到28nm制程和3nm制程不但是单次流片费用的急速上涨,而且还包括在这一过程中投入的用于验证(verfication/validation)和软件开发(software)的费用。可以看到,从28nm的验证费用$17M到3nm的$187M,整整上调了11倍(这个经费很离谱了..)。这张图也再次表明了,烧的钱都去哪里了。以7nm制程为例,验证(pre-silicon verification)的费用$47M仅次于软件开发费用$87M。

在过去的10年当中,项目中的验证人员数量增加了41%,但引起二次流片的设计缺陷还是增加了35%,这会引起对于验证投入策略的思考,尽管芯片复杂度提升和功能空间的爆炸确实需要人力的投入,不是说人力投入的多用处不够而是说这种投入按照常规仿真方法vs膨胀后的功能空间来看,其实还是“不够的”,依然有越来越多的功能bug在流片后外泄。所以在这个形式验证的会议里,自然地会提出一个问题——

是否不断增加的形式验证的投入并不会带来预期的结果呢?是不是应该考虑采取多样化的验证策略才能取得更好的结果呢?

一来是人力持续投入后的效果增长发力,二来是持续增加的复杂度,最后是全球性的IC人力短缺,不过不知道那个23,000的gap数字有没有包含国内的情况。在这种背景下,也就有了productivity gap(合理吧)。

这张图的比较也有实际意义的,它把静态验证拆分成了staitc和formal,而与simulation做了比较。static可以参考linting check,formal可以参考property check。PPT里的用词也很恰当,比如哪些情况属于“might exist”,哪些检查“with / without testbench”。这里formal与simulation比较起来,它的exponential与simulation linear特性比较起来,都做过这两种验证的同学就会深有体会了,在V3课程里,我们也将同一个design,同时采用formal和simulation做signoff verification,给了参考。面对设计的复杂度提升、传统仿真时覆盖率在80%左右时的缓慢爬坡,formal在这里的exponential就很有吸引力了。

如果遇到的设计本身要求验证的“completeness”,那么static & formal验证通过算法穷举的保证就可以确认这一点。之前谈到的仿真检查“linear”的问题也可以理解成,仿真往往是跟着specification走的,构建的场景往往也是围绕着spec,那么设计中可能植入的木马、多余的逻辑、影响安全的部分,这些对于更注重安全性的设计而言,static & formal也有能力可以探查。

在OneSpin被Simens收购以后,它的工具也就并入了Questa验证套件当中,这张图是讲他们围绕着static & formal还做了哪些新鲜的东西让人眼前一亮“beyond Questa Formal”。后面的一些内容也都是围绕着这张特性图来看的,有不少formal的应用让人觉得惊喜,一看就是研发团队跟着客户一起琢磨出来再细细打磨的好东西。

这张图意图在表明一个更为细致的流程,从requirement, plan, run再到analyze, monitor。在早期的话,如果有requirement trace的工具作为硬件软件需求库、再到测试计划的分析创建、再到回归测试的管理,这部分可以走在验证之前(持续交付CI的过程)。在持续交付也就是每周在测试实际时,可以让static & formal & simulation共同参与进来。这样至少在仿真能够跑完整场景前,static & formal就可以get answer earlier than simulation without testbench。这个CI过程也是这次研讨会带给客户的认知,只不过有的时候不是不愿意尝试,而是我们都知道formal的apps应用庞杂,每个分支都需要有学习曲线,而且还需要对足够的经验来让它有实际产出。

在同时投入静态、动态方法后,只要底层有统一的覆盖率数据格式,每周就可以基于此进行分析了。这个流程跟其它家EDA公司推出的consistent flow大差不差,看起来都是挺美好的,但一般只有采用了各家EDA公司的全家桶以后,这种flow才能顺利建立起来,而如果分别采用了不同的工具,那么中间的黏合部分,我认为regression工具就必须有高度的customization能力才能把不同工具的启动、报告、分析部分结合起来。

这里我得推一推我们合作伙伴Quickor开发套件的回归工具RunFab,V3课程的系统验证模块也有这个回归工具的介绍和使用,该工具适合将多个协同小组所开发的不同模块、子系统乃至系统的验证流程(Makefile/Perl/Python/Shell等脚本)按照模块化、继承方式轻松整合在一起,对于IC开发实际过程而言,更倾向于IC团队本身,不会与各家EDA工具有深度绑定的掣肘,应用方便,有兴趣的公司也可以跟我们取得联系,试用Quickor工具套件。

 

这张图对指导static & formal在何时介入验证过程有指导意义。可以看到在testbench ready之前,static & formal有很多app都可以投入应用,而且rtl designer就可以完成这些事情(lint/check register/cdc/rdc/check x/unreachable coverage analysis等),只有像property/check connect这些事情会更面向验证人员一点。说白了,designer可以同样做不少事情,而不是从项目上就把rtl design以外的事情都交给了verifier……

为了“秀肌肉”,OneSpin将一些开源设计作为输入,并使用不同的static & formal apps做了检查,然后从数据可以看到发现了多种类型的bug,包括功能对不上的(Spec)、边界情况(corner case)以及安全问题。

处理器的验证是一个单独的验证领域,需要对指令集、架构和功能描述均展开验证,而传统的仿真验证会面临很大压力,比如core作为一个“整体”,在验证它的流水线时传统仿真无法轻松撞出一些corner case,如果发生了指令执行错误,调试也会有难度(因为它不是简单的数据处理,而可能需要根据场景不同、调试方法也有不同),最后覆盖率的收敛到了后期也成了问题。

这次OneSpin研讨会上带来的第一个新鲜app就是协助RISC-V核验证的工具。它旨在让验证提速(尤其早期在没有UVM验证环境的时候)、并加速覆盖率的收敛。如果是以往的形式验证,那么往往需要这方面的专家/AE介入进来协助客户一同完成。而OneSpin这里的思路是降低“边际成本”,在标准指令集的基础上实现工具介入的自动化,比如不再需要单独定义覆盖率、自动提取微架构、生成断言等。 

如何使用工具的PPT我没有拍到,不过大家可以想象就是一种类似填表的方式,告诉工具指令集、自定义指令、微架构、总线类型这些部分,接下来的事情就可以交给工具来完成。尽管可能实际工程中这部分setup要复杂一些,但自动化地完成处理器的检查、发现bug、每一项检查都可以自动生成断言、覆盖率还能在此基础上快速提升,这一切听起来还是很让人兴奋的。

接下来的FPU的formal app也是紧跟潮流的,在AI领域浮点运算单元是一个标准件,而FPU在实现时如果遵循IEEE-754标准的话,那么FPU App也可以帮助客户实现验证的自动化。

这种formal app的思路看起来就更像针对特定场景的“点”状应用,既解决了客户不知道怎么将formal带入到工作中,也尽可能让它们在特定的场景中“开箱即用”。这次研讨会上的App在我所了解的各家formal工具信息中,OneSpin是走到前面的。

Security验证的formal app,OneSpin不是第一家,但它在这方面的应用堪称是“打直拳”的典范。如果想要让工具检查出来A点到B点的path是否可能会存在数据泄露,只需要下面这种简单的配置即能够让工具帮助检查出是否可能有造成数据泄露的路径。而且大家可能会将这种模式跟formal经常用到的connection check做联想。毕竟两种情况面对大型的设计都可能会遇到空间爆炸的问题,而这次OneSpin竟然说他们已经有方法可以解决这种大设计的问题,而且还不用为此设置blackbox。什么?!这也听着很有趣好吗!

而且就以往的security验证而言,formal app也可以做到fault自动化的插入、分析。

OneSpin在SoC connectivity验证也有一些新东西。在系统集成层面,bus/pad/test control/debug access/power management/interface都是要cover的地方。

Connectivity XL app可以帮助超大规模SoC实现连线检查,比如已经投入应用的7nm超过100万连线的数十亿门电路的检查。

在使用formal的过程中,用户需要考虑给与其如何的定位,是作为仿真工具、加速工具的辅助,还是将其作为独立的一个分支,在每个项目中都充分的应用它,让它发现更多的corner case。

Static & formal有能力从前到后参与芯片开发过程。

如果采用formal以后,用于创建testbench、实现测试用例、调试的时间都将整体缩短(但可能面临的一个新的问题是,创建测试用例的场景本身不易于理解,这一点不同于仿真验证的场景直接描述)。

这是一个完整的Questa+OneSpin在static & formal方面的featured app map。可以看到OneSpin的加入,让Questa在形式验证方面的能力显著增强。

 

无论是OneSpin在复杂设计中连线检查的整体方案,还是它在行业中率先提出的多项formal app更有效地、系统地解决客户的痛点,还有它已经投入应用的ML/AI的助手,以及接下来的计划,这些都在表明OneSpin在行业当中应该具备的独特地位。


路科验证 专注于数字芯片验证的系统思想和前沿工程领域。路桑是Intel资深验证专家,主持验证架构规划和方法学研究,担任过亿门级通信芯片的验证经理角色。在工程领域之外,他在西安电子科技大学和西安交通大学客座讲授芯片验证课程。著有书籍《芯片验证漫游指南》。
评论
  • 我的一台很多年前人家不要了的九十年代SONY台式组合音响,接手时只有CD功能不行了,因为不需要,也就没修,只使用收音机、磁带机和外接信号功能就够了。最近五年在外地,就断电闲置,没使用了。今年9月回到家里,就一个劲儿地忙着收拾家当,忙了一个多月,太多事啦!修了电气,清理了闲置不用了的电器和电子,就是一个劲儿地扔扔扔!几十年的“工匠式”收留收藏,只能断舍离,拆解不过来的了。一天,忽然感觉室内有股臭味,用鼻子的嗅觉功能朝着臭味重的方向寻找,觉得应该就是这台组合音响?怎么会呢?这无机物的东西不会腐臭吧?
    自做自受 2024-12-10 16:34 138浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 47浏览
  • 概述 通过前面的研究学习,已经可以在CycloneVGX器件中成功实现完整的TDC(或者说完整的TDL,即延时线),测试结果也比较满足,解决了超大BIN尺寸以及大量0尺寸BIN的问题,但是还是存在一些之前系列器件还未遇到的问题,这些问题将在本文中进行详细描述介绍。 在五代Cyclone器件内部系统时钟受限的情况下,意味着大量逻辑资源将被浪费在于实现较大长度的TDL上面。是否可以找到方法可以对此前TDL的长度进行优化呢?本文还将探讨这个问题。TDC前段BIN颗粒堵塞问题分析 将延时链在逻辑中实现后
    coyoo 2024-12-10 13:28 101浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-10 16:13 105浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 75浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 71浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 49浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 81浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 87浏览
  • 智能汽车可替换LED前照灯控制运行的原理涉及多个方面,包括自适应前照灯系统(AFS)的工作原理、传感器的应用、步进电机的控制以及模糊控制策略等。当下时代的智能汽车灯光控制系统通过车载网关控制单元集中控制,表现特殊点的有特斯拉,仅通过前车身控制器,整个系统就包括了灯光旋转开关、车灯变光开关、左LED前照灯总成、右LED前照灯总成、转向柱电子控制单元、CAN数据总线接口、组合仪表控制单元、车载网关控制单元等器件。变光开关、转向开关和辅助操作系统一般连为一体,开关之间通过内部线束和转向柱装置连接为多,
    lauguo2013 2024-12-10 15:53 81浏览
  • 【萤火工场CEM5826-M11测评】OLED显示雷达数据本文结合之前关于串口打印雷达监测数据的研究,进一步扩展至 OLED 屏幕显示。该项目整体分为两部分: 一、框架显示; 二、数据采集与填充显示。为了减小 MCU 负担,采用 局部刷新 的方案。1. 显示框架所需库函数 Wire.h 、Adafruit_GFX.h 、Adafruit_SSD1306.h . 代码#include #include #include #include "logo_128x64.h"#include "logo_
    无垠的广袤 2024-12-10 14:03 69浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦