何谓静态时序分析(Static Timing Analysis,简称STA)?

它可以简单的定义为:设计者提出一些特定的时序要求(或者说是添加特定的时序约束),套用特定的时序模型,针对特定的电路进行分析。分析的最终结果当然是要求系统时序满足设计者提出的要求。

下面举一个最简单的例子来说明时序分析的基本概念。假设信号需要从输入到输出在FPGA内部经过一些逻辑延时和路径延时。我们的系统要求这个信号在FPGA内部的延时不能超过15ns,而开发工具在执行过程中找到了如图4.1所示的一些可能的布局布线方式。那么,怎样的布局布线能够达到我们的要求呢?仔细分析一番,发现所有路径的延时可能为14ns、14ns、16ns、17ns、18ns,有两条路径能够满足要求,布局布线就会选择满足要求的两条路径之一。

1.静态时序分析模型

因此,有些说法是错误的,不分什么情况就说时序不收敛,其实在不加约束的情况下谈时序约束是没有意义的。

附加约束的基本作用

1.提高设计的工作频率

对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。

2.获得正确的时序分析报告

几乎所有的FPGA设计平台都包含静态时序分析工具,利用这类工具可以获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。

3.指定FPGA/CPLD引脚位置与电气标准

FPGA/CPLD的可编程特性使电路板设计加工和FPGA/CPLD设计可以同时进行,而不必等FPGA/CPLD引脚位置完全确定,从而节省了系统开发时间。这样,电路板加工完成后,设计者要根据电路板的走线对FPGA/CPLD加上引脚位置约束,使FPGA/CPLD与电路板正确连接。另外通过约束还可以指定IO引脚所支持的接口标准和其他电气特性。为了满足日新月异的通信发展,Xilinx新型FPGA/CPLD可以通过IO引脚约束设置支持诸如AGP、BLVDS、CTT、GTL、GTLP、HSTL、LDT、LVCMOS、LVDCI、LVDS、LVPECL、LVDSEXT、LVTTL、PCI、PCIX、SSTL、ULVDS等丰富的IO接口标准。另外通过区域约束还能在FPGA上规划各个模块的实现区域,通过物理布局布线约束,完成模块化设计等。

静态时序分析中使用的各个模型分析

1.周期(PERIOD)的含义

周期的含义是时序中最简单也是最重要的含义,其它很多时序概念会因为软件商不同略有差异,而周期的概念确是最通用的,周期的概念是FPGA/ASIC时序定义的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据PERIOD约束检查时钟域内所有同步元件的时序是否满足要求。PERIOD约束会自动处理寄存器时钟端的反相问题,如果相邻同步元件时钟相位相反,那么它们之间的延迟将被默认限制为PERIOD约束值的一半。如下图所示,

2.周期定义

时钟的最小周期为:

TCLK = TCKO +TLOGIC +TNET +TSETUP -TCLK_SKEW

TCLK_SKEW =TCD1 -TCD2 (稳定时为负的)

其中TCKO为时钟输出时间,TLOGIC为同步元件之间的组合逻辑延迟,TNET为网线延迟,TSETUP为同步元件的建立时间,TCLK_SKEW为时钟信号TCD2和TCD1延迟的差别。

2.关于输入到达时间

图3.输入到达时间示意图

定义的含义是输入数据在有效时钟沿之后的TARRIVAL时刻到达。则,

TARRIVAL=TCKO+TOUTPUT+TLOGIC                             (1)

根据上面介绍的周期(Period)公式,我们可以得到:

Tcko+Toutput+Tlogic+Tinput+Tsetup-Tclk_skew=Tclk;        (2)

将公式1代入公式2: Tarrival+Tinput+Tsetup-Tclk_skew=Tclk, 而Tclk_skew满足时序关系后为负,所以

TARRIVAL +TINPUT+TSETUP <TCLK                            (3)

这就是Tarrival应该满足的时序关系。其中TINPUT为输入端的组合逻辑、网线和PAD的延迟之和,TSETUP为输入同步元件的建立时间。

3.数据延时和数据到达时间的关系

4.数据延时和数据到达时间的关系

TDELAY为要求的芯片内部输入延迟,其最大值TDELAY_MAX与输入数据到达时间TARRIVAL的关系如上图所示。也就是说:                   TDELAY_MAX+TARRIVAL=TPERIOD                              (4)

所以:

TDELAY<TDELAY_MAX=TPERIOD-TARRIVAL

4.要求输出的稳定时间

从下一级输入端的延迟可以计算出当前设计输出的数据必须在何时稳定下来,根据这个数据对设计输出端的逻辑布线进行约束,以满足下一级的建立时间要求,保证下一级采样的数据是稳定的。计算要求的输出稳定时间如下图所示:

5.要求的输出稳定时间示意图

公式的推导如下:

定义:                      TSTABLE = TLOGIC +TINPUT +TSETUP

