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

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

3天内不再提示

形式验证成为SoC模块验证的主流

星星科技指导员 来源:嵌入式计算设计 作者:David Kelf 2022-06-13 10:25 次阅读

使用形式验证技术作为片上系统 (SoC) 设计的主流技术,终于成为消除验证差距的公认方法。最近的一项调查表明,26% 的芯片设计项目现在使用基于断言的正式验证 (ABV)。然而,这种经典模拟的替代方法的承诺需要很多年才能开花结果,而且仍然只有高级验证环境才能包含它。为什么会这样?到目前为止,我们可以从它的使用中学到什么,以便将其提供给整个 SoC 工程社区?

SoC 块验证碰壁

自问世以来,SoC 设备一直是开发团队的验证噩梦。虽然现在验证完整的 SoC 最好留给仿真和快速原型设计系统来完成,但即使是这些设备上的较大块也已经超出了纯仿真环境。

仿真、更快的模拟器、关键测试的验证知识产权 (VIP) 以及通用验证方法 (UVM) 的出现都有助于缓解这种情况。尽管如此,验证要求仍超过了基于模拟的环境中的可用处理时间。

形式验证通过使用针对特定需求的自动化“应用程序”有助于改进块验证,否则需要大量的模拟工作。检查标准通信协议的正确操作、确保关键连接和寄存器操作、分析域重置时的正确启动序列以及许多其他任务现在都由这些解决方案处理。

然而,我们才刚刚开始挖掘形式验证的真正威力。它的许多使用问题已被消除,使我们处于可能是全新验证时代的最前沿,因为该技术已部署用于核心验证。

形式验证:如果这么好,今天在哪里?

首先,快速回顾一下形式验证技术,为什么它有可能创造这种根本性转变,以及今天是什么阻止了它。

硬件仿真的工作原理是通过一系列有意义的状态循环一个硬件描述语言 (HDL) 代码块来演示其操作。此状态序列由输入激励(设备输入上的一组事件的 HDL 描述)驱动,旨在探索正确的状态以识别操作问题。

这种方法引出了一个问题:如果我们知道代码块可以进入的所有状态以及状态间转换,那么我们不能简单地询问有关代码操作的问题以确保其正确吗?这将避免必须编写许多行刺激来尝试使代码块进入正确的信息承载状态。这是形式验证工具使用的方法。

这种基本方法可以转变为许多有用的应用程序。例如,如果可以根据设计代码的一个方面和要检查的验证场景自动创建要问的问题,则可以创建用于验证目的的自动化应用程序。这将不需要用户编写问题。如果正式工具可以用最少的输入演示特定的状态序列(例如状态机操作),那么设计工程师就可以理解他或她的代码如何执行,从而揭示可能的错误。

工程师自己提出问题时,形式验证的真正威力才得以发挥。这需要使用断言编写问题或属性,并在称为基于断言的验证或 ABV 的过程中应用于设计。

当然,这种高级描述掩盖了 ABV 的问题,包括存储这么多信息的工具的容量和性能要求已经通过最新技术得到解决。

两个问题仍然是 ABV 广泛使用的障碍:

断言的创作,通常使用 SystemVerilog 标准语法,可能很复杂且难以可视化

对验证进度或覆盖率的理解很难与其他验证方法的理解和对比

尽管在这两个方面都取得了进步,但还需要更多的努力来降低学习曲线,从而使 ABV 得以普遍扩散。

ABV 应用程序

在验证过程中应用 ABV 有两种常用方法。首先是检查特定的极端案例类型的问题,这些问题通常需要花费大量精力来构建模拟测试平台来分析问题。第二个是对块进行更一般的检查,无论是结合模拟还是独立检查。

形式验证的第一个使用模型很有价值,可以在验证计划中减少合理的百分比。第二个模型有可能改变特征验证过程,节省大量时间和资源支出,同时增加发现设计中每个错误的整体潜力。已经有一些行业部门在第二种模式中广泛使用 ABV。其中包括汽车和航空电子产品,其中高质量和可靠性是一个因素。

在组合仿真-形式验证流程中,如图 1 所示,通常使用仿真进行一般操作分析并“感受”设计的行为和性能。此外,还有一些功能更适合模拟,例如数学数据处理或信号处理。然而,形式验证非常适合控制或数据传输种类的功能,如有限状态机、数据通信和协议检查。此外,确保某些类型的验证场景,例如安全检查(例如,某项活动是否会发生),也是该技术的最佳选择。这些代码和场景示例通常需要很高比例的验证资源。

poYBAGKmoCuAHonyAAFT4LasB6g661.png

断言创作改进

与 UVM 推动模拟测试台创建的分层方法相同,新技术正在出现,将抽象引入断言创作。这些抽象通过掩盖断言细节来降低复杂性,同时允许工程师考虑验证任务而不是断言的个别特征。

例如,OneSpin 解决方案的 Operational Assertions 是一个 SystemVerilog 库,它允许正式测试以类似事务时序图的方式表示,与验证工程师广泛认可的高级 UVM 序列不同。Breker Verification Systems 的基于图形的测试序列,现在由 Accellera Portable Stimulus 标准委员会考虑,是另一种抽象形式,也可以应用于断言创作。

这些技术在简化形式测试应用的同时,具有提供可识别且更自然的输入方案的优势,允许工程师通过消除一些形式验证之谜来与正在进行的验证过程相关联。

常见的覆盖模型

