FPGA时序分析和约束(15)——多周期路径

这篇具有很好参考价值的文章主要介绍了FPGA时序分析和约束(15)——多周期路径。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录:

FPGA时序分析与约束(0)——目录与传送门https://ztzhang.blog.csdn.net/article/details/134893857

一、概述

        在前文中,我们知道了时序异常可以分成3种类型,分别是虚假路径、多周期路径、最小延迟和最大延迟,我们已经详细介绍过来虚假路径,本文中,我们来介绍多周期路径。

        默认情况下,时序工具都是以单周期为单位进行时序路径分析。但是在实际的设计中,单周期对于某些逻辑可能不太准确,导致对它们的时序要求过高,最终造成布线资源的浪费。

        这种情况下,就需要设计人员进行一些额外的约束(设置为多个周期)来放宽对这些路径的约束,这样的路径就称为多周期路径。

二、多周期路径的SDC命令

        用于将路径声明为多周期路径的SDC命令如下:

set_multicycle_path    [-setup]
                       [-hold]
                       [-rise][-fall]
                       [-start][-end]
                       [-from from_list]
                       [-to to_list][-through through_list]
                       [-rise_from rise_from_list]
                       [-rise_to rise_to_list]
                       [-rise_through rise_through_list]
                       [-fall_from fall_from_list]
                       [-fall_to fall_to_list]
                       [-fall_through fall_through_list]
                       path_multiplier
                       [-comment comment_string] 
  • path_multiplier 参数是必须指定的,它就是多周期约束中最重要的“多”的体现,即用于设置修改约束路径分析的时钟周期数,该参数的取值必须是大于0的整数。
  • -setup和-hold选项用于指定约束命令所针对的是路径的建立时间分析(-setup)还是保持时间分析(-hold)。
  • -start和-end选项用于指定约束命令的<path_multiplier>参数是以源时钟(-start)还是以目标时钟(-end)作为参考时钟。
  • -from指定约束路径的起始节点
  • -to指定约束路径的终止节点
  • -through指定约束路径所经过的节点

        其中-through是可选项,-from和-to可以同时指定,也可以只指定其中一个,例如当约束语法中只有-from,就意味着约束将覆盖所有从当前指定起始节点开始的路径。

三、建立/保持规格

        我们首先设定一个大前提,那就是启动元器件和捕获元器件由同一个时钟触发。在默认情况下,setup/recovery分析时的默认的<path_multiplier>参数为1,hold/removal分析时的默认的<path_multiplier>参数为0。使用set_multiplier进行多周期约束,就是要改变时序工具默认的1和0的<path_multiplier>参数。

        需要特别说明的是,保持(hold)时间关系和建立(setup)时间关系是紧密相连的,大多数情况下,可以用以下公式进行计算:

保持时间的时钟周期数 = 建立时间的<path_multiplier>参数  -1 - 保持时间的<path_multiplier>参数

        我们考虑如下的情况:

FPGA时序分析和约束(15)——多周期路径,关于时序分析的那些事,fpga开发,IC验证,fpga,数字IC设计,时序分析

        在未进行多周期约束之前,时序工具假设启动触发器在A沿启动数据。对于建立分析,考虑在B沿获取数据,因此,在A沿和B沿之间分析建立关系。

        在进行多周期约束时,使用-setup可以使建立分析的捕获沿根据指定的周期数进一步远离A向右移动到C/D等。我们假设进建立的捕获沿通过-setup移动到D沿。出于保持分析的目的,时序分析工具会立即考虑捕获触发器的前一个沿(启动时钟和捕获时钟相同时)。因此,为例捕获保持分析考虑使用C沿。为了保持分析使用-hold开关将捕获沿向左移到B/A,这取决于指定的周期数。一般的做法是,将保持检查恢复到A沿。如果保持检查没有回到A沿,则可能导致路径中插入缓冲器来确保有一定的延迟,这些缓存器会占用硅片的面积和功率。

        基于上述的假设,我们将建立沿移动了3个周期(使其到达D沿)。保持沿自动移动到C沿(前一个沿)。现在,为了恢复它,必须将其移动到两个周期。这可以通过使用-hold开关来实现。

        为了将保持沿移回到A,我们将其移动了两个周期(C->A)。现在它与启动沿处于同一个沿,即在第0个沿(启动沿认为是原点)。

        需要特别注意的是,-setup开关指定周期到(不是“通过”)建立捕获沿将向右移动的周期;-hold开关指定周期通过(不是“到”)保持捕获沿向左移动的周期。如果建立沿移动到第N个沿,则保持沿自动移动到第N-1个沿。为了将其恢复到原始位置,保持检查需要向后移动N-1个周期,使其回到“0”沿。多周期路径规格通常可以在成对的-setup和-hold中找到。如果没有给出-hold规格,则由于建立沿的移动,保持沿保持在其已经移动到的位置。