从前面介绍的周期(Period)公式,可以得到(其中TCLK_SKEW=TCLK1-TCLK2):

TCLK=TCKO+TOUTPUT+TLOGIC+TINPUT+TSETUP+TCLK_SKEW

将TSTABLE的定义代入到周期公式,可以得到:

TCLK=TCKO+TOUTPUT+TSTABLE+TCLK_SKEW

所以:TCKO +TOUTPUT+TSTABLE<TCLK

这个公式就是TSTABLE必须要满足的基本时序关系,即本级的输出应该保持怎么样的稳定状态,才能保证下级芯片的采样稳定。有时我们也称这个约束关系是输出数据的保持时间的时序约束关系。只要满足上述关系,当前芯片输出端的数据比时钟上升沿提早TSTABLE 时间稳定下来,下一级就可以正确地采样数据。其中TOUTPUT为设计中连接同步元件输出端的组合逻辑、网线和PAD的延迟之和,TCKO为同步元件时钟输出时间。

下面阐述的是上面的时序概念对应于Altera中的几个重要的时序问题。

下面主要介绍Altera对应的这些时序概念和约束方法。 前面首先介绍的第一个时序概念周期(Period),这个概念是FPGA/ASIC通用的一个概念,各方的定义相当统一,至多是描述方式不同罢了,所有的FPGA设计都首先要进行周期约束,这样做的好处除了在综合与布局布线时给出规定目标外,还能让时序分析工具考察整个设计的Fmax等。

Altera的周期定义如下图所示,公式描述如下:

图1.Altera-clock period

Clock Period = Clk-to-out + Data Delay + Setup Time - Clk Skew

即,Tclk= Tco+ B + Tsu-(E-C) Fmax =1/Tclk

对比一下前面的介绍,只要理解了B 包含了两级寄存器之间的所有 logic 和 net 的延时就会发现与前面公式完全一致。

其他一些重要的概念:

1.Clock Setup Time (tsu)

要想正确采样数据,就必须使数据和使能信号在有效时钟沿到达前就准备好,所谓时钟建立时间就是指时钟到达前,数据和使能已经准备好的最小时间间隔。如下图所示:

图2.tsu示意图

这里定义Setup时间是站在同步时序整个路径上的,需要区别的是另一个概念Micro tsu。Micro tsu指的是一个触发器内部的建立时间,它是触发器的固有属性,一般典型值小于1~2ns。在Xilinx等的时序概念中,称Altera的Micro tsu为setup时间,用Tsetup表示,请大家区分一下。 回到Altera的时序概念,Altera的tsu定义如下: tsu = Data Delay – Clock Delay + Micro tsu

2.Clock Hold Time (tH)

时钟保持时间是只能保证有效时钟沿正确采用的数据和使能信号的最小稳定时间。其定义如下图所示:

图3.th示意图

时钟保持时间是只能保证有效时钟沿正确采用的数据和使能信号的最小稳定时间。其定义如下图所示:

定义的公式为:                tH= Clock Delay – Data Delay + Micro tH

注:其中Micro tH是指寄存器内部的固有保持时间,同样是寄存器的一个固有参数,典型值小于1~2ns。

3.Clock-to-Output Delay(tco)

这个时间指的是当时钟有效沿变化后,将数据推倒同步时序路径的输出端的最小时间间隔。如下图所示:

图4,tco示意图

定义:                                              tco = Clock Delay + Micro tco + Data Delay

注:其中 Micor tco也是一个寄存器的固有属性,指的是寄存器相应时钟有效沿,将数据送到输出端口的内部时间参数。它与Xilinx的时序定义中,有一个概念叫Tcko是同一个概念.

4.Pin to Pin Delay (tpd)

tpd指输入管脚通过纯组合逻辑到达输出管脚这段路径的延时,特别需要说明的是,要求输入到输出之间只有组合逻辑,才是tpd延时。

5.Slack

Slack是表示设计是否满足时序的一个称谓,正的slack表示满足时序(时序的余量),负的slack表示不满足时序(时序的欠缺量)。slack的定义和图形如下图所示。

图6.slack示意图

Slack = Required clock period – Actual clock period

Slack = Slack clock period – (Micro tCO+ Data Delay + Micro tSU)

6.始终偏斜

Clock Skew指一个同源时钟到达两个不同的寄存器时钟端的时间偏移,如下图所示:

图7.clock skew示意图

