约束的作用.doc

上传人:hw****26 文档编号:3200975 上传时间:2019-05-25 格式:DOC 页数:8 大小:5.55MB
下载 相关 举报
约束的作用.doc_第1页
第1页 / 共8页
约束的作用.doc_第2页
第2页 / 共8页
约束的作用.doc_第3页
第3页 / 共8页
约束的作用.doc_第4页
第4页 / 共8页
约束的作用.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、 约束的作用有些人不知道何时该添加约束,何时不需要添加?有些人认为低速设计不需要时序约束?关于这些问题,希望下面关于约束作用的论述能够有所帮助! 附加约束的基本作用有 3:(1)提高设计的工作频率对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。(2)获得正确的时序分析报告几乎所有的 FPGA 设计平台都包含静态时序分析工具,利用这类工具可以获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确

2、输入约束,以便静态时序分析工具输出正确的时序分析报告。(3)指定 FPGA/CPLD 引脚位置与电气标准FPGA/CPLD 的可编程特性使电路板设计加工和 FPGA/CPLD 设计可以同时进行,而不必等 FPGA/CPLD 引脚位置完全确定,从而节省了系统开发时间。这样,电路板加工完成后,设计者要根据电路板的走线对FPGA/CPLD 加上引脚位置约束,使 FPGA/CPLD 与电路板正确连接。另外通过约束还可以指定 IO 引脚所支持的接口标准和其他电气特性。为了满足日新月异的通信发展,Xilinx 新型 FPGA/CPLD 可以通过 IO 引脚约束设置支持诸如AGP、BLVDS、CTT、GTL

3、、GTLP、HSTL、LDT、LVCMOS、LVDCI、LVDS、LVPECL、LVDSEXT、LVTTL、PCI、PCIX、SSTL、ULVDS 等丰富的 IO 接口标准时序约束的概念和基本策略! 时序约束主要包括周期约束(FFS 到 FFS,即触发器到触发器)和偏移约束(IPAD 到 FFS、FFS 到 OPAD)以及静态路径约束(IPAD 到 OPAD)等 3 种。通过附加约束条件可以使综合布线工具调整映射和布局布线过程,使设计达到时序要求。例如用 OFFSET_IN_BEFORE 约束可以告诉综合布线工具输入信号在时钟之前什么时候准备好,综合布线工具就可以根据这个约束调整与 IPAD

4、相连的 Logic Circuitry 的综合实现过程,使结果满足 FFS 的建立时间要求。附加时序约束的一般策略是先附加全局约束,然后对快速和慢速例外路径附加专门约束。附加全局约束时,首先定义设计的所有时钟,对各时钟域内的同步元件进行分组,对分组附加周期约束,然后对 FPGA/CPLD输入输出 PAD 附加偏移约束、对全组合逻辑的 PAD TO PAD 路径附加约束。附加专门约束时,首先约束分组之间的路径,然后约束快、慢速例外路径和多周期路径,以及其他特殊路径。 周期(PERIOD)的含义周期的含义是时序中最简单也是最重要的含义,其它很多时序概念会因为软件商不同略有差异,而周期的概念确是最通

5、用的,周期的概念是 FPGA/ASIC 时序定义的基础概念。后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据 PERIOD 约束检查时钟域内所有同步元件的时序是否满足要求。PERIOD 约束会自动处理寄存器时钟端的反相问题,如果相邻同步元件时钟相位相反,那么它们之间的延迟将被默认限制为 PERIOD 约束值的一半。如下图所示,时钟的最小周期为:TCLK = TCKO +TLOGIC +TNET +TSETUP TCLK_SKEWTCLK_SKEW =TCD2 TCD1其中 TCKO

6、 为时钟输出时间,TLOGIC 为同步元件之间的组合逻辑延迟, TNET 为网线延迟,TSETUP 为同步元件的建立时间,TCLK_SKEW 为时钟信号延迟的差别。数据和时钟之间的约束:OFFSET 和 SETUP、HOLD 时间。为了确保芯片数据采样可靠和下级芯片之间正确的交换数据,需要约束外部时钟和数据输入输出引脚之间的时序关系(或者内部时钟和外部输入/输出数据之间的关系,这仅仅是从采用了不同的参照系罢了) 。约束的内容为告诉综合器、布线器输入数据到达的时刻,或者输出数据稳定的时刻,从而保证与下一级电路的时序关系。这种时序约束在 Xilinx 中用 Setup to Clock(edge)

