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

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

3天内不再提示

静态时序的分析原理及详细过程

电子设计 来源:CSDN博主 作者:IamSarah 2020-11-25 11:03 次阅读

静态时序分析是检查IC系统时序是否满足要求的主要手段。以往时序的验证依赖于仿真,采用仿真的方法,覆盖率跟所施加的激励有关,有些时序违例会被忽略。此外,仿真方法效率非常的低,会大大延长产品的开发周期。静态时序分析工具很好地解决了这两个问题。它不需要激励向量,可以报出芯片中所有的时序违例,并且速度很快。

通过静态时序分析,可以检查设计中的关键路径分布;检查电路中的路径延时是否会导致setup违例;检查电路中是否由于时钟偏移过大导致hold违例;检查时钟树的偏移和延时等情况。此外静态时序分析工具还可以与信号完整性工具结合在一起分析串扰问题。常用的静态时序工具是PrimeTime。

下面主要阐述一下静态时序的分析原理:静态时序分析工具读入门级网表、时序约束等信息,然后进行静态时序分析。分析过程可以分为3步:

1)将电路分解为时序路径,即将电路转换为时序路径的集合。时序路径是一个点到点的数据通路,数据沿着时序路径进行传递。它的起点是输入端口或者寄存器的时钟,终点是输出端口或者一个寄存器的输入引脚,每个路径最多只能穿过一个寄存器。这样时序路径就可以划分为:输入端口到寄存器、寄存器到寄存器、寄存器到输出端口、输入端口到输出端口。如下图所示,分析其时序路径:


根据时序路径的定义,我们可以找到4条时序路径:从输入端口A到FF1的D端;从FF1的Clk端到FF2的D端;从FF2的clk端到输出端口out1;从输入端口A到输出端口out1。将这些路径在下图标出:




2)计算每个路径上面的延时。在一个路径上,可能包含这几类延时:连线延时(布局布线前后的延时计算方法不一样)、组合逻辑的单位延时(影响因子有输入信号的转换时间,该值也决定输入晶体管的翻转速度、负载、单元本身的固有延时、制程、电压、温度等)、寄存器从clk端到Q端的延时。一个路径上的延时是该路径上所有连线的延时与单位延时的综合。延时一般定义为从输入跳变的50%时刻到输出跳变的50%之间的时间。

3)检查路径时序约束是否满足。路径约束主要指的是建立时间约束和保持时间约束。在寄存器的综合库描述中对寄存器的D端定义了建立时间和保持时间的约束。所谓建立时间约束是指在采样时钟到达之前,数据应该稳定的时间;保持时间是指在时钟到达之后,数据应该保持的时间,这样才能保证寄存器正确地锁存数据。对于纯组合逻辑,时序分析主要检查最大延时约束和最小延时路径。这种情况比较简单。

时钟对于时序电路至关重要。在进行RTL设计时,可以认为时钟是理想的,但在静态时序分析的时候,必须考虑到实际的时钟情形。时钟模型的精度直接影响了静态时序分析的精度。时钟的非理想性包括:

1)时钟偏移(clock skew):同一时钟原到达不同的寄存器的延时不同。

2)时钟抖动(clock jitter):时钟频率和相位会不断变化,脉冲宽度会发生变化。

实际情况中,振荡器、互连、电源、负载都会影响到时钟,导致时钟出现偏移、抖动。下面主要讲一下在静态时序分析中,如何对实际的时钟进行建模。考虑下图中的电路,电路中时钟源位于芯片外部。我们将时钟定义在芯片端口上,从时钟源到达端口需要经过3ns左右的延时(板级走线的延时),从时钟端口到寄存器要经过1ns左右的延时(时钟树的延时),对时钟树的延时进行建模可以采取下面的办法:


1)先在端口上定义时钟:

create_clock per8.0 [get_ports clk]

2)设置从时钟源到时钟端口的板级延时:

set_clock_latency source 3 clk

3)设置时钟树本身的延时,在布局布线之前可以采取下面的方法: set_clock_latency 1 clk;在布局布线之后,可以得到时钟树延时的确定值,采用如下的命令:set_propagated_clock clk;

但是如果知道时钟源上的时钟具有0.2ns的不确定性,如下图所示,可以采用下面的方法进行建模:


set_clock_latency 2.8 source early [get_ports clk]

set_clock_latency 3.2 source late [get_ports clk]

在设计中,往往存在分频时钟,如下图是一个2分频电路。


如果进行静态时序分析时,直接援用create_clock来设置,则PT会将分频后的时钟看做是一个与源时钟毫无关系的时钟。这样在分析源时钟域与分频时钟域之间的信号时,可能会出现问题。正确设置分频时钟方法如下:

create_generated_clock name divide

source [get -pins U4/clk] divide-by 2 [get -pins U4/Q]

下面概括介绍一下对于静态时序分析脚本构造的大致过程:

1)读入设计的相关信息:链接库、网表,如果是PR之后的静态时序分析还需要读入寄生参数信息

2)设置驱动及负载

3)设置时钟

4)设置建立时间和保持时间

5)设置设计规则约束:最大负载、最大转换时间等

6)分析时序:用report_timing 等检查时序,用report_constraint 检查是否有违例。

