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

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

3天内不再提示

静态时序分析的基本概念和方法

数字芯片实验室 来源:数字芯片实验室 2023-06-28 09:38 次阅读

引言

在同步电路设计中,时序是一个非常重要的因素,它决定了电路能否以预期的时钟速率运行。为了验证电路的时序性能,我们需要进行静态时序分析,即在最坏情况下检查所有可能的时序违规路径,而不需要测试向量和动态仿真。本文将介绍静态时序分析的基本概念和方法,包括时序约束,时序路径,时序裕量,setup检查和hold检查等。

时序路径

同步电路设计中,时序是一个主要的考虑因素,它影响了电路的性能和功能。为了验证电路是否能在最坏情况下满足时序要求,我们需要进行静态时序分析,即不依赖于测试向量和动态仿真,而只根据每个逻辑门的最大延迟来检查所有可能的时序违规路径。

时序,面积和功耗是综合和物理实现的主要驱动因素。芯片EDA工具的目标是在最短的运行时间内,用最小的面积和功耗,生成满足时序网表,并进行布局和布线。EDA工具会根据设计者给定的约束条件,在时序,面积,功耗和EDA工具运行时间之间做出权衡。

芯片要想以期望的时钟频率运行,就必须遵守时序约束,因此时序是最重要的设计约束。静态时序分析的核心问题是:

“在所有情况下(multi-mode multi-corner),每个同步设备(synchronous device,例如触发器)的数据输入端,在时钟边沿到达时,是否已经有正确的数据?”

b8c3c1f8-1550-11ee-962d-dac502259ad0.png

上图中的虚线箭头代表了时序路径。为了保证数据能被准确地锁存,数据信号必须在时钟边沿到达触发器FF2的时钟端之前,传递到触发器FF2的数据端。

setup检查

b8d77a5e-1550-11ee-962d-dac502259ad0.png

上图展示了这条时序路径的时序情况。当时钟边沿到达FF1时,FF1会锁存FF1.D的数据。经过触发器的CLK-to-Q延迟后,数据会出现在触发器的输出端FF1.Q。这个过程叫做时序路径的launch event

然后,数据信号经过一定的延迟,通过组合逻辑,到达触发器FF2的输入端FF2.D。数据信号到达这里的时间叫做路径的arrival time

为了让FF2能正确地锁存数据,FF2.D的值必须在时钟边沿到达FF2的时钟端之前稳定下来,并且提前一定的时间,即触发器的建立时间。这个最小的允许时间叫做路径的required time。FF2锁存数据的过程叫做时序路径的capture event

时序裕量

时序路径是否满足时序约束,取决于它的时间裕量,即slack

如果数据信号比必要的时间早到达,那么slack就是正值。

如果数据信号刚好在required time到达,那么slack就是零。

如果数据信号比required time晚到达,那么slack就是负值。

在任何情况下,slack都等于required time减去arrival time。

上面描述的时序检查叫做setup检查,它用来验证数据是否能在每个时钟边沿之前及时到达时序电路。这是综合和时序优化中最常见的一种时序检查类型。

hold检查

hold检查用来验证数据在时钟边沿到达后,还能保持多久的有效性。如果从launch到capture的数据路径上的组合延迟太短,而从launch到capture的时钟路径上的延迟太长,就有可能出现hold违规。下图给出了这种情况的例子。

b90c632c-1550-11ee-962d-dac502259ad0.png

上图中,数据从FF1到FF2的时序路径只经过了一个NAND门,组合延迟非常短。而时钟信号从时钟源到FF2的路径上有三个缓冲器,延迟非常长。

b91dc75c-1550-11ee-962d-dac502259ad0.png

上图显示了这种情况下的可能时序。由于数据在setup time之前到达,所以很容易满足setup约束。然而,问题在于FF2的D输入端的数据不能保持足够长的时间,导致hold约束不能满足。也就是说,数据在时钟CLKB锁存之前发生变化。

为了修复这种类型的违规,我们可以通过缩短时钟线的延迟或增加数据路径的延迟来调整时序。

最坏情况(worst-case conditions)

b9309396-1550-11ee-962d-dac502259ad0.png

每种类型的时序检查都考虑了不同的最坏情况(worst-case conditions)。例如,一个setup检查(验证数据是否在时钟边沿之前到达)考虑最长的组合逻辑/最慢的数据路径,以及最早的时钟路径。相反,hold检查(验证数据是否在时钟边沿之后保持有效的时间)考虑最短/最快的数据路径,以及最晚的时钟路径。

