FPGA时序分析

上传人:ail****e3 文档编号:52870522 上传时间:2022-02-09 格式:DOC 页数:4 大小:93KB
收藏 版权申诉 举报 下载
FPGA时序分析_第1页
第1页 / 共4页
FPGA时序分析_第2页
第2页 / 共4页
FPGA时序分析_第3页
第3页 / 共4页
资源描述:

《FPGA时序分析》由会员分享,可在线阅读,更多相关《FPGA时序分析(4页珍藏版)》请在装配图网上搜索。

1、在给FPGA故逻辑综合和布局布线时,需要在工具中设定时序的约束。通常,在FPGA设计工具中包含有4种路径:O1从输入端口到寄存器,2从寄存器到寄存器,8从寄存器到输出,曾从输入到输出的纯组 合逻辑 。通常,需要对这几种路 径分别进行约束,以便使设计工具能够得到最优化的结果。下面对这几 种路径分别进行讨论。从输入端口到寄存器:这种路径的约束是为了让FPGA设计工具能够尽可能的优化从输入端口到第一级寄存器之间的路径延迟,使其能够保证系统时钟可靠的采到从外部芯片到FPGA的信号。约束名称:in put delay. 约束条件的影响主要有4个因素:外部芯片的 Teo,电路板上信号延迟 Tpd, FPG

2、A勺Tsu,时钟延迟Tclk. Teo 的参 数通常需要查外部芯片的数据手册。计算公式:in put delay = Teo+Tpd+Tsu-Telk . FPGA勺Tsu也需要查FPGA芯片的手册。FPGA速度等级不同,这个参数也不同。Tpd和Tclk需要根据电路板实际的参数来计算。通常,每10cm的线长可以按照1ns来计算.例如:系统时钟100MHz,电路板上最大延迟 2ns,时 钟最大延迟 1.7ns, Teo 3ns, FPGA 的 Tsu 为 0.2ns. 那么输入延迟的值: max Input delay = 3+2+0.2-1.7=3.5ns.这个参数的含义是指让FPGA勺设计工

3、具把 FPGA勺输入端口到第一级寄存器之间的路径延迟(包括门延迟和线延迟)控制在 10ns-3.5ns=6.5ns 以内。寄存器到寄存器:这种路径的约束是为了让FPGA设计工具能够优化 FPGA内寄存器到寄存器之间的路径,使其延迟时间必须小于时钟周期,这样才能确保信号被可靠的传递。由于这种路径只存在于FPGA内部,通常通过设定时钟频率的方式就可以对其进行约束。对于更深入的优化方法,还可以采用对寄存器的输入和寄存器的输 出加入适当的约束,来使逻辑综合器和布线器能够对某条路径进行特别的优化。还可以通过设定最大扇出数来迫使工具对其进行逻辑复制,减少扇出数量,提高性能。寄存器到输出:这种路径的约束是为

4、了让FPGA设计工具能够优化 FPGA内部从最后一级寄存器到输出端口的路径,确保其输出的信号能够被下一级芯片正确的采到。约束的名称: output delay, 约束条件的影响主要有 3个因素:外部芯片的Tsu,电路板上信号延迟 Tpd,时钟延迟Tclk. Tsu 的参数通常需要查外部芯片的数据手册。 计算公式: output delay = Tsu+Tpd-Tclk . 例如:系统时钟 100MHz, 电路板上最大延迟 2ns, 时 钟最大延迟 1.7ns, Tsu 1ns, 输出延迟的值: max output delay = 1+2-1.7=1.3ns .这个参数的含义是指让FPGA勺设

5、计工具把最后一级寄存器到输出端口之间的路径延迟(包括门延迟和线延迟)控制在 10ns-1.3ns=8.7ns 以内。从输入端口到输出端口:这种路径是指组合逻辑的延迟,指信号从输入到输出没有经过任何寄存器。给这种路径加约束条件, 需要虚拟一个时钟,然后通过约束来指定哪些路径是要受该虚拟时钟的约束。在Synplifypro 和Precision中都有相应的约束来处理这种路径。前面讲述了关于输入输出延迟的一些参数的含义和计算方法。如果要把这些参数和altera , xilinx的软件结合起来,也不是一件容易的事情。以前 altera 和 xilinx 的约束条件设定非常烦杂,各自都有一 套。似乎大家

