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

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

3天内不再提示

如何在数字IP设计中节省时间

PCB线路板打样 来源:LONG 2019-08-08 17:13 次阅读

众所周知,验证任务在数字IP的设计以及SoC的设计中占有重要地位。 RTL代码和功能覆盖率的目标是达到100%,从而最大限度地缩短获得它的时间。最广泛使用的方法是基于通用验证方法(UVM)随机约束测试(系统Verilog或 e 语言),允许在相对短的时间内构建复杂的测试,同时强调RTL代码和跟踪功能覆盖。一些验证工程师还使用正式的方法来验证块的专用部分,例如标准接口,从而完成IP的验证。

本文将介绍基于正式方法的数字IP验证的不同方法,通过定义属性详尽地验证功能。正式方法具有避免开发测试台的优点。这一新流程已在数字IP设计过程中使用,并已证明可显着缩短验证时间。

通用验证流程

目前,用于验证数字IP和片上系统(SoC)的最常用流程是基于UVM,通过使用第三方提供的验证组件(VC)或非标准时从头开发使用协议。然后用记分板完成测试平台以进行自我数据检查,断言用于验证设计的特定部分,覆盖用于跟踪功能覆盖。在过去几年中,正式验证已经开始用于SoC和IP的验证流程。在SoC中,形式验证在SoC外围设备和焊盘之间的连接验证中变得非常普遍,主要是当多路复用方案由连接到减少数量的焊盘的多个外围设备形成时,这增加了需要验证的组合。有时,在IP验证中,正式方法用于检查总线协议接口和寄存器访问策略。

现在,关注数字IP的验证,我们可以总结如图所示的流程1.当第一版RTL准备就绪时,良好验证流程的第一步从验证和测试计划的定义开始。在这个阶段,我们将定义我们想要检查的功能和测试的框架。

下一步是开发UVM测试台;自定义UVM块用于检查特定的IP功能,而第三方UVM VC则实例化并绑定在RTL上。

此时,我们可以根据验证计划开发UVM测试。每个验证工程师需要牢记的第一件事是测试必须是自我检查;必须使用记分板,检查器和断言自动检查验证计划中列出的任何点。然后,广泛使用覆盖结构可以量化测试的好坏。

如何在数字IP设计中节省时间

图1:数字IP的通用验证流程

有时,此流程可能包括形式验证。在任务的某个阶段,有人可能决定通过使用基于断言的验证IP(ABVIP)和通过编写断言通过有限状态机(FSM)实现的精确功能来检查IP的特定块,例如总线协议接口。

我们知道,验证任务是一个迭代过程,有两个主要的环回:

RTL错误修复

功能和代码覆盖

每当我们发现功能规范与IP行为不匹配时,我们就会向设计人员发出可能的错误信号。这意味着需要修改RTL并发布新的固定版本。现在,进行回归自检测试(即使最初是部分测试)也是一个关键点,它允许我们验证RTL代码没有回归,当然,错误已经修复。这种环回也可以来自形式验证。

当开发了足够数量的测试时,测量功能和代码覆盖率是一个很好的做法。像往常一样,功能和代码的目标是100%,但我们必须考虑到达它的时间。如果我们想要最小化时间,同时保持100%的目标,我们必须改进验证的方法和流程。来自正式世界的一个好建议是代码不可达性分析,它有助于发现无法访问的RTL部分,并且可以从整体代码覆盖率中删除。

一个好的经验法则:'如果我没有运用代码的一部分,很可能是那里存在错误。'因此,我们花了很多时间才能刺激未覆盖的代码,但知道某个部分无法访问可以让我们节省时间和精力。

接下来,我们将描述一个新的流程,其主要目标是缩短用于验证数字IP的时间。保持覆盖目标。

新的验证流程

正式方法是一种详尽的验证,当它是适用时,它使人们能够在更短的时间内和每种可能的条件下检查块的功能。对于常见的动态模拟,这有时是不可行的。

目前,有几种工具可以链接到正式引擎,这些工具已经足够成熟,可以使图1所示的验证流程变为如图2所示的内容。 。