7、 ,Clock(edge) to hold 等表示。在Altera 里常用 tsu (Input Setup Times)、th (Input Hold Times)、tco (Clock to Out Delays)来表示。很多其它时序工具直接用 setup 和 hold 表示。其实他们所要描述的是同一个问题,仅仅是时间节点的定义上略有不同。下面依次介绍关于输入到达时间,这一贴估计问题比较多,看起来也比较累,但是没有办法,这些都是时序的基本概念啊。搞不清楚,永远痛苦,长痛不如短痛了,呵呵。 Xilinx 的“输入到达时间的计算“时序描述如图所示: 定义的含义是输入数据在有效时钟沿之后的 TA

8、RRIVAL 时刻到达。则,TARRIVAL=TCKO+TOUTPUT+TLOGIC 公式 1根据”贴 3“介绍的周期(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 的延迟之和,TS

9、ETUP 为输入同步元件的建立时间。数据延时和数据到达时间的关系:TDELAY 为要求的芯片内部输入延迟,其最大值 TDELAY_MAX 与输入数据到达时间 TARRIVAL 的关系如图 2 所示。也就是说:TDELAY_MAX+TARRIVAL=TPERIOD 公式 4所以:TDELAYTDELAY_MAX=TPERIODTARRIVAL要求输出的稳定时间从下一级输入端的延迟可以计算出当前设计输出的数据必须在何时稳定下来,根据这个数据对设计输出端的逻辑布线进行约束,以满足下一级的建立时间要求,保证下一级采样的数据是稳定的。计算要求的输出稳定时间如图所示。公式的推导如下:定义:TSTABLE

10、= TLOGIC +TINPUT +TSETUP从前面帖子介绍的周期(Period)公式,可以得到(其中 TCLK_SKEWTCLK1 TCLK2):TCLK TCKOTOUTPUT+TLOGIC+TINPUT+TSETUP+TCLK_SKEW将 TSTABLE 的定义代入到周期公式,可以得到:TCLK=TCKO+TOUTPUT+TSTABLE+TCLK_SKEW所以,TCKO +TOUTPUT+TSTABLETCLK这个公式就是 TSTABLE 必须要满足的基本时序关系,即本级的输出应该保持怎么样的稳定状态,才能保证下级芯片的采样稳定。有时我们也称这个约束关系是输出数据的保持时间的时序约束关

11、系。只要满足上述关系,当前芯片输出端的数据比时钟上升沿提早 TSTABLE 时间稳定下来,下一级就可以正确地采样数据。其中 TOUTPUT 为设计中连接同步元件输出端的组合逻辑、网线和 PAD 的延迟之和,TCKO 为同步元件时钟输出时间实施上述约束的方法和命令。实施上述约束的基本方法是,根据已知时序信息,推算需要约束的时间值,实施约约束。具体的说是这样的,首先对于一般设计,首先掌握的是 TCLK,这个对于设计者来说是个已知量。前面介绍公式和图中的TCKO 和 TSETUP(注:有的工具软件对 TCKO 和 TSETUP 的定义与前面图形不同,还包含了到达同步器件的一段 logic 的时延)是

12、器件内部固有的一个时间量,一般我们选取典型值,对于 FPGA,这个量值比较小,一般不大于 12ns。比较难以确定的是 TINPUT 和 TOUTPUT 两个时间量。约束输入时间偏移,需要知道 TINPUT,TINPUT 为输入端的组合逻辑、网线和 PAD 的延迟之和(详细定义见帖 5) ,PAD 的延时也根据器件型号也有典型值可选,但是到达输入端的组合逻辑电路和网线的延时就比较难以确定了,只能通过静态时序分析工具分析,或者通过底层布局布线工具量取,有很大的经验和试探的成分在里面。约束输出时间偏移,需要知道 TOUTPUT,TOUTPUT 为设计中连接同步元件输出端的组合逻辑、网线和PAD 的延

13、迟之和(见帖 7) ,仍然是到达输出端的组合逻辑电路和网线的延时就比较难以确定,需要通过静态时序分析工具分析,或者通过底层布局布线工具量取,有很大的经验和试探的成分在里面。 约束的具体命令根据约束工具不同而异,首先说使用 Xilinx 器件的情况下,实施上述约束的命令和方法。Xilinx 把上述约束统称为:OFFSET 约束(偏移约束),一共有 4 个相关约束属性:OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE 和 OFFSET_OUT_AFTER。其中前两个属性叫做输入偏移(OFFSET_IN)约束,基本功能相似,仅仅是约束取的参考对象不

14、同而已。后两个属性叫做输出偏移(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其中

15、TDELAY 为要求的芯片内部输入延迟,其最大值与输入数据到达时间 TARRIVAL 的关系如帖 6 所述: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约束,也可以直接对芯片内部的输出逻辑直

16、接进行约束,NET DATA_OUT OFFET=OUT TOUTPUT_DELAY AFTER CLK,其中 TOUTPUT_DELAY 为要求的芯片内部输出延迟,其最大值与要求的输出数据稳定时间 TSTABLE 的关系为:TOUTPUT_DELAY_MAX+TSTABLE= TPERIOD.TOUT_DELAY TPERIOD - TSTABLE = 20 - 15 = 5nsAltera 对应的时序概念这两天太忙了,帖子上的有些慢,请朋友们原谅,我会尽量按照计划写完这个主题的。 前面 8 个帖子介绍了一些时序概念,有的是 FPGA/ASIC 设计的一般性时序概念,有的为了方便叙述,主要介

17、绍了 Xilinx 对应的这些时序概念,和具体的约束熟悉。下面几个帖子主要介绍 Altera 对应的这些时序概念和约束方法。 前面首先介绍的第一个时序概念是周期,Period,这个概念是 FPGA/ASIC 通用的一个概念,各方的定义相当统一,至多是描述方式不同罢了,所有的 FPGA 设计都首先要进行周期约束,这样做的好处除了在综合与布局布线时给出规定目标外,还能让时序分析工具考察整个设计的 Fmax 等。Altera 的周期定义如图所示,公式描述如下: Clock Period = Clk-to-out + Data Delay + Setup Time - Clk Skew即,Tclk =

18、 Tco + B + Tsu -(E-C)Fmax = 1/Tclk对比一下前面的介绍,只要理解了 B 包含了两级寄存器之间的所有 logic 和 net 的延时就会发现与前面公式完全一致。 一个设计的 Fmax 在时序报告,或者在图形界面观察。以 Quartus2 为例,在图形界面的观察方法是,编译实现完成后,展开 Compilation Report 下面的 Timing Analyses,单击 Fmax(not include delays to / from pins)即可。在详细报告窗口可以观察到影响周期恶化的 10 条最差时序路径,根据这些信息可以找出关键路径,进行时序分析。关于时

19、序分析和关键路径改进等内容在后面的帖子会有专门的讨论,暂时不做进一步介绍使用 Fmax 选项分析影响周期恶化的 10 条最差时序路径Clock Setup Time (tsu)要想正确采样数据,就必须使数据和使能信号在有效时钟沿到达前就准备好,所谓时钟建立时间就是指时钟到达前,数据和使能已经准备好的最小时间间隔。如图 1 所示: 注:这里定义 Setup 时间是站在同步时序整个路径上的,需要区别的是另一个概念 Micro tsu。Micro tsu 指的是一个触发器内部的建立时间,它是触发器的固有属性,一般典型值小于 12ns。在 Xilinx 等的时序概念中,称 Altera 的 Micro

20、 tsu 为 setup 时间,用 Tsetup 表示,请大家区分一下。 回到 Altera 的时序概念,Altera 的 tsu 定义如下:tsu = Data Delay Clock Delay + Micro tsuClock Hold Time tH时钟保持时间是只能保证有效时钟沿正确采用的数据和使能信号的最小稳定时间。其定义如图 2 所示。定义的公式为:tH= Clock Delay Data Delay + Micro tH 注:其中 Micro tH 是指寄存器内部的固有保持时间,同样是寄存器的一个固有参数,典型值小于 12nsClock-to-Output Delay(tco

21、)这个时间指的是当时钟有效沿变化后,将数据推倒同步时序路径的输出端的最小时间间隔。如图 3 所示。tco Clock Delay + Micro tco + Data Delay 注:其中 Micor tco 也是一个寄存器的固有属性,指的是寄存器相应时钟有效沿,将数据送到输出端口的内部时间参数。它与 Xilinx 的时序定义中,有一个概念叫 Tcko 是同一个概念。Pin to Pin Delay (tpd)tpd 指输入管脚通过纯组合逻辑到达输出管脚这段路径的延时,特别需要说明的是,要求输入到输出之间只有组合逻辑,才是 tpd 延时。 7.SlackSlack 是表示设计是否满足时序的一个称谓,正的 slack 表示满足时序(时序的余量),负的 slack 表示不满足时序(时序的欠缺量)。slack 的定义和图形如图 4 所示。Slack = Required clock period Actual clock periodSlack = Slack clock period (Micro tCO+ Data Delay + Micro tSU8.Clock SkewClock Skew 指一个同源时钟到达两个不同的寄存器时钟端的时间偏移

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。