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

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

3天内不再提示

约束、时序分析的概念

FPGA之家 来源:FPGA之家 2023-05-29 10:06 次阅读

很多人询问关于约束、时序分析的问题,比如:如何设置setup,hold时间?如何使用全局时钟和第二全局时钟(长线资源)?如何进行分组约束?如何约束某部分组合逻辑?如何通过约束保证异步时钟域之间的数据交换可靠?如何使用I/O逻辑单元内部的寄存器资源?如何进行物理区域约束,完成物理综合和物理实现?为了解决大家的疑难,我们将逐一讨论这些问题。(注:以下主要设计时序约束)

A 时序约束的概念和基本策略

时序约束主要包括周期约束(FFS到FFS,即触发器到触发器)和偏移约束(IPAD到FFS、FFS到OPAD)以及静态路径约束(IPAD到OPAD)等3种。通过附加约束条件可以使综合布线工具调整映射和布局布线过程,使设计达到时序要求。例如用OFFSET_IN_BEFORE约束可以告诉综合布线工具输入信号在时钟之前什么时候准备好,综合布线工具就可以根据这个约束调整与IPAD相连的Logic Circuitry的综合实现过程,使结果满足FFS的建立时间要求。

附加时序约束的一般策略是先附加全局约束,然后对快速和慢速例外路径附加专门约束。附加全局约束时,首先定义设计的所有时钟,对各时钟域内的同步元件进行分组,对分组附加周期约束,然后对FPGA/CPLD输入输出PAD附加偏移约束、对全组合逻辑的PAD TO PAD路径附加约束。附加专门约束时,首先约束分组之间的路径,然后约束快、慢速例外路径和多周期路径,以及其他特殊路径。

B 附加约束的基本作用

提高设计的工作频率

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

获得正确的时序分析报告

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

指定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上规划各个模块的实现区域,通过物理布局布线约束,完成模块化设计等。

C 周期(PERIOD)的含义

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

图1 周期的定义

时钟的最小周期为:

TCLK = TCKO +TLOGIC +TNET +TSETUP -TCLK_SKEW

TCLK_SKEW =TCD2 -TCD1

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

256851d8-fbcb-11ed-90ce-dac502259ad0.jpg

D 数据和时钟之间的约束

为了确保芯片数据采样可靠和下级芯片之间正确地交换数据,需要约束外部时钟和数据输入输出引脚之间的时序关系(或者内部时钟和外部输入/输出数据之间的关系,这仅仅是从采用了不同的参照系罢了)。约束的内容为告诉综合器、布线器输入数据到达的时刻,或者输出数据稳定的时刻,从而保证与下一级电路的时序关系。

这种时序约束在Xilinx中用Setup to Clock(edge),Clock(edge) to hold等表示。在Altera里常用tsu (Input Setup Times)、th (Input Hold Times)、tco (Clock to Out Delays)来表示。很多其它时序工具直接用setup和hold表示。其实他们所要描述的是同一个问题,仅仅是时间节点的定义上略有不同。下面依次介绍。

E 关于输入到达时间

Xilinx的"输入到达时间的计算"时序描述如下图所示:

2577fb56-fbcb-11ed-90ce-dac502259ad0.jpg

图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

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

F 数据延时和数据到达时间的关系

2588efe2-fbcb-11ed-90ce-dac502259ad0.jpg

图3 数据延时和数据到达时间示意图

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

所以:

TDELAY

G 要求输出的稳定时间

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

2590d6da-fbcb-11ed-90ce-dac502259ad0.jpg

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

公式的推导如下:

定义: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

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

H 实施时序约束的方法和命令

实施上述约束的基本方法是,根据已知时序信息,推算需要约束的时间值,实施约束。具体地说是这样的,首先对于一般设计,首先掌握的是TCLK,这个对于设计者来说是个已知量。前面介绍公式和图中的TCKO和TSETUP(注:有的工具软件对TCKO和TSETUP的定义与前面图形不同,还包含了到达同步器件的一段logic的时延)是器件内部固有的一个时间量,一般我们选取典型值,对于FPGA,这个量值比较小,一般不大于1~2ns。比较难以确定的是TINPUT和TOUTPUT两个时间量。

约束输入时间偏移,需要知道TINPUT,TINPUT为输入端的组合逻辑、网线和PAD的延迟之和,PAD的延时也根据器件型号也有典型值可选,但是到达输入端的组合逻辑电路和网线的延时就比较难以确定了,只能通过静态时序分析工具分析,或者通过底层布局布线工具量取,有很大的经验和试探的成分在里面。

约束输出时间偏移,需要知道TOUTPUT,TOUTPUT为设计中连接同步元件输出端的组合逻辑、网线和PAD的延迟之和,仍然是到达输出端的组合逻辑电路和网线的延时就比较难以确定,需要通过静态时序分析工具分析,或者通过底层布局布线工具量取,有很大的经验和试探的成分在里面。

约束的具体命令根据约束工具不同而异,首先说使用Xilinx器件的情况下,实施上述约束的命令和方法。Xilinx把上述约束统称为:OFFSET约束(偏移约束),一共有4个相关约束属性:OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE和OFFSET_OUT_AFTER。其中前两个属性叫做输入偏移(OFFSET_IN)约束,基本功能相似,仅仅是约束取的参考对象不同而已。后两个属性叫做输出偏移(OFFSET_OUT)约束,基本功能相似,也是约束取的参考对象不同而已。为了便于理解,举例说明。