6、也不太看重约束条件的设定, 大多时候都是无论如何先上板, 然后通过 signaltap 和 Chipscope 来调。当FPGA规模大了之后,布线一次都需要很长时间,这种方法的弊端就越来越严重。实际上可以借鉴ASIC的设计方法:加比较完善的约束条件,然后通过RTL仿真,时序分析,后仿真来解决问题,尽量避免在FPGA电路板上来调试。altera 最先意识到这一点,它采用了Synopsys的SDC格式。SDC的格式也得到了逻辑综合器的支持。而且设定方法比较容易掌握。详细讨论一下这种格式的约束设定方法。时钟的设定方法:时钟要分成两种,一种是O1从端口上直接输入的时钟,另一种O 2是在FPGA内部产生

7、的时钟。内部产生的时钟又要分成两种,从锁相环出来的(包括altera 的PLL和Xilinx 的DLL)和从逻辑单元出来的,例如一般的计数器分频就是这种情况。从锁相环出来的时钟可以通过端口直接加,因为一般的综合工具和布线工具都能够自动的把端口的时钟约束传递到锁相环,并且根据锁相环的倍频关系自 动施加到下一级。而从逻辑单元出来的就需要单独对其进行约束。在SDC格式中,创建时钟的命令create_clock ,后面要带 3个参数:name, period, waveform. name的含义是指创建这个时钟约束的名字,而不是时钟本身的名字。要把这个约束和时钟信号关联起来,还需 要在后面加些东西。

8、period 的单位缺省是 ns. waveform 是用来指定占空比。除了这三个参数以外,常常 还要加 get_ports 的命令,来指定时钟的输入端口。下面的例子是一个较为完整的设定时钟的例子:create_clock -name clkl -period 10.000- waveform. 2.000 8.000 get_ports sysclk这个例子表示,有一个 clk1 的约束,在这个约束中设定了时钟的周期为 10ns, 占空比为 2ns 低电平, 8ns 高电平。这个叫做 clk1 的约束是针对 sysclk 这个端口的。如果是利用内部锁相环分频出来很多其他时钟的约束,可以不再另

9、外施加其他约束,逻辑综合器和布 线器都能根据锁相环的参数自动计算。如果是利用内部的逻辑单元分频出来的信号,则必须利用 get_registers 指定分频的寄存器名。例如上例:create_clock -name clkl -period 10.000- waveform. 2.000 8.000 get_registerscnt_clk.对于逻辑单元分频的时钟信号,也可以采用命令 create_generated_clock 会更加精确。举例如下:create_generated_clk -name clk2 -source getports sysclk -div 4 get_regist

10、ers cnt_clk这个约束命令描述了 一个 clk2 的约束,约束的对象是由 sysclk 分频 4 次得到的时钟,这个时钟是由 cnt_clk 这个寄存器产生的。在高速的系统中,对时钟的描述可能会要求的更多,更加细致。例如,会要求对时钟的抖动和时钟的 延迟进行描述。在SDC的文件格式中,可以通过两个命令来描述:set_clock_uncertainty和set_clock_latency 来设定。时钟的延迟相对来讲比较简单。延迟一般分为外部延迟和内部时钟线网的延迟。通常在约束时只对外 部延迟做约束,在 set_clock_latency 的命令后带 -source 的参数就可以了。例如:

11、 set_clock_latency -source 2 get_clocks clk_in 时钟的抖动要稍微复杂一些。因为这个值不但会影响到对 Tsu 的分析,也会影响到对 Thold 的分析。 因此,采用 set_clock_uncertainty 的参数要多一些。如果要理解这个命令对系统时序分析的影响,就需 要对 altera 的延时计算的概念需要做更多的说明。对于 set_clock_uncertainty 的情况,就稍微复杂一些。因为 set_clock_uncertainty 的值既影响建立时 间的计算,也影响保持时间的计算,因此,需要在设定时分别指明:set_clock_unde

