0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

形式验证及其在芯片工程中的应用

冬至子 来源:长点芯 作者:SJ66 2023-10-20 10:46 次阅读

一:形式验证的基本概念

-> 广义上的形式验证?

形式验证不仅仅是芯片领域中的一个概念。正如文章开头提到过,形式验证强调使用严格的数学推理和形式化技术,以确保系统的行为是否符合预期的性质和规格。所以说只要是可以通过量化方式构建数学模型的系统,都可以使用形式验证来check其功能性以及其他可量化特性。比如:

  1. 软件工程:就拿区块链举个例子。形式验证不仅适用于智能合约本身,还适用于与智能合同交互的去中心化应用。这可以帮助确保整个应用的安全性和正确性。
  2. 金融领域:金融交易的验证是非常重要的,特别是在高频交易和算法交易领域。形式验证可以确保交易的正确性和合规性,防止错误交易和潜在的风险。

-> 芯片工程里的形式验证?

这里拿计数器举一个简单的形式验证示例。请注意,这只是一个简化的示例,实际的形式验证可能涉及更复杂的设计和性质。

假设有一个4位的计数器电路,可以从0计数到15。我们想要验证以下性质:当计数器的值达到最大值15时,下一个计数值应该是0。

设计:计数器电路有一个4位的计数器寄存器,可以递增。当计数器值达到15时,下一个时钟周期应该将计数器重置为0。

形式验证属性:我们使用SystemVerilog的属性规约 (SVA) 来表达这个性质。(一般形式验证的case都使用SVA来编写)以下是一个简化的属性规约示例:

property reset_at_max;
  @(posedge clk) disable iff (!rst_n)
    (count == 4'b1111) |= > (next_count == 4'b0000);
endproperty

assert property (reset_at_max);

在这个属性规约中,我们定义了一个属性 reset_at_max ,它表达了当计数器值为15时,下一个计数值应为0。这个属性在时钟上升沿触发时进行检查。如果属性不满足,将会产生一个验证错误。

在这个示例中,使用仿真进行验证可能需要执行多个时钟周期来验证所有可能的计数序列。但是,使用形式验证可以直接进行数学推理,验证属性在所有可能的情况下是否成立.

除此之外,与基于仿真的验证不同,基于仿真的验证会使用各种输入情景来测试设计以确保其正确行为,形式验证涉及数学分析以验证设计的属性。这些属性可以包括功能正确性、安全性、安全性以及某些类型错误的缺失(例如,竞态条件、死锁等)。

二:形式验证的优势

从上述的例子看来,那么形式验证要优于基于仿真的验证?看似高性能的形式验证,要将它发挥得淋漓尽致也是需要代价的。

其实不然,形式验证也面临着挑战。它可能计算成本高昂,需要专门的专业知识来制定属性并设置验证过程。通常与其他验证技术(如仿真和测试)结合使用,以提供全面的验证策略。形式验证和基于仿真的验证各有其优势和局限性,没有绝对的优劣之分。选择哪种验证方法取决于具体的设计需求、时间和资源限制以及设计的复杂性。

形式验证VS动态仿真

->形式验证的特点:

  1. 高度可靠性 :形式验证提供了数学证明的可靠性,如果设计通过了形式验证,那么可以有很大的信心认为设计是正确的。
  2. 全面性 :形式验证可以覆盖所有可能的状态,从而捕获设计中的所有潜在错误,包括一些难以通过仿真检测到的问题。
  3. 对于复杂设计 :对于复杂的设计,特别是关键性能的设计,形式验证可以帮助发现隐藏的问题和时序错误。

->动态仿真验证的特点:

  1. 易于实施 :基于仿真的验证通常比形式验证更容易实施,可以快速验证设计的基本功能和常见情况。
  2. 资源效率高 :在一些情况下,形式验证可能需要更多的计算资源和时间,而基于仿真的验证可能更具资源效率。
  3. 快速迭代 :基于仿真的验证允许设计团队迅速进行修改和验证,特别适用于快速迭代的设计流程。

可见,trade-off的概念在芯片领域里面处处可见。鱼与熊掌不可得兼。

三:在芯片验证中实现形式验证

形式验证主要由以下几个部分组成:

  1. 性质(Properties) :这些是描述设计所需属性和规格的语句,例如时序关系、状态转换、约束等。常用的
  2. 规约语言 :通常使用形式规约语言,如 SystemVerilog Assertions(SVA)、Property Specification Language(PSL)等,来编写性质和约束。
  3. 定理证明器(Theorem Provers) :这些工具用于推理和证明性质是否成立。它们基于形式化逻辑和推理规则来验证性质。
  4. 模型检查器(Model Checkers) :这些工具用于穷举系统状态空间,检查是否存在满足性质的状态序列。

电子设计自动化 EDA 工具中,许多主要的形式验证工具已经集成到综合工具链中,以帮助硬件工程师验证他们的设计。这些工具通常基于硬件描述语言 (如Verilog或VHDL)

比如:

1. Cadence JasperGold :JasperGold是一个集成式形式验证平台,支持属性规约和模型检查,广泛应用于验证硬件设计。

2. Synopsys VC Formal :VC Formal是Synopsys的形式验证工具,用于验证功能、时序和系统级性质。

四:形式验证的未来

最近几年,学术界

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117764
  • 芯片设计
    +关注

    关注

    15

    文章

    900

    浏览量

    54420
  • 计数器
    +关注

    关注

    32

    文章

    2126

    浏览量

    93006
  • 形式验证
    +关注

    关注

    0

    文章

    8

    浏览量

    5674
  • SVA
    SVA
    +关注

    关注

    1

    文章

    19

    浏览量

    10096