输入偏移约束:时钟周期为20ns,前级寄存器的TCKO选择1ns,前级输出逻辑延时TOUTPUT为3ns,中间逻辑TLOGIC的延时为10ns,那么TARRIVAL=14ns,于是可以在数据输入引脚附加NET DATA_IN OFFET=IN 14ns AFTER CLK约束,也可以使用OFFSET_IN_BEFORE对芯片内部的输入逻辑进行约束,其语法如下:

NET DATA_IN OFFET=IN TDELAY BEFORE CLK

其中TDELAY为要求的芯片内部输入延迟,其最大值与输入数据到达时间TARRIVAL的关系:TDELAY_MAX + TARRIVAL = TPERIOD,所以TDELAY < TPERIOD - TARRIVAL = 20 - 14 =6 ns。

输出偏移约束:设时钟周期为20ns,后级输入逻辑延时TINPUT为4ns、建立时间TSETUP为1ns,中间逻辑TLOGIC的延时为10ns,那么TSTABLE=15ns,于是可以在数据输入引脚附加NET DATA_OUT OFFET=OUT 15ns BEFORE CLK约束,也可以直接对芯片内部的输出逻辑直接进行约束,NET DATA_OUT OFFET=OUT TOUTPUT_DELAY AFTER CLK,其中TOUTPUT_DELAY为要求的芯片内部输出延迟,其最大值与要求的输出数据稳定时间TSTABLE的关系为:

TOUTPUT_DELAY_MAX+TSTABLE= TPERIOD。TOUT_DELAY< TPERIOD - TSTABLE = 20 - 15 = 5ns

I Altera对应的时序概念

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

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

图5 Altera 的 Period 示意图

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

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

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

259f4ef4-fbcb-11ed-90ce-dac502259ad0.jpg

J Altera的其他基本时序概念

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

25b60bee-fbcb-11ed-90ce-dac502259ad0.jpg

图6 tsu示意图

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

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

25c13712-fbcb-11ed-90ce-dac502259ad0.jpg

图7 tH示意图

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

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

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

25ce6450-fbcb-11ed-90ce-dac502259ad0.jpg

图8 tco示意图

tco = Clock Delay + Micro tco + Data Delay

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

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

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

25da17c8-fbcb-11ed-90ce-dac502259ad0.jpg

图9 slack示意图

Slack = Required clock period – Actual clock period

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

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

25e46610-fbcb-11ed-90ce-dac502259ad0.jpg

图10 clock skew示意图

审核编辑:汤梓红

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

    关注

    1625

    文章

    21663

    浏览量

    601663
  • 接口
    +关注

    关注

    33

    文章

    8486

    浏览量

    150804
  • 时序分析
    +关注

    关注

    2

    文章

    127

    浏览量

    22548
  • 约束
    +关注

    关注

    0

    文章

    82

    浏览量

    12717

原文标题:约束、时序分析的概念

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    VIVADO时序约束及STA基础

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

    FPGA的IO口时序约束分析

      在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束时序例外
    发表于 09-27 09:56 1715次阅读

    时序约束资料包

    好的时序是设计出来的,不是约束出来的时序就是一种关系,这种关系的基本概念有哪些?这种关系需要约束吗?各自的详细情况有哪些?
    发表于 08-01 16:45

    时序约束是如何影响数字系统的,具体如何做时序分析

    在进行数字电路系统的设计时,时序是否能够满足要求直接影响着电路的功能和性能。本文首先讲解了时序分析中重要的概念,并将这些概念同数字系统的性
    发表于 08-16 07:25

    FPGA时序分析约束(1)——基本概念 精选资料分享

    FPGA时序分析约束(1)本文中时序分析使用的平台:quartusⅡ13.0芯片厂家:Inter1、什么是
    发表于 07-26 06:56

    FPGA的约束设计和时序分析

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

    时序约束时序分析 ppt教程

    时序约束时序分析 ppt教程 本章概要:时序约束时序
    发表于 05-17 16:08 0次下载

    时序约束的步骤分析

    FPGA中的时序问题是一个比较重要的问题,时序违例,尤其喜欢在资源利用率较高、时钟频率较高或者是位宽较宽的情况下出现。建立时间和保持时间是FPGA时序约束中两个最基本的
    的头像 发表于 12-23 07:01 2126次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>约束</b>的步骤<b class='flag-5'>分析</b>

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

    时序分析结果,并根据设计者的修复使设计完全满足时序约束的要求。本章包括以下几个部分: 1.1 静态时序
    发表于 11-11 08:00 62次下载
    正点原子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>的基本<b class='flag-5'>概念</b>详细说明

    FPGA时序约束概念和基本策略

    A 时序约束概念和基本策略 时序约束主要包括周期约束(FFS到FFS,即触发器到触发器)和偏移
    的头像 发表于 09-30 15:17 5029次阅读

    FPGA的约束时序分析概念详解

    A 时序约束概念和基本策略 时序约束主要包括周期约束(FFS到FFS,即触发器到触发器)和偏移
    的头像 发表于 10-11 10:23 5459次阅读
    FPGA的<b class='flag-5'>约束</b>、<b class='flag-5'>时序</b><b class='flag-5'>分析</b>的<b class='flag-5'>概念</b>详解

    时序约束的相关知识(一)

    本章节主要介绍一些简单的时序约束概念
    的头像 发表于 03-31 16:37 1595次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>约束</b>的相关知识(一)

    浅谈时序设计和时序约束

      本文主要介绍了时序设计和时序约束
    的头像 发表于 07-04 14:43 1352次阅读

    深度解析FPGA中的时序约束

    建立时间和保持时间是FPGA时序约束中两个最基本的概念,同样在芯片电路时序分析中也存在。
    的头像 发表于 08-06 11:40 556次阅读
    深度解析FPGA中的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>