您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第7章-约束与时延分析
第7章约束与时延分析本章主要内容约束的基本概念管脚约束时序约束约束的分析方法静态时延分析6.1约束的目的约束的终极目的就是为了设计达到所要实现的功能主要有如下几个方面的作用。管脚位置锁定及电气标准设定。提高设计的工作频率。获得正确的时序分析报告。6.2管脚约束及电气标准设定管脚约束是CPLD/FPGA的基础之一。管脚约束主要有三种方式:一是采用各家公司的集成开发环境来实现管脚约束二是设计专门的管脚约束文件三是采用注释的方式在代码中自动锁定6.2.1管脚约束文件不同的厂商支持不同的管脚约束文件如Lattice所采用的管脚约束文件为.lpf文件Xilinx支持的管脚约束文件为.ucf文件Altera所使用的管脚约束文件为.qsf文件。Xilinx公司的管脚约束文件.ucf文件的语法规则:通用规则:.ucf文件对于大小写敏感,也就是是说同一单词的大小写不同表示不同的含义,标识符必须与代码中的名字一致。但是约束中的关键字对大小写不敏感。语句以分号结尾,一个语句可以多行表述。语句之间不分先后次序,不过建议管脚约束顺序与代码中管脚列表顺序一致。采用“#”或者“”的方式来进行注释6.3时序约束的基本概念时序约束是指路径之间的约束,任何一条路径都有起点和终点,最重要的是,路径是不能穿过触发器的CPLD/FPGA至少有三种不同的基本路径:一是触发器到触发器之间的路径;一是从输入端口到内部触发器之间的路径;一是从内部触发器到输出端口之间的路径。时序约束有几个重要的基本概念:建立时间、保持时间、时钟到输出延时、传播延时等等。图6–1简单的时序模型6.3.1路径Clock-to-setup路径Clock-to-setup路径是我们常见到的时序模型,一般用来描述CPLD/FPGA内触发器之间的延时。QQSETCLRDREG1QQSETCLRDREG2逻辑和布线延时clk图6–2时序模型示意图图6–3时序逻辑波形示意图路径的延时包括:源端触发器的时钟端到输出端的延时逻辑和布线延时时钟的布线延时建立时间通过计算可以读出最小的时钟周期和最高的时钟频率。输出模型。任何一个CPLD/FPGA在系统中都不是单独存在的,而CPLD/FPGA的时序不仅仅只是内部的时序模型,同样它可以驱动下一级芯片,从而产生一个新的时序模型QQSETCLRD逻辑和布线延时clkPAD图6–4Clock-to-PAD路径Clock-to-PAD路径CLKTcoTpdTobufValiddata图6–5Clock-to-PAD路径波形图从系统层面来看,Clock-to-PAD路径是整个系统中路径延时的一部分,要计算整个路径延时和最小的时钟周期还需要考虑信号在PCB上的走线延时、飞行时间以及下一级接收芯片的输入时序模型。从CPLD/FPGA层面上来看,它包括时钟端到触发器输出端延时、逻辑和布局布线延时、输出缓冲延时等等。Clock-to-PAD设计注意点:当对Clock-to-PAD路径进行时序约束时,需要电路设计工程师、CPLD/FPGA工程师和布局布线工程师共同决定信号在Clock-to-PAD路径的延时、信号在PCB板上的延时以及接收端芯片可承受的延时容限各为多少,最后以文档的形式确定时序约束。PAD-to-Setup路径图6-6是另外一种常见的时序模型,也叫做输入模型。QQSETCLRD逻辑和布线延时clkPAD图6–6PAD-to-Setup路径从CPLD/FPGA层面来看输入模型的路径延时包括了输入缓冲延时、逻辑及布局布线延时以及建立时间从系统角度来看,整条路径的延时还需要包括上一级芯片的输出模型延时以及PCB走线延时和信号的飞行时间因此要确定对此路径进行时序约束,需要召集电路设计工程师和布局布线工程师一起讨论最后决定此路径的时序约束。CLKValidTibufTpdTsuValid图6–7PAD-to-Setup路径波形图PathsEndingatClockPinofFlip-Flops此路径是指时钟信号从源端到达各个具体触发器的时钟端的路径。在CPLD/FPGA中,设计工程师都推荐采用全局时钟来驱动触发器但是尽管采用全局时钟,时钟到达触发器之间还是有一段延时时间,这段时间在计算时延的时候必须考虑进去。clkClk_FF图6–9PathsEndingatClockPinofFlip-Flops波形图QQSETCLRD逻辑和布线延时clk图6–8PathsEndingatClockPinofFlip-FlopPADtoPAD路径图6-10表示为一条纯组合逻辑的路径,从芯片输入的管脚开始,经过任意级的组合逻辑电路,然后从另外一个输出管脚输出。逻辑和布线延时图6–10PADtoPAD路径整条路径的延时分为输入延时、输出延时以及中间的逻辑和布局布线延时。如果放在整个系统层面来看,严格来说不能称之为路径因为这个时延路径的源端和目的端都不在这个芯片里面,而在上一级或者上上级的芯片中和下一级的芯片中。6.3.2时序约束参数建立时间建立时间就是指数据必须在时钟有效沿到来之前稳定的最小时间长度。当建立时间不够的时候,触发器采集不到数据,或者采集到的数据是错误的数据,从而导致整个时序逻辑的错误。任何一个时序逻辑芯片都会存在建立时间这个概念,一般使用Tsu来表示QQSETCLRDQQSETCLRD数据延时数据延时数据延时clkdata时钟延时MicroTsu图6–12计算建立时间的时序模型图保持时间保持时间是指当时钟信号有效沿到来之后,数据必须保持的最小的稳定时间一般采用Th来表示。当保持时间不够的时候,数据传输将出现紊乱,系统将出现亚稳态的问题。时钟到输出延时当时钟到达一个触发器并成功地采样到数据端的数据的时候,并不会立即就表现在输出端上,这之间会有一段延时时间,叫做时钟到输出延时时间一般用Tco表示。传播延时数据从寄存器出来以后,到达下一级寄存器之间的逻辑和布线延迟,就叫做传播延时一般使用Tpd表示。Fmax对于芯片内部而言,它是寄存器到寄存器之间的延时对于整个芯片而言,还需要考虑进入芯片的建立保持时间以及输出芯片的Tco。把它取反就是最小时钟周期的概念。QQSETCLRDQQSETCLRDBAQclk源端外部输入延时目的端外部输出延时CE图6–13计算Fmax的时序模型示意图芯片内部的Fmax的计算方法如下max1()cosufBECTTmax1{__,__,__}fMaxcycleinputclkcycleinclkcycleoutputclk整个系统时钟频率Fmax的计算方法为:SlackSlack用来衡量一个设计是否满足时序——正的slack表示满足时序,而负的slack则表示不满足时序。是指两个不同时钟的有效边沿之差____slackrequiredclockcycleactualclockcycle__()copdsuslackslackclockperiodTTT__slackclockperiod如果slack为负,数据保持时间不够,主要是由于数据路径延时大于时钟延时而造成的。从建立时间来来考虑,最坏的情况是slack是一个时钟周期减去时钟抖动的最大绝对值而从保持时间来考虑,最坏的情况是slack一个时钟周期加上时钟抖动的最大绝对值。对于异步电路来说,由于采用不同的时钟信号进行驱动,时钟偏斜与抖动时钟偏斜是指同一时钟源产生的时钟信号由于经过不同的布局布线延时到达两个不同的寄存器的时钟端的时间之差。建议采用全局时钟资源来驱动设计中的主要时钟信号,以减少时钟偏斜。时钟抖动与时钟偏斜的概念不一样。时钟抖动有很多种情况周期抖动频率抖动相位抖动在时序约束中,我们主要考虑的是周期抖动。所谓的周期抖动是指实际的时钟周期与理想中的时钟之间的偏差。图6–14时钟偏斜示意图QQSETCLRDQQSETCLRDBAclk源端目的端1.2ns2.12ns6.4时序约束的本质时序约束的本质就是要使建立时间和保持时间满足设计的要求当设计同步电路的时候,要使电路正常工作则需要保证时钟周期要不小于数据的路径延时。co(max)pd(max)sucycleskew(max)T+T+T=T+T(min)min(max)||copdskewhTTTT()异步电路的基本设计,它有许多种情况如同频异相、同相异频、既不同相也不同频等等。总体的原则还是需要确保建立时间和保持时间满足设计的要求。如果频率不同,相位差恒定的话,可以采用下面的公式来设计时钟约束如果既不同频也不同相,则需要从电路设计的角度去考虑其稳定性。图6–15时序约束示意图clk2clk1copdsuT-TT+T+T(min)min(max)||copdskewhTTTT()QQSETCLRDQQSETCLRDBclk源端目的端Tclk1Tclk2QQSETCLRDQQSETCLRDBclk1源端目的端clk2clk1clk2图6–16异步时序逻辑示意图6.5静态时延分析静态时延分析是CPLD/FPGA设计中的一个很重要的时序分析手段在设计中主要有三个阶段需要涉及静态时延分析:逻辑综合阶段——需要检查综合的时序质量在布局后——需要检查布局对信号时序的影响在布线后——需要整体考虑信号的质量,包括逻辑时延和布线延时。静态时延设计特别适合于经典的同步设计和流水线结构,静态时延设计不仅速度很快,而且不需要Testbench,最重要的是能够完全测试每一条路径外。静态时延分析工具在处理锁存器、异步电路和组合反馈逻辑的时候存在不足。静态时延分析时,需要考虑以下方面:在分析之前,需要先审查电路是否是同步电路,时钟有无毛刺,异步复位置位信号是否有毛刺等逻辑问题。先检查布局布线的约束文件,确保约束全面。静态时延分析时,需要考虑以下方面:需要特别注意双沿都被使用的时钟信号,延时要求只能是半个周期。如果时钟信号的占空比不是50%,那么延时要求只能是有效边沿之差。对于有I/O管脚的路径,需要考虑输入和输出延时。时钟信号尽量使用全局时钟管脚,否则要考虑时钟偏斜并加以约束。6.6统计静态时延分析内连线延时比逻辑延时大得多,现在的光刻制程不能够产生足够的精确形状,产生的趋肤效应却很明显。解决的方案之一是采用统计静态时延分析(SSTA),它的基本理念就是为每一条线路的每一段上的每一个信号延迟生成一个概率函数,然后再估算信号通过整个路径的总延时概率函数。避免单次静态时延分析生成的报告失真,从统计学的角度观察整个芯片时延状况要求的软件算法非常复杂6.7动态时延分析动态时延分析(DTA)是另外一种时延分析的方法,目前已经不常用。不仅需要使用事件驱动仿真器,而且必须使用Testbench。动态时序分析采用延时对来估算信号变化引起的事件。在动态延时分析中,需要引入两个新的状态:“一定会变成高电平,但是时间未知”“一定会变成低电平,但是时间未知”。实例:建立时间和保持时间违例分析图6–18建立时间和保持时间违例线路图表6–1实例4时延参数表时延参数表元件参数最小值最大值单位U4和U5建立时间tSU2纳秒(ns)保持时间tH0纳秒(ns)时钟到数据有效输出tCO0.92.7纳秒(ns)U1-U3传播时延tPD0.61.8纳秒(ns)时钟周期tCK10纳秒(ns)偏斜1tCS1纳秒(ns)到达测试点2A,B,CtAR0.82.7纳秒(ns)1,从CLKa到CLKb或者从CLKb到CLKa的最大时延2,不考虑时钟偏斜的影响如果信号C实际到达U4,并且能够被正确采样的时间将会是:从信号C到U4时序约束已经违例B:A:在建立时间和保持时间方面,U4到U5的时序约束情况建立时间:,满足时序要求保持时间:,不满足时序要求1.81.81.8212.711.110nsns
本文标题:第7章-约束与时延分析
链接地址:https://www.777doc.com/doc-3899581 .html