上图显示了通过同一个模块不同组合逻辑路径的示例。在数据路径中,setup检查会考虑较长的延迟(通过三个门),而hold检查将考虑较短的路径(通过两个门)。

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

    关注

    8

    文章

    6511

    浏览量

    87600
  • eda
    eda
    +关注

    关注

    71

    文章

    2537

    浏览量

    170863
  • 静态时序分析

    关注

    0

    文章

    28

    浏览量

    9544
收藏 人收藏

    评论

    相关推荐

    时序分析中的一些基本概念

    时序分析是FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念
    发表于 10-21 09:28 1391次阅读

    开关电源的基本概念分析方法

    开关电源的基本概念分析方法
    发表于 08-05 21:27

    静态时序分析与逻辑(华为内部培训资料)

    静态时序概念,目的 静态时序分析路径,方法
    发表于 07-09 18:28 130次下载

    时序分析中的一些基本概念

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念
    发表于 02-11 19:08 3984次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>中的一些<b class='flag-5'>基本概念</b>

    时序分析基本概念——STA概述简析

    时序分析基本概念介绍——STA概述,动态时序分析,主要是通过输入向量作为激励,来验证整个设计的时序
    的头像 发表于 12-14 17:01 2.8w次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>——STA概述简析

    时序分析基本概念介绍——时序库Lib,除了这些你还想知道什么?

    时序分析基本概念介绍——时序库Lib。用于描述物理单元的时序和功耗信息的重要库文件。lib库是最基本的
    的头像 发表于 12-15 17:11 1.1w次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>介绍——<b class='flag-5'>时序</b>库Lib,除了这些你还想知道什么?

    详细介绍时序基本概念Timing arc

    时序分析基本概念介绍——Timing Arc
    的头像 发表于 01-02 09:29 2.4w次阅读
    详细介绍<b class='flag-5'>时序</b><b class='flag-5'>基本概念</b>Timing arc

    正点原子FPGA静态时序分析时序约束教程

    时序分析结果,并根据设计者的修复使设计完全满足时序约束的要求。本章包括以下几个部分: 1.1 静态时序
    发表于 11-11 08:00 58次下载
    正点原子FPGA<b class='flag-5'>静态</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>与<b class='flag-5'>时序</b>约束教程

    时序分析时序约束的基本概念详细说明

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念
    发表于 01-08 16:57 28次下载
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>和<b class='flag-5'>时序</b>约束的<b class='flag-5'>基本概念</b>详细说明

    时序设计基本概念之collection

    今天我们要介绍的时序分析基本概念是collection。代表的是一个集合,类似指针。在数字后端工具中,我们可以通过命令get_*来寻找想要的Object。这些get_*命令返回的就是collection。不同类型的object对
    的头像 发表于 11-26 10:30 3338次阅读

    FPGA设计中时序分析基本概念

    时序分析时FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路。慢慢来,先介绍时序分析中的一些基本概念
    的头像 发表于 03-18 11:07 2143次阅读

    介绍时序分析基本概念lookup table

    今天要介绍的时序分析基本概念是lookup table。中文全称时序查找表。
    的头像 发表于 07-03 14:30 755次阅读
    介绍<b class='flag-5'>时序</b><b class='flag-5'>分析</b>的<b class='flag-5'>基本概念</b>lookup table

    静态时序分析的相关概念

      本文主要介绍了静态时序分析 STA。
    的头像 发表于 07-04 14:40 591次阅读
    <b class='flag-5'>静态</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>的相关<b class='flag-5'>概念</b>

    介绍时序分析基本概念MMMC

    今天我们要介绍的时序分析基本概念是MMMC分析(MCMM)。全称是multi-mode, multi-corner, 多模式多端角分析模式。
    的头像 发表于 07-04 15:40 1597次阅读
    介绍<b class='flag-5'>时序</b><b class='flag-5'>分析</b><b class='flag-5'>基本概念</b>MMMC

    时序分析Slew/Transition基本概念介绍

    今天要介绍的时序分析基本概念是Slew,信号转换时间,也被称为transition time。
    的头像 发表于 07-05 14:50 1697次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>Slew/Transition<b class='flag-5'>基本概念</b>介绍