FPGA高级设计——时序分析和收敛(转)的更多相关文章

  1. FPGA/CPLD设计思想与技巧

    本文讨论的四种常用FPGA/CPLD设计思想与技巧:乒乓操作.串并转换.流水线操作.数据接口同步化,都是FPGA/CPLD逻辑设计的内在规律的体现,合理地采用这些设计思想能在FPGA/CPLD设计工作 ...

  2. FPGA重要设计思想

    FPGA重要设计思想   1.速度和面积互换原则.以面积换速度可以实现很高的数据吞吐率,其实串/并转换.就是一种以面积换速度的思想 2.乒乓操作. 3.串/并转换的思想. 高速数据处理的重要技巧之一. ...

  3. 【转载】FPGA算法设计随笔

    FPGA设计算法依次需要完成MATLAB浮点仿真 MATLAB定点仿真 verilogHDL定点运算以及数据对比的流程.其中浮点到定点的转换尤为重要,需要在数据表示范围和精度之间做出权衡.另外掌握定点 ...

  4. FPGA基础设计(四):IIC协议

    很多数字传感器.数字控制的芯片(DDS.串行ADC.串行DAC)都是通过IIC总线来和控制器通信的.不过IIC协议仍然是一种慢速的通信方式,标准IIC速率为100kbit/s,快速模式速率为400kb ...

  5. 使用Intel的FPGA电源设计FPGA 供电的常用反馈电阻阻值

    使用Intel的FPGA电源设计FPGA 供电的常用反馈电阻阻值. 当前仅总结使用EN5339芯片的方案 Vout = Ra*0.6/Rb + 0.6 芯片手册推荐Ra取348K,则 3.3V时,取R ...

  6. ORM表之间高级设计

    ORM表之间高级设计 一.表的继承 # db_test1 # 一.基表 # Model类的内部配置Meta类要设置abstract=True, # 这样的Model类就是用来作为基表 # 多表:Boo ...

  7. 英特尔Intel® Arria® 10 FPGA加速器设计

    英特尔Intel Arria 10 FPGA加速器设计 Introducing the Intel Vision Accelerator Design with Intel Arria 10 FPGA ...

  8. FPGA STA(静态时序分析)

    1 FPGA设计过程中所遇到的路径有输入到触发器,触发器到触发器,触发器到输出,例如以下图所看到的: 这些路径与输入延时输出延时,建立和保持时序有关. 2. 应用背景 静态时序分析简称STA,它是一种 ...

  9. FPGA中的时序分析(五)

    时序约束实例详解 本篇博客结合之前的内容,然后实打实的做一个约束实例,通过本实例读者应该会实用timequest去分析相关的实例.本实例以VGA实验为基础,介绍如何去做时序约束. 首先VGA这种情况属 ...

随机推荐

  1. C#将HTML导出Excel

    首先这个 不能用ajax 操作,不过 我现在讲的 这个方法和ajax 的效果一样. 你在你需要导出的页面写个方法 function DaoChu () { location.href = " ...

  2. UVa 1635 (唯一分解定理) Irrelevant Elements

    经过紫书的分析,已经将问题转化为求组合数C(n-1, 0)~C(n-1, n-1)中能够被m整除的个数,并输出编号(这n个数的编号从1开始) 首先将m分解质因数,然后记录下每个质因子对应的指数. 由组 ...

  3. Js 读写cookies

    //写cookies函数 function setCookie(name, value)//两个参数,一个是cookie的名子,一个是值 { var Days = 30; //此 cookie 将被保 ...

  4. js 写成类的形式 js 静态变量 js方法 属性 json类

    function ClassStudentList() { //[{"Cid":"0d","Students":[{"Sid&qu ...

  5. shiro实现APP、web统一登录认证和权限管理

    先说下背景,项目包含一个管理系统(web)和门户网站(web),还有一个手机APP(包括Android和IOS),三个系统共用一个后端,在后端使用shiro进行登录认证和权限控制.好的,那么问题来了w ...

  6. UVA 1663 Purifying Machine (二分图匹配,最大流)

    题意: 给m个长度为n的模板串,模板串由0和1和*三种组成,且每串至多1个*,代表可0可1.模板串至多匹配2个串,即*号改成0和1,如果没有*号则只能匹配自己.问:模板串可以缩减为几个,同样可以匹配原 ...

  7. 【C#学习笔记】读文件

    using System; using System.IO; namespace ConsoleApplication { class Program { static void Main(strin ...

  8. FFmpeg解码H264及swscale缩放详解

    本文概要: 本文介绍著名开源音视频编解码库ffmpeg如何解码h264码流,比较详细阐述了其h264码流输入过程,解码原理,解码过程.同时,大部分应用环境下,以原始码流视频大小展示并不是最佳方式,因此 ...

  9. 最好用的汉字转拼音代码PinYin4Objc(PinYin4J的objc版本)

    转:https://github.com/kimziv/PinYin4Objc 最好用的汉字转拼音代码PinYin4Objc(PinYin4J的objc版本)(更新到v1.1.1,增加block异步处 ...

  10. Alibaba

    题意: 有n个东西在一条路上,已知他们的位置,和能获得他们的最后期限,求能获得n个东西的最小总时间. 分析: 想到了求”未来费用问题", dp[i][j][k]表示获得区间长i起点为j的所有 ...