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

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

3天内不再提示

介绍3个时序优化的RTL改动及其中Formal SEC的角色

冬至配饺子 来源:芯片验证工程师 作者:验证哥布林 2022-08-09 15:44 次阅读

修复关键路径时序一直都是数字IC designer最耗时的工作任务之一,而且伴随着同一个RTL设计应用于不同的业务场景,时序、面积和功耗的约束也是不同的,所以时序优化的方向也是多变的。

简单来说,时序优化的任务是常见的,并不是说RTL写得足够好,就不存在后续的时序优化迭代。

本文介绍3个时序优化的RTL改动以及在其中Formal SEC的角色。

logic redistribution

其中一种比较常用的关键时序修复方法是将两个pipe之间的组合逻辑重新分配

这个道理就是木桶原理,限制同步设计时钟频率的路径就是关键时序路径,如果一个木桶中所有的木板长短都是一样的,那就是没有短板,或者说全部都是短板。

pYYBAGLyD9-AWwBQAABughnhE9A516.png

如上图所示,上方的设计是存在时序问题的设计,在第1个PIPE和第2个PIPE之间有一个比较长的组合逻辑,通过组合逻辑重新分配,让组合逻辑在2个PIPE比较均匀地分配就可以优化这类时序问题。

注意:前提是保证端到端功能是一致的,即使中间阶段寄存器的状态可能不一致。由于中间寄存器的状态不一致所以不能够使用combinational FEV,只能使用sequential FEV或者transaction FEV。

经验表明,这种时序优化有非常非常大的概率引入bug。修复时序的前提的保证功能,方向错误,跑得越快,越不是好事情

这种由于修复时序引入的bug很容易通过修改前RTL(SPEC RTL)和修改后RTL(IMP RTL)之间的等价性(sequential FEC)比对来确保设计的时序优化修改没有引入新的bug。

critical path reduction

在某些情况下组合逻辑重分配不可行时,可能需要将一个比较长的组合逻辑分拆成并行的2个比较小的组合逻辑,然后在后面的PIPE使用逻辑再汇聚在一起,如下图所示。

poYBAGLyD_KANLMKAACKaiIr58o587.png

对于上面的修改,上方的设计存在时序问题,下方的设计是优化后的问题,这个转化的过程同样非常非常容易导致bug的引入,也同样可以通过FEC来保证。

Pipeline optimizations

随着这个RTL设计的不同应用场景需求变化(工艺变化、业务场景变化、算法变化以及物理实现的变化等等),designer发现时序无论如何也无法优化,只能够以牺牲latency的代价增加pipe数来优化时序。又或者发现可以减少pipe来优化latency,提升芯片的局部性能。

注意:同样需要保证端到端的功能一致。

pYYBAGLyEAiABaFMAABobskMfyg210.png

如上图所示,上方是优化前的设计,下方是优化后的设计(减少了一个pipe)。

对于这种pipe个数变化,但是端到端功能不变的修改,同样可以使用sequential FEC来进行等价性比对。只不过有所区别的是,需要指定比对是latency差异


审核编辑:刘清

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

    关注

    31

    文章

    5334

    浏览量

    120211
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59752
  • 数字IC
    +关注

    关注

    1

    文章

    38

    浏览量

    12543