主要的变化是将形式验证作为流程的第一步。真正的第一个检查是对死代码和未初始化寄存器的分析。这是一项零工作任务,因为不需要额外的代码,并且它只需要使用Formal工具编译RTL。随后的反馈可能非常有用,因为它可以让我们彻底清理RTL代码,突出显示从未到过的部分,以及列出可能导致'X'传播的未初始化触发器

毫无疑问,通过使用专用的基于断言的VIP(ABVIP),可以在短时间内完全验证诸如微处理器总线接口之类的标准协议。 Formal流的这些验证组件基于描述协议的断言。验证工程师将专注于失败属性的调试,而无需花时间在测试平台和房地产开发上。通过使用UVM流,我们可以在几天而不是几周内完全验证接口。

可以通过编写自定义属性来验证IP的特定块,以验证已实现的功能。可以使用新的选项,例如引入具有与UVM 记分板相同的众所周知的概念的Formal 记分板,但是利用了Formal引擎的强大功能。它可用于验证FIFO,通常用于处理数据路径流但不是算术数据路径的每个块(例如加法器,乘法器)。

如今,主要的EDA公司制作了基于Formal流程的工具,这些工具使用时髦的技术词汇:'APP'。这个概念是为“特定功能”的调试提供“随时可用”的环境。这些APP自动生成断言,并允许验证工程师专注于调试RTL。

最有用的APP之一是用于验证配置寄存器的访问策略的APP。通过Formal流程,我们可以详尽地验证所有寄存器,尤其是最难验证的状态位,因为它们通常取决于HW状态或特殊输入条件。通常,流程基于IPXACT,然后也可以在设计开发的其他步骤中重复使用。此外,在这种情况下,这种验证可以节省很多时间相对于'经典'UVM随机约束方法。

如何在数字IP设计中节省时间

图2:新数字IP的验证流程

可用APP的数量正在快速增长,这将允许将验证任务从动态移动到静态,从而改善覆盖范围并缩短验证时间。当然,正式流程有一些局限性,目前无法用于验证所有内容;当要分析的状态数(即“形式复杂性指数”)太大时,引擎无法收敛并彻底分析代码。这是一项挑战,可以通过引入新算法和计算能力在不久的将来克服这一挑战。无论如何,我们不能声称正式流程将超过动态模拟,原因很简单:使用'假设'语句会引入隐藏错误的风险,如果属性成功,则有可能如果在实际应用程序中未满足假设条件,则RTL行为将是错误的。这完全类似于静态时序分析(STA)和门级仿真:如果时序约束错误,STA表示设计中没有时序违规,但最终设计不适用于某些极端情况。动态模拟允许我们验证形式'假设'语句以及STA约束。

由于这些原因,验证流程的下一步需要进行UVM模拟,提升通过正式步骤中成功的属性断言,现在也可以在动态模拟中重复使用。在这个新流程中开发的测试数量将少于使用图1所示流程开发的测试数量,因为我们可以专注于正式流程中发现的部分,并为使用它分析的部分开发有限的测试。

图2所示流程的最后几个步骤基本相同:我们运行不可达性分析以删除无法访问的代码,然后分析代码和功能覆盖。

结论

使用形式验证方法作为流程的第一步,代表了一种不同的方法,可以更好地利用正式的好处和有效性:零时间用于构建测试平台和RTL的详尽验证。此外,使用这种方法的学习曲线比UVM更快;用于编写断言的语言是紧凑的(PSL或SVA)并且易于使用。最困难的工作是用人类语言定义最能描述我们想要证明的功能的正确属性。转换为SVA或PSL变得简单易行。