具体的构造过程可以参考综合脚本,这里不再详述。

编辑:hfy


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

    关注

    30

    文章

    5031

    浏览量

    117741
  • 晶体管
    +关注

    关注

    76

    文章

    9056

    浏览量

    135222
  • 数据通路
    +关注

    关注

    0

    文章

    6

    浏览量

    7458
  • 静态时序
    +关注

    关注

    0

    文章

    19

    浏览量

    6920
收藏 人收藏

    评论

    相关推荐

    FPGA的约束设计和时序分析

    FPGA/CPLD的综合、实现过程中指导逻辑的映射和布局布线。下面主要总结一下Xilinx FPGA时序约束设计和分析
    发表于 09-21 07:45

    时序分析基本概念解析

    正如“聚合”的意思(字典)“两个或多个事物聚集在一起的发生”。所以我们可以假设它也与 2 个时钟路径聚集在一起有关。 (了解时钟路径请参考另一篇博客-静态时序分析基础:第1部分“时序
    的头像 发表于 08-08 10:31 588次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>分析</b>基本概念解析

    静态时序分析是什么 静态时序分析可以检查什么

    传统的电路设计分析方法是仅仅采用动态仿真的方法来验证设计的正确性。随着集成电路的发展,这一验证方法就成为了大规模复杂的设计验证时的瓶颈。
    的头像 发表于 07-20 09:46 1544次阅读
    <b class='flag-5'>静态</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>是什么 <b class='flag-5'>静态</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>可以检查什么

    什么是静态代码分析静态代码分析概述

    静态分析可帮助面临压力的开发团队。高质量的版本需要按时交付。需要满足编码和合规性标准。错误不是一种选择。 这就是开发团队使用静态分析工具/源代码分析
    的头像 发表于 07-19 12:09 928次阅读
    什么是<b class='flag-5'>静态</b>代码<b class='flag-5'>分析</b>?<b class='flag-5'>静态</b>代码<b class='flag-5'>分析</b>概述

    静态时序分析的相关概念

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

    AOCV时序分析概念介绍

    今天我们要介绍的时序分析概念是 **AOCV** 。全称Stage Based Advanced OCV。我们知道,在OCV分析过程中,我们会给data path,clock path
    的头像 发表于 07-03 16:29 1296次阅读
    AOCV<b class='flag-5'>时序</b><b class='flag-5'>分析</b>概念介绍

    SOCV时序分析概念简析

    今天我们介绍的时序分析概念是 **SOCV** 。也被叫作POCV,全称为 **Statistic OCV** . 这是一种比AOCV更加先进的分析模式。
    的头像 发表于 07-03 15:19 1676次阅读
    SOCV<b class='flag-5'>时序</b><b class='flag-5'>分析</b>概念简析

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

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

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

    引言 在同步电路设计中,时序是一个非常重要的因素,它决定了电路能否以预期的时钟速率运行。为了验证电路的时序性能,我们需要进行 静态时序分析
    的头像 发表于 06-28 09:38 806次阅读
    <b class='flag-5'>静态</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>的基本概念和方法

    同步电路设计中静态时序分析时序约束和时序路径

    同步电路设计中,时序是一个主要的考虑因素,它影响了电路的性能和功能。为了验证电路是否能在最坏情况下满足时序要求,我们需要进行静态时序分析,即
    发表于 06-28 09:35 564次阅读
    同步电路设计中<b class='flag-5'>静态</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>的<b class='flag-5'>时序</b>约束和<b class='flag-5'>时序</b>路径

    STA-0.静态时序分析概述

    静态时序分析(Static Timing Analysis, 以下统一简称 **STA** )是验证数字集成电路时序是否合格的一种方法,其中需要进行大量的数字计算,需要依靠工具进行,但
    的头像 发表于 06-27 11:43 575次阅读
    STA-0.<b class='flag-5'>静态</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>概述

    如何读懂FPGA开发过程中的Vivado时序报告?

    FPGA开发过程中,vivado和quartus等开发软件都会提供时序报告,以方便开发者判断自己的工程时序是否满足时序要求。
    发表于 06-26 15:29 574次阅读
    如何读懂FPGA开发<b class='flag-5'>过程</b>中的Vivado<b class='flag-5'>时序</b>报告?

    FPGA设计-时序约束(理论篇)

    STA(Static Timing Analysis,即静态时序分析)在实际FPGA设计过程中的重要性是不言而喻的
    发表于 06-26 09:01 393次阅读
    FPGA设计-<b class='flag-5'>时序</b>约束(理论篇)

    FPGA静态时序分析简单解读

    任何学FPGA的人都跑不掉的一个问题就是进行静态时序分析静态时序分析的公式,老实说很晦涩,而且
    的头像 发表于 05-29 10:24 376次阅读
    FPGA<b class='flag-5'>静态</b><b class='flag-5'>时序</b><b class='flag-5'>分析</b>简单解读

    静态分析和动态分析的区别

    静态分析和动态分析是一种双管齐下的方法,可以在可靠性、错误检测、效率和安全性方面改进开发过程。为什么它们都很重要?它们又有什么区别呢?
    的头像 发表于 05-16 16:03 4033次阅读