简化断言只是难题的一部分。该过程的另一端是整理来自各种来源的覆盖率信息,以了解总体验证进度,无论使用何种工具。模拟过程仍然主要集中在一种或另一种代码覆盖上,并包含一些功能覆盖。形式验证覆盖侧重于断言(所谓的“断言覆盖”),无论它们是否被执行,它们是通过还是失败,或者确实它们通过一个警告(例如,有界证明,例如“代码在一定数量的时钟周期内通过”)。该信息可以反馈给验证计划系统以提供一些有用的数据。

然而,测量正式的覆盖率,确定由特定断言测试的实际代码,是领先的形式验证供应商感兴趣的领域。已经提出了在精度和所需执行资源方面都不同的方案。关键是能够将这些正式模型与模拟模型进行比较,以提供综合的、有意义的覆盖率评估。Accellera 统一覆盖互操作性标准 (UCIS) 委员会专注于这一目标,并提出了可以将两者进行比较的方法。在这方面需要做更多的工作,但很明显,一些形式验证供应商拥有允许计算合理的进度度量的解决方案。

模拟风格调试

以对以仿真为中心的工程师有意义的方式调试形式验证代码,在很大程度上已被许多形式验证供应商解决。大多数工具可以在断言失败的情况下输出“见证”。也就是说,导致断言失败的仿真波形形式的一系列事件。事实上,包括 OneSpin 在内的一些供应商可以输出模拟测试,允许在模拟器中重现故障以供进一步研究。

破解主流ABV代码

很明显,ABV 的使用开始成为主流。ARMOracle 都宣布了 ABV 在其环境中的全部功能,并指出它现在在他们的项目中被大量使用。

解决 Assertion Authoring、Collated Coverage 和 Simulation-centric Debug 这三条腿的问题,并将其与对形式验证擅长的设计领域和场景的清晰理解相结合,将推动这种方法成为 SoC 验证的主流。一旦发生这种情况,将对未来的设计质量和开发进度产生巨大影响。

审核编辑:郭婷

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

    关注

    134

    文章

    8651

    浏览量

    361782
  • soc
    soc
    +关注

    关注

    38

    文章

    3745

    浏览量

    215678
  • 仿真
    +关注

    关注

    50

    文章

    3872

    浏览量

    132161
收藏 人收藏

    评论

    相关推荐

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

    形式验证不仅仅是芯片领域中的一个概念。正如文章开头提到过,形式验证强调使用严格的数学推理和形式化技术,以确保系统的行为是否符合预期的性质和规
    的头像 发表于 10-20 10:46 471次阅读

    芯片的验证模块划分

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

    Formal Verify形式验证的流程概述

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

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

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

    基于VMM验证方法学的MCU验证环境

    的。此外,设计不断地重用,而验证也希望能够重用一样的验证模块,这就催生了层次化的验证方法。Synopsys的 VMM验证方法学提供了基于Sy
    的头像 发表于 08-25 16:45 624次阅读

    SoC芯片设计验证详解

    汽车外,还有很多其他行业也能从电子器件的增加受益,当然保障功能安全是大的前提。本文讨论SOC芯片设计验证验证计划和策略以及验证方法。它定义了功能模拟、功能覆盖、
    的头像 发表于 07-31 23:45 886次阅读
    <b class='flag-5'>SoC</b>芯片设计<b class='flag-5'>验证</b>详解

    浅析Formality形式验证里的案件

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

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

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

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

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

    移动SoC的时钟验证

    移动电话技术的进步不断挑战极限,要求SoC在提供不断提升的性能的同时,还能保持较长的电池续航时间。为了满足这些需求,业界正在逐步采用更低的技术节点,目前的设计都是在5纳米或更低的工艺下完成的。在这
    的头像 发表于 07-17 10:12 467次阅读
    移动<b class='flag-5'>SoC</b>的时钟<b class='flag-5'>验证</b>

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

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

    为什么SoC验证一定需要FPGA原型验证呢?

    在现代SoC芯片验证过程中,不可避免的都会使用FPGA原型验证,或许原型验证一词对你而言非常新鲜,但是FPGA上板验证应该是非常熟悉的场景了
    发表于 05-30 15:04 986次阅读
    为什么<b class='flag-5'>SoC</b><b class='flag-5'>验证</b>一定需要FPGA原型<b class='flag-5'>验证</b>呢?

    SoC仿真验证到FPGA原型验证的时机

    我们当然希望在项目中尽快准备好基于FPGA原型验证的代码,以便最大限度地为软件团队和RTL验证人员带来更客观的收益。
    发表于 05-30 11:10 804次阅读
    从<b class='flag-5'>SoC</b>仿真<b class='flag-5'>验证</b>到FPGA原型<b class='flag-5'>验证</b>的时机

    SoC设计的IO PAD怎么移植到FPGA原型验证

    FPGA原型验证系统要尽可能多的复用SoC相关的模块,这样才是复刻SoC原型的意义所在。
    发表于 05-23 16:50 417次阅读
    <b class='flag-5'>SoC</b>设计的IO PAD怎么移植到FPGA原型<b class='flag-5'>验证</b>

    FPGA原型验证系统中复制功能模块的作用

    在进行FPGA原型验证的过程中,当要把大型的SoC进行FPGA原型验证时,有时候会遇到一种情况,同样的接口分两组出去到不同的模块,而这两个模块
    的头像 发表于 05-04 16:21 453次阅读
    FPGA原型<b class='flag-5'>验证</b>系统中复制功能<b class='flag-5'>模块</b>的作用