12、rtainty- setup 0.500 - from clkA - to clkAset_clock_uncertainty- hold 0.300 - from clkA - to clkA前面的内容里面提供了计算输入输出延迟的计算方法。 输出延迟的命令是 set_output_delay. 有几个 参数要加:参考时钟,最大最小值,和端口的名称。如下面的例子中描述。set_output_delay -clock CLK -max 1.200 get_ports OUT set_output_delay -clock CLK -min 0.800 get_ports OUT 输入延迟的命令很

13、类似: set_input_delay -clock CLK -max 2.000 get_ports IN set_input_delay -clock CLK -min 1.600 get_ports IN对一些特殊的设计要求,例如不关心的数据传递路径和多拍的路径,还需要增加false path 和Multicycle 的设定。这两个约束比较简单,容易设定,但是非常关键。如果设定的不好,系统性能会大打折扣。 false path 是指在时序分析中不考虑其延迟计算的路径。例如有些跨越时钟域的电路等。设定的方法: set_false_path -from get_clocks clkA -to

14、 get_clocks clkB set_false_path -from regA -to regB 第一条命令是设定了从时钟域 clkA 到时钟域 clkB 的所有路径都为 false path. 第二条命令设定了从regA到regB的路径为false path.这两种路径在做时序分析时都会被忽略。multicycle 的设定和 false path 的设定方法差不多。为了让逻辑综合器和布局布线器能够根据时序的约束条件找到真正需要优化的路径,我们还需要对时 序报告进行分析,结合逻辑综合器的时序报告,布线器的时序报告,通过分析,可以看出是否芯片的潜能 已经被完全挖掘出来。关于如何看时序分析报

