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

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

3天内不再提示

STA分析—时序检查

冬至子 来源:知芯有道 作者:武当沸羊羊 2023-07-05 15:07 次阅读

Setup和hold时间检查

Setup时间是,为了寄存器可靠的采样到数据,数据必须提前于采样时钟沿稳定的最小时间。Hold时间是,为了寄存器可靠的采样到数据,数据必须在采样时钟沿后稳定的最小时间。

如图一所示,周期T=1ns,该寄存器的setup要求时间是Tsetup=0.1ns,hold要求时间是Thold=0.1ns。setup时间检查机制做这样的检查:上一个Launch时钟沿打出来的数据的data arrival time(数据到达时间)不能晚于T - Tsetup = 0.9ns;而hold时间检查机制做这样的检查:同一个周期的Launch时钟沿打出来的数据的data arrival time(到达时间)不能早于Thold = 0.1ns。

同时满足setup、hold时间要求的意义即是,在时钟采样沿的前后一段最小时间内,数据必须保存稳定,以供寄存器可靠的采样到上一拍发送过来的正确数据。

图片

**图一 ** setup hold****时间检查示意图

我们把上篇文章的图再贴过来:

图片

图二 辑电路图(含BC工作条件下的延迟信息

下面分析FFC1寄存器的setup、hold检查过程:

上篇文章说过,到FFC1的D端2条逻辑路径和4个path delay,分别是FFL1->FFC1的rise delay、FFL1->FFC1的fall delay、FFL2->FFC1的rise delay、FFL2->FFC1的fall delay。

以时钟源头作为起点的path delay等于data arrival time。 根据图一,可以看出:

0****1

FFL1到FFC1的rise delay的data arrival time

T(FFL1->FFC1-rise)

= T(Launch-clock-tree) + T(data-path-rise)

=T(C00-rise) + T(UCKBUF0-rise) + T(C01-rise) + T(UCKBUF1-rise) + T(C05-rise) + T(FFL1_CK2Q-rise) + T(C1-rise) ~ ~ + D(UNAND1_A2Z-fall) + T(C2-fall) + T(UINV2-rise) + T(C3-rise) + T(UINV3-fall) + T(C4-fall) + T(UINV4-rise) + T(C5-rise)

= (0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1 + 0.1 + 0.1 + 0.05 + 0.08 + 0.05 + 0.05 + 0.05 + 0.08 + 0.05

= 0.96ns;

02

FFL1到FFC1的fall delay的data arrival time

T(FFL1->FFC1-fall)

= T(Launch-clock-tree) + T(data-path-fall)

=(0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1 + 0.1 + 0.08 + 0.05 + 0.1 + 0.05 + 0.04 + 0.05 + 0.1 + 0.05

= 0.97ns;

03

FFL2到FFC1的rise delay的data arrival time

T(FFL2->FFC1-rise)

= T(Launch-clock-tree) + T(data-path-rise)

=T(C00-rise) + T(UCKBUF0-rise) + T(C02-rise) + T(UCKBUF2-rise) + T(C06-rise) + T(FFL2_CK2Q-rise) + T(C6-rise) ~ ~ + D(UNAND1_B2Z-fall) + T(C2-fall) + T(UINV2-rise) + T(C3-rise) + T(UINV3-fall) + T(C4-fall) + T(UINV4-rise) + T(C5-rise)

= (0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1 + 0.1 + 0.09 + 0.05 + 0.08 + 0.05 + 0.05 + 0.05 + 0.08 + 0.05

= 0.95ns;

04

FFL2到FFC1的fall delay的data arrival time

T(FFL2->FFC1-fall)

= T(Launch-clock-tree) + T(data-path-fall)

=(0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1 + 0.1 + 0.07 + 0.05 + 0.1 + 0.05 + 0.04 + 0.05 + 0.1 + 0.05

= 0.96ns;

05

FFC1的setup requirement时间

T + T(Capture-clock-tree) - T(setup)

= T + T(C00-rise) + T(UCKBUF0-rise) + T(C03-rise) + T(UCKBUF3-rise) + T(C07-rise) - T(setup)

= 1ns + (0.05 + 0.05 + 0.05 + 0.05 + 0.05) – 0.1ns

= 1.15ns

06

FFC1的hold requirement时间

T(Capture-clock-tree) + T(hold)

= T(C00-rise) + T(UCKBUF0-rise) + T(C03-rise) + T(UCKBUF3-rise) + T(C07-rise) - T(setup)

= (0.05 + 0.05 + 0.05 + 0.05 + 0.05) + 0.1ns

= 0.35ns

做setup检查时,STA会遍历计算所有到FFC1/D端路径的data arrival time,然后将每个值与T + T(Capture-clock-tree) - T(setup)做运算。以slack来表示余量,setup time slack = data require time – data arrival time = {T + T(Capture-clock-tree) - T(setup)} – {T(Launch-clock-tree) + T(data-path)}。只有当所有Slack值都为正时,才满足setup时间要求。

类似的,做hold检查时,也是将每个data arrival time的值与T(Capture-clock-tree) + T(hold)做比较,以slack来表示余量,hold time slack = data arrival time - data require time = {T(Launch-clock-tree) + T(data-path)} - {T(Capture-clock-tree) + T(hold)}。只有当所有Slack值都为正时,才满足hold时间要求。

上述4个path delay的Setup time slack分别为:

Setup time slack(1) = 1.15ns – 0.96ns = 0.19ns

Setup time slack (2) = 1.15ns – 0.97ns = 0.18ns

Setup time slack (3) = 1.15ns – 0.95ns = 0.20ns

Setup time slack (4) = 1.15ns – 0.96ns = 0.19ns

4条path delay的hold slack time分别为:

Hold time slack(1) = 0.96ns – 0.35ns = 0.61ns

Hold time slack(2) = 0.97ns – 0.35ns = 0.62ns

Hold time slack(3) = 0.95ns – 0.35ns = 0.60ns

Hold time slack(4) = 0.96ns – 0.35ns = 0.61ns

由于所有slack值都为正,故setup和hold时间检查都满足了。

时序路径概念

STA分析时,所有时序路径都有起点和终点,起点包括输入端口和时序单元的时钟端口,终点包括输出端口和时序单元的数据输入端口。所以总共有4种路径集合,即:

a. 从输入端口到输出端口(IN To OUT);

b. 从输入端口到时序单元的数据输入端口(IN To REG);

c. 从时序单元的时钟端口到时序单元的数据输入端口(REG To REG);

d. 从时序单元的时钟端口到输出端口(REG To OUT)。

4种时序路径请见图三:

图片

图三 时序路径

Timing Arc 概念

如图三所示,每个cell都存在多条Timing Arc,如UNAND1存在A->Z和B->Z这2条Timing Arc。FFC1也存在CK->Q和CK->D 2条Timing Arc。

其中UNAND1的A->Z和B->Z是组合路径Timing Arc。FFC1的CK->Q是edge Timing Arc,FFC1的CK->D又含setup arc和hold arc。

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

    关注

    30

    文章

    5028

    浏览量

    117723
  • FFC
    FFC
    +关注

    关注

    0

    文章

    55

    浏览量

    17454
  • STA
    STA
    +关注

    关注

    0

    文章

    51

    浏览量

    18850
收藏 人收藏

    评论

    相关推荐

    VIVADO时序约束及STA基础

    时序约束的目的就是告诉工具当前的时序状态,以让工具尽量优化时序并给出详细的分析报告。一般在行为仿真后、综合前即创建基本的时序约束。Vivad
    的头像 发表于 03-11 14:39 8839次阅读

    tcl命令用于时序分析如何检查输入或输出的时间?

    进行时序分析,例如:1.如何检查输入或输出的时间?2.如何检查源时钟和目标时钟的某些路径是否为特定时钟?如果有人可以在这里发布你总是使用的常用命令,或者推荐一些教程,那就太棒了。提前致
    发表于 03-11 13:41

    静态时序分析STA的优点以及缺点分别有哪些呢

    静态时序分析STA是什么?静态时序分析STA的优点以及缺点分别有哪些呢?
    发表于 11-02 07:51

    静态时序分析在高速 FPGA设计中的应用

    介绍了采用STA (静态时序分析)对FPGA (现场可编程门阵列)设计进行时序验证的基本原理,并介绍了几种与STA相关联的
    发表于 05-27 08:58 70次下载
    静态<b class='flag-5'>时序</b><b class='flag-5'>分析</b>在高速 FPGA设计中的应用

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

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

    静态时序分析基础与应用

    STA的简单定义如下:套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。以
    发表于 04-03 15:56 10次下载

    FPGA进行静态时序分析

    静态时序分析简称STA,它是一种穷尽的分析方法,它按照同步电路设计的要求,根据电路网表的拓扑结构,计算并检查电路中每一个DFF(触发器)的建
    发表于 09-01 10:45 2978次阅读
    FPGA进行静态<b class='flag-5'>时序</b><b class='flag-5'>分析</b>

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

    静态时序分析检查芯片时序特性的一种方法,可以用来检查信号在芯片中的传播是否符合时序约束的要求。
    发表于 11-11 08:00 58次下载
    正点原子FPGA静态<b class='flag-5'>时序</b><b class='flag-5'>分析</b>与<b class='flag-5'>时序</b>约束教程

    基本的时序约束和STA操作流程

    一、前言 无论是FPGA应用开发还是数字IC设计,时序约束和静态时序分析STA)都是十分重要的设计环节。在FPGA设计中,可以在综合后和实现后进行
    的头像 发表于 08-10 09:33 4882次阅读
    基本的<b class='flag-5'>时序</b>约束和<b class='flag-5'>STA</b>操作流程

    FPGA静态时序分析详解

    静态时序分析简称STA,它是一种穷尽的分析方法,它按照同步电路设计的要求,根据电路网表的拓扑结构,计算并检查电路中每一个DFF(触发器)的建
    的头像 发表于 09-27 14:45 1977次阅读

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

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

    什么是时序路径timing path呢?

    今天我们要介绍的时序分析概念是 **时序路径** (Timing Path)。STA软件是基于timing path来分析timing的。
    的头像 发表于 07-05 14:54 1131次阅读
    什么是<b class='flag-5'>时序</b>路径timing path呢?

    STA分析-从一个案例开始

    静态时序分析STA)是用来分析数字电路是否满足时序目标的技术手段之一。比如,检查CPU电路是否
    的头像 发表于 07-05 15:01 910次阅读
    <b class='flag-5'>STA</b><b class='flag-5'>分析</b>-从一个案例开始

    STA分析—延迟计算

    从上篇文章,我们可以很明显的看出STA的两大因素,一个是延迟计算,一个是约束检查
    的头像 发表于 07-05 15:04 1499次阅读
    <b class='flag-5'>STA</b><b class='flag-5'>分析</b>—延迟计算