收藏 人收藏

    评论

    相关推荐

    进行RTL代码设计需要考虑时序收敛的问题

    更快,而一坏的代码风格则给后续时序收敛造成很大负担。你可能要花费很长时间去优化时序,保证时序收敛。拆解你的代码,添加寄存器,修改走线,最后让你原来的代码遍体鳞伤。这一篇基于赛灵思的器
    的头像 发表于 11-20 15:51 3964次阅读
    进行<b class='flag-5'>RTL</b>代码设计需要考虑<b class='flag-5'>时序</b>收敛的问题

    优化 FPGA HLS 设计

    优化 FPGA HLS 设计 用工具用 C 生成 RTL 的代码基本不可读。以下是如何在不更改任何 RTL 的情况下提高设计性能。 介绍 高级设计能够以简洁的方式捕
    发表于 08-16 19:56

    FPGA中的I_O时序优化设计

    FPGA中的I_O时序优化设计在数字系统的同步接口设计中, 可编程逻辑器件的输入输出往往需要和周围新片对接,此时IPO接口的时序问题显得尤为重要。介绍了几种FPGA中的IPO
    发表于 08-12 11:57

    FPGA的时序优化高级研修班

    FPGA的时序优化高级研修班通知通过设立四大专题,帮助工程师更加深入理解FPGA时序,并掌握时序约束和优化的方法。1.FPGA静态
    发表于 03-27 15:20

    推荐一时序优化的软件~~

    Hi,以前在学校的时候就经常遇见时序收敛的问题,尤其是改RTL好麻烦啊。工作以后和朋友们一起做了时序优化的软件,叫InTime,希望可以帮
    发表于 05-11 10:55

    vivado:时序分析与约束优化

    转自:VIVADO时序分析练习时序分析在FPGA设计中是分析工程很重要的手段,时序分析的原理和相关的公式小编在这里不再介绍,这篇文章是小编在练习VIVADO软件
    发表于 08-22 11:45

    时序逻辑等效性的RTL设计和验证流程介绍

    关于时序逻辑等效性的RTL设计和验证流程介绍
    发表于 04-28 06:13

    介绍RTL设计引入的后端实现过程中的布线问题

    问题。下面举两RTL级别优化电路走线问题的示例:1、大扇入在上面的电路中一MUX电路具有非常大的扇入(8X128=1024)。可以通过级联MUX
    发表于 04-11 17:11

    你知道RTL时序优化迭代的技巧有哪些吗

    时需要能感知Critical path,并算出其大概的逻辑级数。3.可以考虑关键微架构打散重构。时序优化不动微架构可能走不太远。4.对多级Pipeline进行调整和规划。流水线上每一级的逻辑都要均匀和紧凑
    发表于 06-23 15:43

    A Roadmap for Formal Property

    What is formal property verification? A natural language such as English allowsus to interpret
    发表于 07-18 08:27 0次下载
    A Roadmap for <b class='flag-5'>Formal</b> Property

    时序分析的优化策略详细说明

    本文档的主要内容详细介绍的是FPGA的时序分析的优化策略详细说明。
    发表于 01-14 16:03 17次下载
    <b class='flag-5'>时序</b>分析的<b class='flag-5'>优化</b>策略详细说明

    时序分析的优化策略详细说明

    本文档的主要内容详细介绍的是FPGA的时序分析的优化策略详细说明。
    发表于 01-14 16:03 19次下载
    <b class='flag-5'>时序</b>分析的<b class='flag-5'>优化</b>策略详细说明

    如何降低面积和功耗?如何优化电路时序?

    1、如何降低功耗? (1) 优化方向: 组合逻辑+时序逻辑+存储 (2) 组合逻辑:   (a)通过算法优化的方式减少门电路   (b)模块复用、资源共享 (3)
    发表于 02-11 15:30 2次下载
    如何降低面积和功耗?如何<b class='flag-5'>优化</b>电路<b class='flag-5'>时序</b>?

    可以通过降低约束的复杂度来优化Formal的执行效率吗?

    我们可以通过降低约束的复杂度来优化Formal的执行效率,但是这个主要是通过减少Formal验证空间来实现的,很容易出现过约,导致bug遗漏。
    的头像 发表于 02-15 15:14 868次阅读

    Formal Verification的基础知识

    通过上一篇对Formal Verification有了基本的认识;本篇将通过一简单的例子,感受一下Formal的“魅力”;目前Formal Tool主流的有Synopsys的VC
    的头像 发表于 05-25 17:29 2607次阅读
    <b class='flag-5'>Formal</b> Verification的基础知识