四、小结

        多周期路径为指定的路径提供了额外的宽松。在指定多周期路径时,我们应该注意:(1)不可预知的路径不能称为多周期路径(2)允许的额外时间量应该与预期的一致。如果路径受限于(即多周期规格允许信号达到更宽的范围)设计的路径,则元器件可能无法以所需的频率运行。

        当我们通过多周期路径规格移动建立沿时,保持沿也会移动。我们需要检查保持沿是否需要恢复到初始位置。在大多数情况下,应该恢复。如果没有恢复保持沿,则设计可能在数据路径中有额外的缓冲器,以增加延迟来满足增加的保持要求。这将导致硅片面积和功耗的增加。文章来源地址https://www.toymoban.com/news/detail-828873.html

到了这里,关于FPGA时序分析和约束(15)——多周期路径的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA时序分析与时序约束(二)——时钟约束

    目录 一、时序约束的步骤 二、时序网表和路径 2.1 时序网表 2.2 时序路径  三、时序约束的方式 三、时钟约束 3.1 主时钟约束 3.2 虚拟时钟约束 3.3 衍生时钟约束 3.4 时钟组约束 3.5 时钟特性约束 3.6 时钟延时约束         上一章了解了时序分析和约束的很多基本概念(FP

    2024年02月03日
    浏览(54)
  • FPGA时序约束与分析(1) --- 时序约束概述

    本系列参考文献 — FPGA时序与约束分析-吴厚航 FPGA从综合到实现需要的过程如下:synth_design - opt_design - place-design - phys_opt_design - route_design 1、时序约束的理解 2、时序约束的基本路径 3、时序约束的步骤 4、时序约束的主要方法 5、查看相关时序信息 FPGA的设计约束分为物理约束

    2024年02月16日
    浏览(24)
  • FPGA的时序分析、约束和收敛(1)----什么是时序分析?什么是时序约束?什么又是时序收敛?

    文章目录         写在前面         磨刀不误砍柴工         什么是时序分析?         什么是时序约束?         什么是时序收敛?         时序约束与分析是FGPA开发过程中一项必备的技能,同时也是设计开发中相对较难的部分。很多人一谈起FPGA开

    2024年02月12日
    浏览(26)
  • FPGA时序分析与约束(2)——时序电路时序

            在之前的内容中,我们介绍了组合电路的时序问题和可能导致的毛刺,强烈推荐在阅读前文的基础上再继续阅读本文, 前文链接:FPGA时序分析与约束(1)——组合电路时序         这篇文章中,我们将继续介绍FPGA时序分析相关内容,本文介绍的是时序电路的时序

    2024年02月10日
    浏览(30)
  • FPGA时序分析与时序约束(Vivado)

    后缀L的这个单元中,会生成锁存器 查看布线 定位线路 时间分析,还要考虑数据变化的建立时间与保持时间 经过图上计算可得公式 : Tsu裕量 = (Tskew + 时钟周期 - Tsu) - (Tco + Tdelay) Thd裕量 = Tco + Tdelay - Thd 两个时间都大于0,才能保证系统不产生亚稳态。 建立时间裕量、组

    2024年01月19日
    浏览(29)
  • FPGA时序分析与约束(8)——时序引擎

            要想进行时序分析和约束,我们需要理解时序引擎究竟是如何进行时序分析的,包括时序引擎如何进行建立分析(setup),保持分析(hold),恢复时间分析(recovery)和移除时间分析(removal)。         发起沿(launch edge,源时钟产生数据的有效时钟沿),捕获沿(capture

    2024年02月07日
    浏览(29)
  • FPGA时序分析与约束(1)——组合电路时序

            关于时序分析和约束的学习似乎是学习FPGA的一道分水岭,似乎只有理解了时序约束才能算是真正入门了FPGA,对于FPGA从业者或者未来想要从事FPGA开发的工程师来说,时序约束可以说是一道躲不过去的坎,所以从这篇文章开始,我们来正式进行FPGA时序分析与约束的学

    2024年02月10日
    浏览(29)
  • FPGA时序分析与时序约束(一)——基础知识

    目录 一、为什么要进行时序分析和时序约束 二、什么是时序分析和时序约束 三、时序约束的基本路径 四、时序分析与约束的基本概念 4.1 Clock Uncertainty 4.2 建立时间和保持时间 4.3 发起沿和采样沿 4.4 数据到达时间和时钟达到时间 4.5 建立时间下的数据需求时间 4.6 保持时间

    2024年02月03日
    浏览(24)
  • FPGA时序分析与约束(13)——I/O接口约束

            在应用了时钟约束后,所有寄存器到寄存器的路径都能定时。为了获得更加精准的FPGA外部时序信息,设计者需要为FPGA的I/O接口指定时序信息,一般时序工具只能获取FPGA器件内部的时序信息,对于FPGA器件引脚之外的时序信息,必须由设计者约束定义。如果没有指定的

    2024年02月05日
    浏览(32)
  • FPGA时序分析与约束(10)——生成时钟

            最复杂的设计往往需要多个时钟来完成相应的功能。当设计中存在多个时钟的时候,它们需要相互协作或各司其职。异步时钟是不能共享确定相位关系的时钟信号,当多个时钟域交互时,设计中只有异步时钟很难满足建立和保持要求。我们将在后面的内容中介绍这部

    2024年02月21日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包