FPGA 高级设计:时序分析和收敛

今天给大侠带来FPGA 高级设计:时序分析和收敛,话不多说,上货。

这里超链接一篇之前的STA的文章,仅供各位大侠参考。

FPGA技术江湖:FPGA STA(静态时序分析)

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

下面举一个最简单的例子来说明时序分析的基本概念。

假设信号需要从输入到输出在FPGA 内部经过一些逻辑延时和路径延时。我们的系统要求这个信号在 FPGA 内部的延时不 能超过 15ns,而开发工具在执行过程中找到了如图 1 所示的一些可能的布局布线方式。

那么,怎样的布局布线能够达到我们的要求呢?仔细分析一番,发现所有路径的延时可能为 14ns、14ns、16ns、17ns、18ns,有两条路径能够满足要求,布局布线就会选择满足要求的两条路径之一。

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

附加约束的基本作用:

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、关于输入到达时间

定义的含义是输入数据在有效时钟沿之后的 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、数据延时和数据到达时间的关系

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

TDELAY_MAX + TARRIVAL = TPERIOD(4)

所以:

TDELAY < TDELAY_MAX = TPERIOD - TARRIVAL(5)

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 的周期定义如图 6 所示,公式描述如下:

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)

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

这里定义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)

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

时钟保持时间是只能保证有效时钟沿正确采用的数据和使能信号的最小稳定时间。其定 义如下图所示:定义的公式为:tH = Clock Delay – Data Delay + Micro tH 注:其中 Micro tH 是指寄存器内部的固有保持时间,同样是寄存器的一个固有参数, 典型值小于 1~2ns。

3、Clock-to-Output Delay(tco)

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

定义: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 的定义和图形如图 10 所示:

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

6、始终偏斜

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

【QQ交流群】

群号:173560979,进群暗语:FPGA技术江湖粉丝。

多年的FPGA企业开发经验,各种通俗易懂的学习资料以及学习方法,浓厚的交流学习氛围,QQ群目前已有1000多名志同道合的小伙伴,无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有。

【微信交流群】

现微信交流群已建立08群,人数已达数千人,欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式。

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!

FPGA 高级设计:时序分析和收敛相关推荐

  1. FPGA的设计艺术(3)静态时序分析

    前言 本文首发:FPGA的设计艺术(3)静态时序分析,我的易百纳技术社区专栏. 同行邀请消息:FPGA/IC Technology Exchange 什么是静态时序分析(STA)? 静态时序分析介绍 ...

  2. FPGA开发设计必经之路:时序分析

    转载自:微信公众号:FPGA之家 时序分析是FPGA设计中永恒的话题,也是FPGA开发人员设计进阶的必由之路.慢慢来,先介绍时序分析中的一些基本概念. 时钟的时序特性主要分为抖动(Jitter).偏移 ...

  3. FPGA的设计艺术(6)STA实战之SmartTime时序约束及分析示例(I)

    前言 FPGA进行时序分析通常使用厂家的编译工具,进行时序分析,但是万变不离其宗,时序分析的知识通常都是通用的,原理都是一致的.下面根据SmartTime的资料来看下时序分析的实际操作是如何的,这在其 ...

  4. FPGA的设计艺术(4)STA实战之不同时序路径的建立保持时间计算

    前言 本文首发:FPGA的设计艺术(4)STA实战之不同时序路径的建立保持时间计算 STA定义 STA定义为:时序验证,可确保各种电路时序是否满足各种时序要求. ASIC / FPGA设计流程中最重要 ...

  5. FPGA的设计艺术(11)FPGA的构建过程

    前言 本文讨论FPGA的构建过程,由于FPGA的过程太多了,恐怕会有歧义,这个过程,不是开发过程,不是开发流程,而是实实在在的FPGA编译的过程,使用编译恐怕不是太合适,但是大家都叫习惯了,也知道FP ...

  6. FPGA的设计艺术(5)STA实战之时钟偏斜对建立保持时间的影响以及时序报告分析

    前言 本文首发:FPGA的设计艺术(5)STA实战之时钟偏斜对建立保持时间的影响以及时序报告分析. STA回顾 70年代的时序是通过Spice仿真执行的.80年代的时序包括在Verilog仿真中,以确 ...

  7. FPGA的设计艺术(2)FPGA开发流程

    前言 注:本文首发易百纳技术社区,文章链接:FPGA的设计艺术(2)FPGA开发流程 本文介绍整个FPGA设计流程以及设计FPGA所需的各个步骤-从一开始到可以将设计下载到FPGA的阶段.但是在此之前 ...

  8. 从 Spec.到芯片_(数字IC、模拟IC、FPGA/CPLD设计的流程及EDA工具)

    从 Spec.到芯片→ 先来看张图,本图体现出了集成电路产业链:设计业.制造业.封测业. 关于制造.封装测试我们看两张图稍作了解即可: 关于设计,是本文主要内容,主要从下方几个方面了解: 1.IC设计 ...

  9. FPGA逻辑设计回顾(10)DDR/DDR2/DDR3中的时序参数的含义

    前言 本文首发自:FPGA逻辑设计回顾(10)DDR/DDR2/DDR3中的时序参数的含义 上篇文章:FPGA逻辑设计回顾(9)DDR的前世今生以及演变过程中的技术差异有提到,制造商会以一系列由破折号 ...

最新文章

  1. shell下function报错
  2. 百度地图的立体效果来实现
  3. 数据集标注工具_数据标注分享9个数据标注工具
  4. V100服务器和T4服务器的性能指标
  5. 渴望订阅– RxJava常见问题解答
  6. Spyder打开报错解决办法
  7. ecshop 收货人信息电话必填改为手机必填
  8. table内容超出宽度时隐藏并显示省略标记
  9. 【性能优化】增量检查点
  10. Vue-Router学习笔记-(黑马视频)
  11. 微信公众号(头部GIF动图)制作方法
  12. SFP光模块高低温老化测试 高低温试验测试设备
  13. 机械祭天法力无边:C++primer之书店程序包含Sales_item.h源码
  14. 航测新旗舰|大疆M300+赛尔102S
  15. SCI期刊写作必备(二):代码|手把手绘制目标检测领域YOLO论文常见的性能对比折线图,一键生成YOLOv7等主流论文同款图表,包含多种不同功能风格对比图表
  16. 【system】利用Diskpart命令(cmd)解决装机分区格式不对,增大C盘空间问题
  17. java圆的面积_JAVA求圆的面积
  18. ArcGIS如何加载水经注下载的图片?
  19. 通过adb命令更改手机屏幕比例
  20. 极点五笔/xshell远程/桌面or命令启动/配制打印机/

热门文章

  1. (附源码)ssm+mysql+基于ssm协同过滤推荐算法的电影院购票系统 毕业设计131124
  2. 分治法、动态规划、贪心算法区别
  3. hashmap和数组哪个速度快
  4. Superset(5):Superset Dashboards看板展示实战
  5. Automative SPICE 之五 工作产品特性
  6. xshell常用命令
  7. 【转载】六一节到了,别忘了给孩子讲讲很久以前的事
  8. 【通俗理解线性代数】 -- 矩阵的相似对角化
  9. idea中git打tag详解
  10. 【Android】之屏幕适配