收藏 人收藏

    评论

    相关推荐

    555集成芯片的封装形式

    555集成芯片的封装形式主要有DIP8封装、SOP8封装以及金属封装和环氧树脂封装等。其中,DIP8封装是555芯片的经典封装形式,包含了芯片
    的头像 发表于 03-26 14:44 268次阅读

    芯片验证模块划分

    任何芯片都需要把芯片划分成更便于管理的小模块/特性进行验证
    的头像 发表于 10-07 14:41 352次阅读

    Formal Verify形式验证的流程概述

    Formal Verify,即形式验证,主要思想是通过使用数学证明的方式来验证一个修改后的设计和它原始的设计,在功能上是否等价。
    的头像 发表于 09-15 10:45 504次阅读
    Formal Verify<b class='flag-5'>形式</b><b class='flag-5'>验证</b>的流程概述

    为什么芯片设计中需要做验证呢?验证芯片设计中的重要性

    芯片设计流程中,验证环节是至关重要的一环。它直接关系到芯片的性能、可靠性和成本。
    的头像 发表于 09-11 09:58 1350次阅读

    Testcase在芯片验证中的作用

    随着半导体技术的快速发展,集成电路芯片的复杂度日益增加,芯片设计中的验证工作变得越来越重要。验证的目的是确保芯片在各种工况下的功能正确性和性
    的头像 发表于 09-09 09:32 617次阅读

    一文解读 | 车规芯片验证的流程与展望

    验证、失效分析等方面进行了说明,并对车规芯片量产化过程中实现零缺陷这一目标进行了讨论,分析了国产车规芯片在研制过程中所面临的问题及其局限性,并对其研制方向进行了预测。 引言 随着汽车电
    的头像 发表于 09-08 13:44 434次阅读
    一文解读 | 车规<b class='flag-5'>芯片</b><b class='flag-5'>验证</b>的流程与展望

    什么是芯片封装 芯片封装形式都有哪些

     芯片封装是指将裸露的集成电路芯片封装在适当的外壳中,以便保护芯片并便于安装和连接到电路板上。以下是一些常见的芯片封装形式
    的头像 发表于 09-05 16:27 3242次阅读

    EDA形式化验证漫谈:仿真之外,验证之内

    “在未来五年内仿真将逐渐被淘汰,仅用于子系统和系统级验证。与此同时,形式化验证方法已经开始处理一些系统级任务。随着技术发展,更多Formal相关的商业标准化会推出。” Intel fellow
    的头像 发表于 09-01 09:10 952次阅读

    芯片验证板卡设计原理图:基于VU440T的多核处理器多输入芯片验证板卡

    基于XCVU440-FLGA2892的多核处理器多输入芯片验证板卡为实现网络交换芯片验证,包括四个FMC接口、DDR、GPIO等,板卡用于完成甲方的
    的头像 发表于 08-24 10:58 512次阅读
    <b class='flag-5'>芯片</b><b class='flag-5'>验证</b>板卡设计原理图:基于VU440T的多核处理器多输入<b class='flag-5'>芯片</b><b class='flag-5'>验证</b>板卡

    浅析Formality形式验证里的案件

    在当前的形式验证的领域,主要有两个工具,一个就是Cadence的conformal,另外一个就是Synopsys的formality(以下简称FM)。
    的头像 发表于 07-21 09:56 1088次阅读
    浅析Formality<b class='flag-5'>形式</b><b class='flag-5'>验证</b>里的案件

    什么是形式验证(Formal验证)?Formal是怎么实现的呢?

    相信很多人已经接触过验证。如我以前有篇文章所写验证分为IP验证,FPGA验证,SOC验证和CPU验证
    的头像 发表于 07-21 09:53 5406次阅读
    什么是<b class='flag-5'>形式</b><b class='flag-5'>验证</b>(Formal<b class='flag-5'>验证</b>)?Formal是怎么实现的呢?

    fpga验证及其在soc验证中的作用有哪些

    很多其他行业也能从电子器件的增加受益,当然保障功能安全是大的前提。本文讨论SOC芯片设计验证验证计划和策略以及验证方法。它定义了功能模拟、功能覆盖、代码覆盖以及设计
    的头像 发表于 07-20 09:05 656次阅读

    基于形式验证的高效RISC-V处理器验证方法

    随着RISC-V处理器的快速发展,如何保证其正确性成为了一个重要的问题。传统的测试方法只能覆盖一部分错误情况,而且无法完全保证处理器的正确性。因此,基于形式验证的方法成为了一个非常有前途的方法,可以更加全面地验证处理器的正确性。
    的头像 发表于 06-02 10:35 1026次阅读

    《深入理解微电子电路设计——数字电子技术及其应用》+做芯片的不做芯片的都来看一看!

    很荣幸能参与论坛此次赠书活动,感谢短短及其他论坛的同仁的信任。在过去的2两年里,我阴差阳错的从医疗行业转入了半导体行业,虽然本身不是做芯片设计相关工作,但是也算赶上了半导体的这场大跃进。地缘政治
    发表于 05-29 22:24

    浅析芯片验证中的scoreboard

    芯片验证中,我们随机发送数据激励,同时使用scoreboard进行数据完整性检查。
    的头像 发表于 05-04 17:32 591次阅读
    浅析<b class='flag-5'>芯片</b><b class='flag-5'>验证</b>中的scoreboard