15、告,如果有机会,也可以专门搞个讲座进行详细的讲解A时序约束的概念和基本策略时序约束主要包括 周期约束(FFS到FFS,即触发器到触发器) 和偏移约束(IPAD到FFS FFS到OPAD 以及静态路径约束 (IPAD到OPAD等3种。通过附加约束条件可以使综合布线工具调整映射和布局布线 过程,使设计达到时序要求。例如用OFFSET_IN_BEFOR约束可以告诉综合布线工具输入信号在时钟之前什么时候准备好,综合布线工具就可以根据这个约束调整与IPAD相连的Logic Circuitry的综合实现过程,使结果满足FFS的建立时间要求。附加时序约束的一般策略是 先附加全局约束,然后对快速和慢速例外路径

16、附加专门约束。附加全局约束时,首先定义设计的所有时钟,对各时钟域内的同步元件进行分组,对分组附加周期约束,然后对 FPGA/CPLD俞入输出PAD附加偏移约束、对全组合逻辑的PADTO PAD路径附加约束。附加专门约束时,首先约束分组之间的路径,然后约束快、慢速例外路径和多周期路径,以及其他特殊路径。B附加约束的基本作用1. 提高设计的工作频率对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。通过附加约 束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。2. 获得正确的时序分析报告几乎所有的FPGA设计平台都包含静态时序分析工具,利用这

17、类工具可以获得映射或布局布线后的时 序分析报告,从而对设计的性能做出评估。静态时序分析工具以约束作为判断时序是否满足设计要求的标准,因此要求设计者正确输入约束,以便静态时序分析工具输出正确的时序分析报告。3. 指定FPGA/CPLDH脚位置与电气标准FPGA/CPLD可编程特性使电路板设计加工和FPGA/CPLD计可以同时进行,而不必等FPGA/CPLE引脚位置完全确定,从而节省了系统开发时间。这样,电路板加工完成后,设计者要根据电路板的走线对 FPGA/CPLD加上引脚位置约束,使FPGA/CPLD!电路板正确连接。 另外通过约束还可以指定 IO引脚所支持的接口标准和其他电气特性。为了满足日

18、新月异的通信发展,Xilinx 新型FPGA/CPLD以通过10引脚约束设置支持诸如 AGP、BLVDS CTT GTL GTLP HSTL LDT LVCMOS LVDCI、LVDS LVPECL LVDSEXT LVTTL PCI、PCIX、SSTL ULVDS等丰富的IO接口标准。另外通过区域约束还能在FPGA上规划各个模块的实现区域,通过物理布局布线约束,完成模块化设计等。C周期(PERIOD的含义周期的含义是时序中最简单也是最重要的含义,其它很多时序概念会因为软件商不同略有差异,而周 期的概念确是最通用的,周期的概念是FPGA/ASIC时序定义的基础概念。后面要讲到的其它时序约束都是

19、建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。周期约束是一个基本时序和综合 约束,它附加在时钟网线上,时序分析工具根据PERIOD勺束检查时钟域内所有同步元件的时序是否满足要求。PERIOD勺束会自动处理寄存器时钟端的反相问题,如果相邻同步元件时钟相位相反,那么它们之间图1周期的定义时钟的最小周期为:TCLK = TCKO +TLOGIC + TNET + TSETUP TCLK_SKEW TCLK_SKEW =TCD TCD1其中TCKO为时钟输出时间,TLOGIC为同步元件之间的组合逻辑延迟,TNET为网线延迟,TSETUP为同步元件的建立时间,TCLK_SKEW为时钟信

20、号 TCD2和 TCD1延迟的差别。D数据和时钟之间的约束为了确保芯片数据采样可靠和下级芯片之间正确地交换数据,需要约束外部时钟和数据输入输出引脚 之间的时序关系(或者内部时钟和外部输入 /输出数据之间的关系,这仅仅是从采用了不同的参照系罢了) 约束的内容为告诉综合器、布线器输入数据到达的时刻,或者输出数据稳定的时刻,从而保证与下一级电 路的时序关系。这种时序约束在 Xili nx 中用 Setup to Clock(edge), Clock (edge) to hold 等表示。在 Altera里常用 tsu (Input Setup Times) 、th (Input Hold Times

21、) 、tco (Clock to Out Delays)来表示。很多其它时序工具直接用 setup和hold表示。其实他们所要描述的是同一个问题,仅仅是时间节点的定义上 略有不同。下面依次介绍。E关于输入到达时间Xilinx 的输入到达时间的计算时序描述如下图所示:401图2输入到达时间示意图定义的含义是输入数据在有效时钟沿之后的TARRIVAL时刻到达。则,TARRIVAL=TCKO+TOUTPUT+TLOGIC根据上面介绍的周期 (Period )公式,我们可以得到 Tcko+Toutput+Tlogic+Tinput+Tsetup-Tclk_skew=Tclk 将公式1代入公式2: Ta

22、rrival+Tinput+Tsetup-Tclk_skew=Tclk,而Tclk_skew 满足时序关系后为负,所以 TARRIVAL +TINPUT+TSETUP TCLK这就是Tarrival应该满足的时序关系。其中TINPUT为输入端的组合逻辑、网线和PAD的延迟之和,TSETUP为输入同步元件的建立时间。ITT1UHITAL1 DELAY JfAXL丄 JrnLJrT1 raucoF数据延时和数据到达时间的关系图3数据延时和数据到达时间示意图TDELAY为要求的芯片内部输入延迟,其最大值TDELAY_MA与输入数据到达时间 TARRIVAL的关系如上 图所示。也就是说:TDELAY_

23、MAX+TARRIVAL=TPERIOD所以:TDELAYTDELAY_MAX=TPEROARRIVALG要求输出的稳定时间从下一级输入端的延迟可以计算出当前设计输出的数据必须在何时稳定下来,根据这个数据对设计输出 端的逻辑布线进行约束,以满足下一级的建立时间要求,保证下一级采样的数据是稳定的。计算要求的 输出稳定时间如下图所示:CLK图4要求的输出稳定时间示意图公式的推导如下:定义:TSTABLE = TLOGIC + TINPUT + TSETUP从前面介绍的周期(Period )公式,可以得到(其中TCLK_SKEWTCLK1 TCLK2):TCLK= TCKG- TOUTPUT+TLO

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

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!