随着可能的交互数量的增加以及这些芯片被用于更关键的应用,形式验证在芯片设计中的应用越来越频繁、越来越多。
过去,很多 正式验证 重点关注芯片是否能正常工作。但随着设计变得更加复杂和异构,并且随着用例的变化,形式验证被用于从评估分区的影响到追踪静默数据损坏的根源等各个方面。它甚至被用来识别可能的网络攻击媒介,并跟踪设备内电力的传输和使用方式。
“低功耗设计已经存在很长时间了,但这是一种主要用于移动芯片的方法,”Sean Safarpour 表示,他是研发团队总监。 新思科技 埃达集团。 “现在是全面的。同样,我们看到加速器中使用了更多的人工智能/机器学习,而单位功率可以完成的工作量是主要驱动因素。所以现在对于每个人来说,无论他们在做什么,低功耗设计都是一个大问题。这与形式验证有关的是,可以使用形式验证的特定方法来解决其中一些问题。”
这不再只是关于 时钟门控 优化,涉及重新运行模拟回归以确保一切正确。如今,需要在系统中的其他组件(有时甚至是系统之间)的背景下考虑功耗。如果没有正式的安排,如果可以的话,将会花费更多的时间。它还需要在不同的用例和工作负载的背景下进行检查,其中需要跟踪电力从交付到使用的整个过程。
“如果您正在进行时钟门控,我们可以在有或没有时钟门控的情况下进行分析,并明确地告诉您功能是否相同,或者您是否可能遇到错误或在此过程中出现问题,”Safarpour 说。 “根据用户请求,现在还可以通过 UPF 文件考虑电力意图。五六年前,我们还没有这样的要求。现在他们如此突出,人们都说,‘我做财产核实。我有我的主张。但现在我想在我的 UPF 面前验证这些说法。我进行 SoC 级别的连接检查,这是另一个特定的应用程序。但除非您考虑到设计的完整 UPF,否则这是不完整的。 Formal 能够进入这些非常具体的领域,因此用户可以说,‘等一下,我们不需要重做整个回归套件。我们可以针对这些具体问题并彻底解决它们。这就是正式的真正价值。它本质上是详尽的,所以当您查看整个测试计划时,您正在查看其中的一些方面,无论是低功耗还是安全性,我们都可以讨论所有这些。您的测试计划中将有针对这些的特定行项目。其中一些问题你可以通过形式验证来彻底解决,这就是为什么随着问题空间变得越来越大,它现在变得越来越重要的原因之一。”
简而言之,过去当功能较少且生命周期较短时可以接受的覆盖范围差距在今天的许多应用程序中是不可接受的。
“每个人都在谈论不断增加的复杂性,很多人会正确地以此为理由以不同的方式做事,”静态和正式解决方案产品管理主管 Chris Giles 说。 西门子EDA。 “当我们审视市场的成功和总体开发流程时,我们看到的是,尽管验证投资持续了数十年的增长,但仍跟不上复杂性的增长。因此,尽管我们都认识到复杂性在不断增加,但作为一个行业,我们的应对方式却没有达到应有的效果。过去几年发生的变化在于世界对硅的需求,这就是形式验证成为绝对要求的地方。当今世界对硅的要求是一种不同的验证方法。我们的要求不再是复杂性。这是关于安全的。这是关于安全的。这是关于信任。这是关于保证。所有这些事情都很难用线性模拟方法来证明。”
这反过来又导致了对形式验证的需求激增。 “这就是正式的优势,”贾尔斯说。 “由于其详尽的性质,形式验证可以最终证明设计是安全的、安全的或值得信赖的。业界正在做大量工作来认证这些属性,因此拥有生成该认证的流程至关重要。这是正式的绝对必要的地方。如果你看看 IP 行业,IP 公司不一定知道他们的 IP 将出现在什么最终产品中,因此他们必须针对这些类型的问题进行规划。我怎么知道这是一个安全的设计?我怎么知道这是一个值得信赖的设计?我怎么知道将人的生命置于其控制之下是安全的?这些都是当今 IP 团队也必须担心的事情。”
Pete Hardee,系统与验证小组产品管理总监 Cadence公司,说他在过去十年中看到形式验证的使用显着增长。 “毫无疑问,它已经‘跨越了鸿沟’,进入了广泛的主流应用。对于绝大多数顶级半导体公司来说,它是验证工具库中不可或缺的工具。”
对于高级节点 SoC 以及封装中的异构组件来说,复杂性不断增加,需要更多的验证。 “验证需求往往会随着设计复杂性呈指数级增长,”哈迪说。 “关键影响是双重的。首先,对于基于 IP 的分层验证,分而治之一直是验证成功的主要因素 - 彻底验证 IP 块或子系统,然后检查是否正确集成,并且在下一个级别上没有任何问题。对于基于 IP 的验证,形式验证已扩展为实现多种(但不是全部)类型 IP 的正式签核。尽管在形式可扩展性方面取得了重大进展,状态空间仍然可能是一个问题。例如,复杂的串行协议对于形式验证仍然具有挑战性——顺序深度通常太高。一些正式技术可以扩展到芯片级,但仅限于某些有限的方式——大型数字 SoC 的完整正式签核仍然太具有挑战性。”
基于处理器的设计一直具有挑战性,但当它们使用特定于领域的架构时,验证特别困难。他指出:“大规模可编程设计——多处理器架构,根据垂直应用使用许多同构或异构处理器核心阵列,出现了巨大的增长。” “对于应用处理器来说,Arm 与 x86 ISA 之争现已被 RISC-V 打响。 GPU 已经存在很长时间了,但许多其他类型的数学协处理器和加速器也很常见,尤其是现在受到人工智能/机器学习革命的推动。每个人都在设计自己的应用程序和数学核心变体,针对他们的功耗、性能和面积需求进行优化。” Cadence 将这种现象称为特定领域架构 (DSA)。
对可靠性的担忧也正在蔓延到非关键设备。 “每个设计都可以有一个正式的验证解决方案,包括算术主导的设计,”首席执行官 Ashish Darbari 说道。 公理。 “以算术为主导的设计受益于最大的形式验证工具提供商的先进解决方案,所有这些解决方案都有适合算术验证的解决方案,尤其是在浮点方面。从总体上看,这不一定是一项主要工作量,但它的意义和重要性足以让我们不会视而不见。”
这为在流程中更早地使用正式形式打开了大门,它可以用于阻止与设计相关的延迟,并在更广泛的工程社区中使用。但这也造成了人才短缺,因为并不是每个人都精通写作 断言 跨越各种不同的应用程序。
“在芯片行业中,每个拥有合理名称的公司,无论是 GPU、处理器公司,还是结构公司,都在使用正式名称,”Darbari 说。 “所有制造硬件的巨头都在使用正规的。他们中的一些人希望完成如此多的正式工作,但他们只是没有足够的才能。”
采用率也各不相同。 “有些人对形式化验证非常熟悉和适应,了解它能做什么,并对其提出质疑,”西门子的贾尔斯指出。 “其他人则有点犹豫,因为有时感觉像是一个科学项目,或者需要进行教育工作。当不熟悉形式化的人第一次听到建议进行形式化验证时,他们的第一个想法是,‘现在我的员工必须拥有博士学位。我们必须让我们的项目继续下去。我该怎么做呢?这导致了不同程度的采用。”
在一些公司,正式已经成为众多必需技能之一。这是一个重大转变。在形式验证的早期,人们假设一小群工程师能够熟练使用这些工具。
“我们意识到设计师、验证工程师和各行各业的工程师都可以利用这项技术,”Synopsys 的 Safarpour 说道。 “EDA 工具开发人员有责任使其对用户来说更加直观。我们有不同的角色,不同的帽子。现在,如果您是设计师,您可能需要稍微不同的界面。您从与正式黑带不同的角度来看待它,并且您正在寻找的附加功能也完全不同。作为工具开发人员,我们还向能够充分利用工具的用户学习。从这方面来看,门槛也降低了。如今,当我收到询问或与客户交谈时,提出增强请求或向我们提供有关该工具的反馈的非专家数量与传统的正式专家一样多。”
仿真与正式与模拟
验证流程的其他支柱包括模拟和仿真。但对于某些设计,可能不需要每种验证工具。
“有些东西非常适合形式验证,但不太适合模拟,反之亦然,”西门子的贾尔斯说。 “连接检查就是一个很好的例子。逐位模拟所有互连是否正确是一个相当长的串行过程。如果您可以在一次运行中详尽地完成它,那么您可以利用这些模拟周期并将它们用于模拟最有效的地方。所以这是一个生产力游戏。随着该行业从全球化模式转向区域化或国有化模式,我们必须在世界各地多次复制芯片设计、开发和生产的生态系统,另一件显而易见的事情是劳动力短缺世界各地几乎都有预测。这与设计复杂性没有任何关系。这与世界地缘政治和宏观经济现实有关。这正在到处创造机会。现实是,为了在这种环境中取得成功,我们需要提高员工的生产力。使用正式或有效的验证,释放仿真周期来完成仿真最擅长的工作,是现在和未来开发的关键部分。因此,这两件事——生产力以及满足当今世界对硅的需求,以及安全性和保证、信任和保障——这就是为什么我认为任何形式都绝对需要形式验证的原因。发展。”
在某些情况下,需要不止一种类型的工具。 Darbari 指出,基于覆盖范围要求以及不同供应商的不同工具的功能存在重叠。 “仍然存在差异,”他说。 “调试是最有趣的一件事。调试是我可以在最短的时间内找到失败根本原因的地方,也是我们花费大量时间来找出根本原因的地方。”
形式验证和模拟之间还存在相互作用,以减少模拟周期,而形式验证对工程团队来说成本更高。
“你永远无法进行足够的模拟,因此需求是无限的,”萨法普尔说。 “每个人都想进行模拟,但他们没有足够的计算能力。然而,模拟和形式验证技术本质上是互补的,我们在多个领域都看到了这一点。在覆盖率方面,通过模拟,您可以很容易地达到 80%、85%,甚至 90% 的覆盖率,然后您会很快达到曲线的稳定状态。然后还有另外 5%。根据签核的标准,还有 5% 左右,而且您可以做的随机化太多,我们仍然无法达到这些要求。这 5% 恰好是正式代码的最佳选择,因为很可能 5% 要么是很难实现的东西,比如正式代码擅长的角落案例,要么是死代码,这意味着无论有多少模拟你做你打不中。这会给你留下一个问号,然后一些工程师必须介入检查该代码并说,“我认为这是无法访问的。”所以,这是一个手动干预。我们这样做的方式是我们的模拟和正式工具在同一个数据库上工作并互相帮助。”
同样的情况也适用于功能安全应用。 “您可以尽可能多地涵盖功能安全和容错,然后正式采取措施。安全性也是如此,这种方法在不同的领域不断重演。通过模拟完成简单的事情,达到稳定状态,然后正式完成最后一英里,”萨法普尔解释道。
特定领域的架构添加了自己独特的问题。 “与不可编程 ASIC 相比,DSA 有所不同,因为您无法预测程序员使用处理器的多种方式,”Cadence 的 Hardee 说道。 “必须涵盖所有可能发生的情况,包括完全不可预见的情况。正规是唯一途径。 Arm 和 Intel 等处理器技术领导者知道这一点,并长期投资于形式验证。每家实施自己的 RISC-V 的公司都必须这样做。数学协处理器和 AI/ML 引擎的增长正在推动更新的形式技术,例如 C/C++ 到 RTL 顺序等价检查。”
形式的限制
然而,与所有 EDA 工具一样,形式化确实有一些局限性。 “Formal 享有盛誉,因为它比完整的 SoC 更适合在模块或块上运行,”西门子的 Giles 指出。 “当涉及到长期的、连续的问题时,形式化会面临挑战。一个很好的例子是,使用形式来验证浮点单元中的乘法或除法函数是具有挑战性的。最好的做法是让形式做形式最擅长的事情,让模拟做模拟最擅长的事情。如果您采用浮点设计,您可以验证所有内容,但乘法和除法功能最好通过仿真来完成,这样您就可以更有效地使用仿真函数,并且您正在验证必须进行的事情在那里完成。那么你就不必通过模拟来完成完整的浮点单元。”
与所有工具一样,该领域也正在进行大量工作,通过抽象和新研究来克服这些限制。贾尔斯说:“目前,它传达了这样的信息:有些事情形式化做得很好,有些事情模拟做得很好。” “我永远不会看到形式完全消除模拟的情况。就像多年来一样,我一直想停止进行门级模拟,但这从未成功。我们也会通过形式和模拟来看到这一点。”
形式验证方法可以是详尽且彻底的,但它们是否应该成为全面的要求?
甚至在 2014 年被 Cadence 收购之前,Jasper 就通过引入正式应用程序开创了更广泛的扩散——使用模型检查(通常带有自动生成的断言)以更容易访问的方式解决常见验证问题,需要的正式专业知识水平要低得多,哈迪说道。
此外,“连接性是一个很好的例子,也是最容易采用的例子之一——从电子表格或中的连接图生成断言 IP-XACT 形式。模拟也可以做到这一点,但很乏味。这种形式化方法很容易扩展到芯片级,因为大多数底层块功能都可以被抽象。在某些情况下,这些应用程序可以减轻模拟工作负载,其价值在于发现极端情况错误,因为随机工具生成的输入刺激比模拟测试平台通常更详尽。虽然这些应用程序对于让验证工程师开始正式工作很有用,也许可以充当“网关”,但就使用而言,它们只是冰山一角。目前,我们发现冰山的大部分(包括形式验证的大部分回归使用)是通过形式属性验证和顺序等效检查(RTL 到 RTL 和 C/)来验证基于处理器的 DSA 设计。 C++ 到 RTL,”他补充道。 “尽管我很想将形式验证设置为全面的要求,但仍然存在必要的例子,以及模拟仍然做得更好的其他例子。但我们看到需要形式验证的设计类型正在以更快的速度增长。”
至于这一切是如何演变的,EDA 生态系统似乎正处于确定如何在传统应用程序之外使用形式验证的风口浪尖。
“对于任何销售针对特定最终用途的捆绑正式应用程序的供应商来说,有一组相当常见的应用程序,”贾尔斯总结道。 “从技术和业务角度来看,挑战和机遇包括使用形式化的方式来执行以前不可能的验证,例如硬件中的特洛伊木马检测。特别是在这个开源硬件的世界中,能够证明该设计中没有任何不应该存在的东西是非常好的。这通常不是通过模拟解决的验证问题,因为模拟通常假设您知道自己在寻找什么,而您只是想确保它能够做到这一点。通过特洛伊木马检测,您现在正在寻找实际上超出已知状态空间的事物。这是一个充满希望的事情。”
相关阅读
RISC-V 微架构验证
验证处理器不仅仅是确保指令正常工作,但该行业是在有限的知识库和很少的专用工具的基础上进行构建的。
安全验证所需的新概念
为什么确保硬件正常工作并能够检测现场可能出现的漏洞如此困难。
- :具有
- :是
- :不是
- :在哪里
- $UP
- 2014
- a
- Able
- 关于
- 绝对
- 绝对
- 抽象的
- 加速器
- 可接受
- 无障碍
- 根据
- 账号管理
- 获得
- 横过
- 演戏
- 操作
- 加
- 添加
- 采用
- 采用
- 高级
- 前
- AI / ML
- 所有类型
- 沿
- 还
- 时刻
- am
- 量
- an
- 分析
- 和
- 另一个
- 回答
- 任何
- 再
- 什么
- 出现
- 应用领域
- 应用领域
- 的途径
- 应用
- 架构
- 保健
- 国家 / 地区
- 地区
- ARM
- 围绕
- AS
- 亚瑟士
- 方面
- 方面
- 组装
- 评估
- 假定
- 保证
- At
- 酒吧
- 基地
- 基于
- 战斗
- BE
- 因为
- 成为
- 成为
- 很
- before
- 作为
- 钟声
- 受益
- 最佳
- 更好
- 之间
- 超越
- 大
- 位
- 黑色
- 黑腰带
- 阻止
- 板
- 都
- 苍茫
- 更广泛
- 布罗克
- 破
- 问题
- 虫子
- 建筑物
- 捆绑
- 商业
- 但是
- by
- Cadence公司
- CAN
- 可以得到
- 能力
- 能力
- 例
- 餐饮
- 原因
- CEO
- 一定
- 证书
- 证明
- 挑战
- 挑战
- 挑战
- 可能性
- 更改
- 查
- 检查
- 芯片
- 碎屑
- 克里斯
- 清除
- 时钟
- 码
- 购买的订单均
- 舒适
- 未来
- 相当常见
- 社体的一部分
- 公司
- 公司
- 补充
- 完全
- 复杂
- 复杂
- 组件
- 计算
- 概念
- 关心
- 总结
- 连接方式
- 考虑
- 考虑
- 常数
- 上下文
- 对比
- 控制
- 角落
- 正确
- 正确地
- 腐败
- 昂贵
- 可以
- 课程
- 外壳
- 覆盖
- 覆盖
- 创建
- 创造
- 标准
- 危急
- 目前
- 曲线
- 尖点
- 合作伙伴
- 网络攻击
- 周期
- data
- 数据库
- 一年中的
- 死
- 十
- 专用
- 延误
- 提升
- 交货
- 需求
- 严格
- 需求
- 根据
- 部署
- 深度
- 设计
- 设计师
- 设计师
- 设计
- 设计
- 尽管
- 检测
- 开发
- 研发支持
- 设备
- 设备
- 不同
- 不同
- 难
- 数字
- 副总经理
- 分
- do
- 不
- 不会
- 做
- 域名
- 完成
- 别
- 门
- 怀疑
- 驱动
- 司机
- 驾驶
- 每
- 此前
- 早
- 最简单的
- 容易
- 易
- 生态系统
- 教育的
- 有效
- 只
- 影响
- 高效
- 努力
- 或
- 消除
- 拥抱
- 仿真
- 结束
- 工程师
- 工程师
- 工程师
- 引擎
- 增强
- 更多
- 确保
- 整个
- 环境
- 等价
- 特别
- 必要
- 醚(ETH)
- 甚至
- EVER
- 不断增加
- 所有的
- 每个人
- 每个人
- 大家的
- 一切
- 到处
- 演变
- 例子
- 例子
- 全面
- 扩大
- 专门知识
- 专家
- 解释
- 爆炸
- 成倍
- 布
- 因素
- 失败
- 相当
- 熟悉
- 快
- 特征
- 反馈
- 感觉
- 少数
- 少
- 部分
- 文件
- 寻找
- 姓氏:
- 五
- 漂浮的
- 流
- 重点
- 针对
- 申请
- 正式
- 止
- ,
- 功能
- 实用
- 功能
- 功能
- 未来
- Gain增益
- 差距
- 其他咨询
- 通常
- 生成
- 产生
- 地缘政治
- 得到
- 得到
- 巨头
- 给予
- 全球化路线
- Go
- 去
- 非常好
- 得到了
- GPU
- 图形处理器
- 大
- 团队
- 成长
- 成长
- 事业发展
- 发生
- 硬
- 硬件
- 有
- 有
- he
- 头
- 帮助
- 犹豫不决
- 分级
- 高
- 击中
- 马
- 创新中心
- 但是
- HTTPS
- 巨大
- 人
- i
- 鉴定
- 确定
- if
- 影响力故事
- 履行
- 重要
- in
- 包括
- 包含
- 增加
- 行业中的应用:
- 输入
- 说明
- 积分
- 英特尔
- 意图
- 互动
- 有趣
- 接口
- 介入
- 成
- 介绍
- 直观的
- 投资
- 投资
- 涉及
- IP
- 问题
- 问题
- IT
- 项目
- 它的
- 工作
- JPG
- 只是
- 只有一个
- 保持
- 键
- 种
- 知道
- 知识
- 已知
- 劳工
- 大
- 大
- 最大
- 名:
- 最后一英里
- 领导人
- 信息
- 知道
- 让
- Level
- 生活
- 生命周期
- 喜欢
- 限制
- 有限
- Line
- 线性
- 小
- 生活
- 长
- 长时间
- 不再
- 看
- 寻找
- 占地
- 低
- 降低
- 降低
- 主流
- 主要
- 多数
- 使
- 制作
- 颠覆性技术
- 手册
- 许多
- 地图
- 标记
- 市场
- 数学
- 问题
- 可能..
- 也许
- 意
- 的话
- 方法
- 研究方法
- 方法
- 英里
- 联络号码
- 模型
- 模块
- 更多
- 更高效
- 最先进的
- 大多
- 移动
- 许多
- 多
- 必须
- my
- 无数的
- 姓名
- 自然
- 一定
- 必要
- 需求
- 需要
- 决不要
- 全新
- 较新
- 下页
- 不错
- 没有
- 非专家
- 注意到
- 没什么
- 现在
- 数
- of
- 折扣
- 经常
- on
- 一
- 仅由
- 打开
- 开放源码
- 打开
- 机会
- 优化
- 优化
- or
- 秩序
- 其他名称
- 我们的
- 输出
- 超过
- 克服
- 己
- 包
- 部分
- 尤其
- 过去
- 员工
- 为
- 演出
- 性能
- 观点
- 博士学位
- 非凡的
- 现象
- 片
- 首创
- 地方
- 计划
- 规划行程
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- 扮演
- 点
- 点
- 可能
- 功率
- 预测
- 都曾预测
- 存在
- 漂亮
- 市场问题
- 问题
- 过程
- 处理器
- 处理器
- 产品
- 产品管理
- 生产
- 生产率
- 程序员
- 项目
- 突出
- 突出
- 承诺
- 正确
- 财产
- 协议
- 证明
- 供应商
- 把
- 查询
- 题
- 有疑问吗?
- 很快
- 相当
- 研发
- 随机
- 率
- 价格表
- 真实
- 实际价值
- 现实
- 现实
- 实现
- 原因
- 合理
- 原因
- 承认
- 建议
- 减少
- 指
- 回归
- 可靠性
- 留
- 遗迹
- 声誉
- 要求
- 必须
- 需求
- 岗位要求
- 需要
- 研究
- 检讨
- 革命
- 根
- 运行
- s
- 安全
- 实现安全
- 说
- 同
- 对工资盗窃
- 说
- 可扩展性
- 鳞片
- 缩放
- 秤
- 脚本
- 方案
- 科学
- 肖恩
- 其次
- 安全
- 保安
- 看到
- 看到
- 看到
- 卖房
- 半导体
- 串行
- 集
- 转移
- 短缺
- 短缺
- 最短的
- 应该
- 显示
- 侧
- 显著
- 显著
- 硅
- 同样
- 只是
- 模拟
- 自
- SIX
- 技能
- 略有不同
- 小
- So
- 方案,
- 解决方案
- 解决
- 解决
- 一些
- 有人
- 东西
- 有时
- 来源
- 太空
- 具体的
- 花费
- Spot
- 传播
- 电子表格
- 团队
- 坚定的人
- 开始
- 州/领地
- 步
- 步骤
- 仍
- 刺激物
- Stop 停止
- 故事
- 进步
- 走向成功
- 成功
- 这样
- 套房
- 应该
- 肯定
- 甜
- 系统
- 产品
- 采取
- 天赋
- 谈论
- 说
- 团队
- 队
- 文案
- 技术
- 技术
- 专业技术
- 乏味
- 展示
- 趋向
- 条款
- test
- 比
- 这
- 未来
- 世界
- 其
- 他们
- 然后
- 那里。
- 博曼
- 他们
- 事
- 事
- 认为
- Free Introduction
- 透
- 那些
- 思想
- 通过
- 始终
- 次
- 时
- 类型
- 至
- 今晚
- 公差
- 也有
- 工具
- 工具
- 最佳
- 对于
- 追踪
- 追踪
- 传统
- 巨大
- 木马
- 特洛伊木马
- 信任
- 可靠
- 试图
- 转
- 二
- 类型
- 类型
- 一般
- 下
- 相关
- 理解
- 进行
- 意外
- 独特
- 单元
- 除非
- us
- 用法
- 使用
- 用过的
- 有用
- 用户
- 用户
- 使用
- 运用
- 平时
- 利用
- 利用
- 折扣值
- 变种
- 各种
- 变化
- 变化
- 广阔
- 供应商
- 厂商
- 企业验证
- 确认
- 验证
- 谙练
- 与
- 垂直
- 非常
- 副
- 体积
- vs
- 漏洞
- 走
- 想
- 通缉
- 希望
- 是
- 方法..
- 方法
- we
- 井
- 为
- 什么是
- 任何
- ,尤其是
- 是否
- 这
- 而
- WHO
- 为什么
- 更宽
- 广泛
- 将
- 中
- 也完全不需要
- 工作
- 合作
- 世界
- 担心
- 将
- 写作
- 年
- 您
- 您一站式解决方案
- 和风网