FPGA时序约束方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1FPGA时序约束方法课程安排•时序约束的目的•时序约束的内容•XilinxFPGA时序约束方法•AlteraFPGA时序约束方法•时序约束的原则课程安排•时序约束的目的•时序约束的内容•XilinxFPGA时序约束方法•AlteraFPGA时序约束方法•时序约束的原则什么情况需要做时序约束•当设计仅有一个时钟信号,且频率低于50MHz,逻辑电路简单(7级以下),不需要对设计进行时序约束。•当设计超过50MHz,或者设计较为复杂时,需要进行时序约束。45•提高设计的工作频率•通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。•获得正确的时序分析报告•FPGA设计平台包含静态时序分析工具,可以获得映射或布局布线后的时序分析报告,从而对设计的性能做出评估。•静态时序分析工具以约束作为判断时序是否满足设计要求的标准。•指定FPGA引脚位置与电气标准•FPGA的可编程特性使电路板设计加工和FPGA设计可以同时进行,而不必等FPGA引脚位置完全确定,从而节省了系统开发时间。•通过约束还可以指定I/O引脚所支持的接口标准和其他电气特性。约束的基本作用时序约束对FPGA设计影响•EDA工具不会试图寻找达到最快速度的Place&Route结果•施加时序约束后,implementation工具才会尝试满足性能期望•你对设计性能的期望是通过设计时序约束传递给EDA工具的•让相关逻辑尽量靠近,从而减小布线延迟。通过这个方法,时序约束试图满足你的性能要求6时序约束的影响WithglobaltimingconstraintsAlltimingpathsareevaluatedI/Opathsareimproved(CLBsareplaceclosertoI/Opins)WithoutglobaltimingconstraintsLogictendstobegroupedtoimproveinternaltimingattheexpenseofI/Otiming用时序约束定义时序的目标•时序约束定义时序目标•Over-constrain需要额外的布局布线时间•尝试尽量使用时序约束,即使在时序要求在中等情况下•非现实的时序约束将会使工具停下来•综合工具的timingreport和Post-MapStaticTimingReport包含性能估计•都告诉了约束是否符合现实•在工具完成流程后,需要审核Post-Place&RouteStaticTimingReportto来确定目标是否满足•如果时序不满足,根据TimingReport找到原因课程安排•时序约束的目的•时序约束的内容•XilinxFPGA时序约束方法•AlteraFPGA时序约束方法•时序约束的原则时序约束的内容•时钟定义:包含所有的时钟•输入路径延迟•输出路径延迟•多周期路径•异步电路中的虚假路径10时钟定义•时钟周期11•Clocklatency&uncertainty12输入路径延迟•NeedtospecifytimingrelationshipfromASSPtoFPGAtoguaranteesetup/holdinFPGAFPGA/CPLDASSPreg1PREDQCLRreg2PREDQCLRCL*TdataintTclk1Tclk2extTCOTsu/ThOSC*RepresentsdelayduetocapacitiveloadingTdata_PCBTclk2intTcorepresentstotalclock-to-outputtimeofASSP(i.e.datasheetspec)•NeedtospecifytimingrelationshipfromFPGAtoASSPtoguaranteeclock-to-outputtimesinFPGA13输出路径延迟*RepresentsdelayduetocapacitiveloadingASSPFPGA/CPLDreg1PREDQCLRreg2PREDQCLRCL*TdataintTclk1(ext)Tclk2Tsu/ThOSCTdata_PCBTclk1intTCOTsu/Threpresenttotalsetup/holdtimeofASSP(i.e.datasheetspec)14Source-Synchronous接口•Bothdata&clocktransmittedbyhostdevicewithdesignatedphaserelationship(e.g.edgeorcenter-aligned)•Noclocktreeskewincludedincalculation•Targetdeviceusestransmittedclocktosampleincomingdata•Data&clockroutedidenticallytomaintainphaserelationshipatdestinationdevice•Boarddelaynotincludedinexternaldelaycalculations•Clocktracedelay(datarequiredtime)&Datatracedelay(dataarrivaltime)areequalandoffset•Enableshigherinterfacespeeds(comparedtousingsystemclock)ASSP2PREDQCLRFPGAPREDQCLRoutregdatainclkindataoutPLL*clkoutPREDQCLRinregASSP1PREDQCLR多周期Multi-cycle路径•多周期路径是指从launch到latch数据超过一个时钟周期16Multicycle(1)FPGA/CPLDclkreg1PREDQCLRreg2PREDQCLRreg1.clkreg2.clkDVWLaunchedgeLatchedgeStandardsingle-cycleregistertransferMulticycleSetup=1(Default)MulticycleHold=0(Default)*H0S117DVWUnderstandingMulticycle(2)reg1.clkreg2.clkLaunchedgeLatchedgeChangetoatwocyclesetup;singlecycleholdtransferMulticycleSetup=2MulticycleHold=0(Default)S1S2H0Inthisexample,thereisnoenabletopreventpartialdatafrombeingclockedintoREG2,soholdtiminganalysiswillcheckifdatacanarrivetoosoonattheinputtoREG2.FPGA/CPLDclkreg1PREDQCLRreg2PREDQCLR虚假路径•Afalsepathisthepathwhichisneversensitized/caredduetothelogicconfiguration,expecteddatasequence,oroperatingmode.•ItwillnotbecheckedinSTA19FPGAdataclk1reg1reg2reg3clk2PREDQCLRPREDQCLRPREDQCLR课程安排•时序约束的目的•时序约束的内容•XilinxFPGA时序约束方法•AlteraFPGA时序约束方法•时序约束的原则XilinxFPGA时序约束方法(1)•时序约束覆盖的基本路径包括:•输入路径(Inputpaths)•同步元件路径(Synchronouselementtosynchronouselementpaths)、•输出路径(Outputpaths)•特殊路径(Pathspecificexceptions)•最有效的办法是从全局约束开始,然后根据需要做特定路径约束。FPGA实现工具在时序约束的驱动下,完成映射、布局和布线,最终实现时序目标。•约束编辑器提供了一个统一的界面管理设计的所有时序约束,并且提供图形化的界面简化输入过程。21XilinxFPGA时序约束方法(2)•全局时序约束条件为设计中的所有组合路径设置时序要求,全局约束条件覆盖整个设计。设计需要的基本时序约束主要包括:•每个时钟的全局周期约束(GlobalPeriod)•全局输入偏移约束(GlobalOFFSETIN)•全局输出偏移约束(GlobalOFFSETOUT)•为了提高约束准确性,还可以使用特殊路径约束•多周期路径(Multi-cyclePath)•TIG(TimingIgnore)•在定义时序例外路径时,推荐按照实际的需求设置时序约束值。过约束会造成布局和布线时间过长以及增加资源占用等问题,甚至反而降低系统性能。22建立TimingConstraintsStep1:按照pathendpoints进行分组SynchronouselementI/OpadsStep2:在组与组之间指定时序要求建立Timingconstraints需要两步Globaltimingconstraintsuseadefaultgroupingofpathendpointswhichmakesiteasytoconstrainyourdesign24•周期(PERIOD)指参考网络为时钟的同步元件间的路径,包括:flip-flop、latch、synchronousRAM、DSP48等。•周期约束不会优化以下路径:•从输入管脚到输出管脚之间的路径纯组合逻辑•从输入管脚到同步元件之间的路径•从同步元件到输出管脚的路径周期约束周期约束路径示意图周期约束:精确的时间信息•源flip-flop和目的flip-flop之间的clockskew•时钟负沿动作的同步元件•占空比不等•输入时钟抖动(jitter)26•周期约束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据周期约束检查与同步时序约束端口相连接的所有路径延迟是否满足要求。•周期是时序中最简单也是最重要的含义,后面要讲到的其它时序约束都是建立在周期约束的基础上的,很多其它时序公式,可以用周期公式推导。•在附加周期约束之前,首先要对电路的时钟周期有一定的估计,不能盲目上。约束过松,性能达不到要求,需要有少量余量;约束过紧,会大大增加布局布线时间,甚至效果相反。周期约束27•周期约束的计算•设计内部电路所能达到的最高运行频率取决于同步元件本身的建立保持时间,以及同步元件之间的逻辑和布线延迟。•时钟的最小周期为:Tperiod=Tcko+Tlogic+Tnet+Tsetup-Tclk_skewTclk_skew=Tcd2-Tcd1周期约束其中Tcko为时钟输出时间,Tlogic为同步元件之间的组合逻辑延迟,Tnet为网线延迟。Tsetup为同步元件的建立时间,Tclk_skew为时钟信号偏斜。周期约束•设计中的每个时钟都应该定义周期约束。定义周期约束的优选方式是使用TIMESPEC周期约束语句。•TIMESPEC周期约束语句能够定义衍生时钟关系,如“DLL/DCM/PLL/BUFR/PMCD”时钟变换元件输出时钟的周期约束。衍生时钟的TIMESPEC周期约束需要根据其源时钟的TIMESPEC周期约束来定义。衍生时钟是相关的。2829•附加周期约束的一个例子:NETSYS_CLKPERIOD=10nsHIGH4ns这个约束将被附加到SYS_CLK所驱动的所有同步元件上。•PERIOD约束自动处理寄存器时钟端的反相问题,如果相邻同步元件时钟相位相反,那么它们间的延迟将默认限制为PERIOD约束值的一半。反相时钟周期约束问题的例子周期约束实例1周期约束实例2•TS_Period_1和TS_Period_2是相关时钟域,TS_Period_2周期约束值是TS_Period_1周期约束值的2倍,

1 / 105
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功