在RTL验证的早期阶段使用形式化方法的主要优点是使用更清晰的代码进入动态模拟,其中许多功能已经过彻底验证并且修复了一些错误。由于正式方法允许我们缩短在验证功能上花费的时间,因此可以大大缩短整体验证时间。

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

    关注

    5

    文章

    1429

    浏览量

    148512
  • PCB打样
    +关注

    关注

    17

    文章

    2965

    浏览量

    21447
  • 华强PCB
    +关注

    关注

    8

    文章

    1831

    浏览量

    27528
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42644
收藏 人收藏

    评论

    相关推荐

    群里ucos资料总结,为大家节省时间,大多都在这啦

    群里ucos资料总结,为大家节省时间,大多都在这啦
    发表于 09-13 23:43

    无线传感器模块节省时间

    用预先认证的无线传感器模块可以节省大量的开发时间和金钱。在这种情况下需要做的就是选择您需要的无线传感器模块并将其直接集成到您的系统。Maxim的MAXWSNENV#无线传感器节点演示器套件有许多
    发表于 10-30 14:35

    包含10个函数的库每个函数消耗了多少时间

    我已经建立了一个包含10个函数的库。我想知道每个函数消耗了多少时间。理想情况下,我们可以用一个示波器关闭并在引脚上进行探测,但是如果我们在MPLABX中有任何工具,它将节省时间。所以问题是,我们有没有(免费)设置断点和监控时间
    发表于 08-05 10:49

    USART使用DMA时可以节省时间吗?

    USART使用DMA时可以节省时间吗?
    发表于 12-02 07:21

    通过节省时间和成本的创新技术降 低电源的EMI

    通过节省时间和成本的创新技术降 低电源的EMI分析了开关模式电源的 EMI,并提供了一些可帮助设计人员快速且轻松地通过业界通用 EMI 测试的技术什么是 EMI? EMI 是一种电磁
    发表于 01-25 18:48

    如何通过电源设计节省时间和空间

    不断进步,传感器制造商开始将更多功能集成到这些设备,同时通过二进制传感器降低噪声敏感性。在二进制传感器,数据仍仅限于单向通信,工厂车间仍需要技术人员来处理手动校准等任务。图 1. 数字制造环境依赖智能
    发表于 03-17 14:22

    何在应用程序寻找日历设置图形?

    我正在寻找下图中的示例。为了节省时间,我想在我的应用程序重复使用这些图形(我猜这些图形是免费的)。谢谢!
    发表于 01-10 08:04

    何在信号链设计器使用现有参考设计

    了解如何在信号链设计器使用现有参考设计,选择正确的器件,从而实现节省时间的目标。
    的头像 发表于 07-02 06:00 2232次阅读

    你见过物联网冰箱吗

    节省时间和精力,又提升生活品质。
    发表于 06-19 09:32 2847次阅读

    通过节省时间和成本的创新技术降低电源中的EMI

    通过节省时间和成本的创新技术降低电源中的EMI。
    发表于 06-09 09:53 20次下载

    15个节省时间的Jupyter技巧!

    要在Jupyter notebook中使用多个游标,可以按住Alt键并单击所需的位置。这将在每个点击的位置创建一个游标。然后你可以像往常一样进行编辑,更改将同时应用于所有位置。
    的头像 发表于 01-05 15:35 516次阅读

    如何通过电源设计节省时间和空间

    从工业物联网 (IIoT) 到网络基础设施设备,下一代电子系统正在注入新的智能,在不断缩小的空间中需要更多功率,而不会影响热预算。因此,传统的解决方案并不合适。然而,考虑到上市时间的压力,设计人员没有大量的时间来设计电源,他们必须在有限的空间内努力散热,同时满足冲击、振动
    的头像 发表于 06-28 18:02 424次阅读
    如何通过电源设计<b class='flag-5'>节省时间</b>和空间

    参考设计节省时间和精力

    为什么要重新发明轮子,尤其是在紧迫的项目期限总是迫在眉睫的情况下?借助可免费下载的参考设计,您可以快速了解您的应用程序,并将任何开发风险降至最低。我们的参考设计是完整的应用电路,包括至少一个Maxim IC,由我们的工程师设计、构建和广泛测试。
    的头像 发表于 06-29 16:25 473次阅读
    参考设计<b class='flag-5'>节省时间</b>和精力

    Vivado那些事儿:节省编译时间系列文章

    虽然想必您知道,在综合或实现阶段,增量运行可以从参考文件中读取和复制信息,但仅在某些阶段中能节省时间,如果网表发生大量更改,其中引用的内容就会减少,编译时间也会受到相应影响。
    的头像 发表于 10-09 16:48 1298次阅读
    Vivado那些事儿:<b class='flag-5'>节省</b>编译<b class='flag-5'>时间</b>系列文章

    科技驱动未来,提升AI算力,GPU扩展正当时

    GPU可以大幅缩短AI算法的训练和推断时间,从而节省时间和成本
    的头像 发表于 04-16 18:22 726次阅读
    科技驱动未来,提升AI算力,GPU扩展正当时