第章 约束与时延分析PPT课件_第1页
第章 约束与时延分析PPT课件_第2页
第章 约束与时延分析PPT课件_第3页
第章 约束与时延分析PPT课件_第4页
第章 约束与时延分析PPT课件_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级*单击此处编辑母版标题样式单击此处编辑母版文本样式第二级第三级第四级第五级*第7章 约束与时延分析本章主要内容约束的基本概念管脚约束时序约束约束的分析方法静态时延分析6.1约束的目的约束的终极目的就是为了设计达到所要实现的功能主要有如下几个方面的作用。管脚位置锁定及电气标准设定。提高设计的工作频率。获得正确的时序分析报告。6.2 管脚约束及电气标准设定管脚约束是CPLD/FPGA的基础之一。管脚约束主要有三种方式:一是采用各家公司的集成开发环境来实现管脚约束二是设计专门的管脚约束文件三是采用注释的方式在代码中自动锁定6.2

2、.1 管脚约束文件不同的厂商支持不同的管脚约束文件如Lattice所采用的管脚约束文件为.lpf文件Xilinx支持的管脚约束文件为.ucf文件Altera所使用的管脚约束文件为.qsf文件。Xilinx公司的管脚约束文件.ucf文件的语法规则:通用规则:.ucf文件对于大小写敏感,也就是是说同一单词的大小写不同表示不同的含义,标识符必须与代码中的名字一致。但是约束中的关键字对大小写不敏感。语句以分号结尾,一个语句可以多行表述。语句之间不分先后次序,不过建议管脚约束顺序与代码中管脚列表顺序一致。采用“#”或者“ ”的方式来进行注释6.3 时序约束的基本概念时序约束是指路径之间的约束,任何一条路

3、径都有起点和终点,最重要的是,路径是不能穿过触发器的CPLD/FPGA至少有三种不同的基本路径:一是触发器到触发器之间的路径;一是从输入端口到内部触发器之间的路径;一是从内部触发器到输出端口之间的路径。时序约束有几个重要的基本概念:建立时间、保持时间、时钟到输出延时、传播延时等等。图 61 简单的时序模型6.3.1路径Clock-to-setup路径Clock-to-setup路径是我们常见到的时序模型,一般用来描述CPLD/FPGA内触发器之间的延时。图 62 时序模型示意图图 63 时序逻辑波形示意图路径的延时包括:源端触发器的时钟端到输出端的延时逻辑和布线延时时钟的布线延时建立时间通过计

4、算可以读出最小的时钟周期和最高的时钟频率。输出模型。任何一个CPLD/FPGA在系统中都不是单独存在的,而CPLD/FPGA的时序不仅仅只是内部的时序模型,同样它可以驱动下一级芯片,从而产生一个新的时序模型图 64 Clock-to-PAD路径Clock-to-PAD路径图 65 Clock-to-PAD路径波形图从系统层面来看,Clock-to-PAD路径是整个系统中路径延时的一部分,要计算整个路径延时和最小的时钟周期还需要考虑信号在PCB上的走线延时、飞行时间以及下一级接收芯片的输入时序模型。从CPLD/FPGA层面上来看,它包括时钟端到触发器输出端延时、逻辑和布局布线延时、输出缓冲延时等

5、等。Clock-to-PAD设计注意点:当对Clock-to-PAD路径进行时序约束时,需要电路设计工程师、CPLD/FPGA工程师和布局布线工程师共同决定信号在Clock-to-PAD路径的延时、信号在PCB板上的延时以及接收端芯片可承受的延时容限各为多少,最后以文档的形式确定时序约束。PAD-to-Setup路径图6-6是另外一种常见的时序模型,也叫做输入模型。图 66 PAD-to-Setup路径从CPLD/FPGA层面来看输入模型的路径延时包括了输入缓冲延时、逻辑及布局布线延时以及建立时间从系统角度来看,整条路径的延时还需要包括上一级芯片的输出模型延时以及PCB走线延时和信号的飞行时间

6、因此要确定对此路径进行时序约束,需要召集电路设计工程师和布局布线工程师一起讨论最后决定此路径的时序约束。图 67 PAD-to-Setup路径波形图Paths Ending at Clock Pin of Flip-Flops此路径是指时钟信号从源端到达各个具体触发器的时钟端的路径。在CPLD/FPGA中,设计工程师都推荐采用全局时钟来驱动触发器但是尽管采用全局时钟,时钟到达触发器之间还是有一段延时时间,这段时间在计算时延的时候必须考虑进去。图 69 Paths Ending at Clock Pin of Flip-Flops波形图图 68 Paths Ending at Clock Pin

7、 of Flip-FlopPAD to PAD路径图6-10表示为一条纯组合逻辑的路径,从芯片输入的管脚开始,经过任意级的组合逻辑电路,然后从另外一个输出管脚输出。图 610 PAD to PAD路径整条路径的延时分为输入延时、输出延时以及中间的逻辑和布局布线延时。如果放在整个系统层面来看,严格来说不能称之为路径因为这个时延路径的源端和目的端都不在这个芯片里面,而在上一级或者上上级的芯片中和下一级的芯片中。6.3.2 时序约束参数建立时间建立时间就是指数据必须在时钟有效沿到来之前稳定的最小时间长度。当建立时间不够的时候,触发器采集不到数据,或者采集到的数据是错误的数据,从而导致整个时序逻辑的错

8、误。任何一个时序逻辑芯片都会存在建立时间这个概念,一般使用 Tsu来表示图 612 计算建立时间的时序模型图保持时间保持时间是指当时钟信号有效沿到来之后,数据必须保持的最小的稳定时间一般采用Th来表示。当保持时间不够的时候,数据传输将出现紊乱,系统将出现亚稳态的问题。时钟到输出延时当时钟到达一个触发器并成功地采样到数据端的数据的时候,并不会立即就表现在输出端上,这之间会有一段延时时间,叫做时钟到输出延时时间一般用 Tco表示。传播延时数据从寄存器出来以后,到达下一级寄存器之间的逻辑和布线延迟,就叫做传播延时一般使用Tpd 表示。Fmax对于芯片内部而言,它是寄存器到寄存器之间的延时对于整个芯片

9、而言,还需要考虑进入芯片的建立保持时间以及输出芯片的 Tco。把它取反就是最小时钟周期的概念。图 613 计算Fmax的时序模型示意图芯片内部的Fmax的计算方法如下 整个系统时钟频率 Fmax的计算方法为:SlackSlack用来衡量一个设计是否满足时序正的slack表示满足时序,而负的slack则表示不满足时序。 是指两个不同时钟的有效边沿之差如果slack为负,数据保持时间不够,主要是由于数据路径延时大于时钟延时而造成的。从建立时间来来考虑,最坏的情况是slack是一个时钟周期减去时钟抖动的最大绝对值而从保持时间来考虑,最坏的情况是slack一个时钟周期加上时钟抖动的最大绝对值。对于异步

10、电路来说,由于采用不同的时钟信号进行驱动,时钟偏斜与抖动时钟偏斜是指同一时钟源产生的时钟信号由于经过不同的布局布线延时到达两个不同的寄存器的时钟端的时间之差。建议采用全局时钟资源来驱动设计中的主要时钟信号,以减少时钟偏斜。时钟抖动与时钟偏斜的概念不一样。时钟抖动有很多种情况周期抖动频率抖动相位抖动在时序约束中,我们主要考虑的是周期抖动。所谓的周期抖动是指实际的时钟周期与理想中的时钟之间的偏差。图 614 时钟偏斜示意图6.4 时序约束的本质时序约束的本质就是要使建立时间和保持时间满足设计的要求当设计同步电路的时候,要使电路正常工作则需要保证时钟周期要不小于数据的路径延时。异步电路的基本设计,它

11、有许多种情况如同频异相、同相异频、既不同相也不同频等等。总体的原则还是需要确保建立时间和保持时间满足设计的要求。如果频率不同,相位差恒定的话,可以采用下面的公式来设计时钟约束如果既不同频也不同相,则需要从电路设计的角度去考虑其稳定性。图 615 时序约束示意图图 616 异步时序逻辑示意图6.5 静态时延分析静态时延分析是CPLD/FPGA设计中的一个很重要的时序分析手段在设计中主要有三个阶段需要涉及静态时延分析:逻辑综合阶段需要检查综合的时序质量在布局后需要检查布局对信号时序的影响在布线后需要整体考虑信号的质量,包括逻辑时延和布线延时。静态时延设计特别适合于经典的同步设计和流水线结构,静态时

12、延设计不仅速度很快,而且不需要Testbench,最重要的是能够完全测试每一条路径外。静态时延分析工具在处理锁存器、异步电路和组合反馈逻辑的时候存在不足。静态时延分析时,需要考虑以下方面:在分析之前,需要先审查电路是否是同步电路,时钟有无毛刺,异步复位置位信号是否有毛刺等逻辑问题。先检查布局布线的约束文件,确保约束全面。静态时延分析时,需要考虑以下方面:需要特别注意双沿都被使用的时钟信号,延时要求只能是半个周期。如果时钟信号的占空比不是50%,那么延时要求只能是有效边沿之差。对于有I/O管脚的路径,需要考虑输入和输出延时。时钟信号尽量使用全局时钟管脚,否则要考虑时钟偏斜并加以约束。6.6 统计

13、静态时延分析内连线延时比逻辑延时大得多,现在的光刻制程不能够产生足够的精确形状,产生的趋肤效应却很明显。解决的方案之一是采用统计静态时延分析(SSTA),它的基本理念就是为每一条线路的每一段上的每一个信号延迟生成一个概率函数,然后再估算信号通过整个路径的总延时概率函数。避免单次静态时延分析生成的报告失真,从统计学的角度观察整个芯片时延状况要求的软件算法非常复杂6.7 动态时延分析动态时延分析(DTA)是另外一种时延分析的方法,目前已经不常用。不仅需要使用事件驱动仿真器,而且必须使用Testbench。动态时序分析采用延时对来估算信号变化引起的事件。在动态延时分析中,需要引入两个新的状态:“一定

14、会变成高电平,但是时间未知”“一定会变成低电平,但是时间未知”。实例 :建立时间和保持时间违例分析图 618 建立时间和保持时间违例线路图表 61 实例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,并且能够被正确采样的时间将会

15、是:从信号C到U4时序约束已经违例 B: A:在建立时间和保持时间方面,U4到U5的时序约束情况建立时间: ,满足时序要求保持时间: ,不满足时序要求6.9 时序违例及解决方式如果需要解决建立时间违例的情况,我们可以通过改变时钟频率的方式来解决,问题是在许多设计中时序约束的目的就在于保持特定的时钟频率来达到最大的性能要求,因此上述方式不可行。要解决建立时间违例的问题,可以采取如下的方式:在违例的组合逻辑增加一级触发器来减小组合逻辑的延时,也就是所谓的流水线技术。针对于上面的例子,可以把两输入的逻辑门改成三输入的逻辑门,通过增加扇入数来减少组合逻辑的级联从而减小延时。要解决保持时间违例的问题,可

16、以采取如下的方式:在违例的触发器之间增加一级缓冲,从而增大上级触发器输出到下级触发器输入之间的延时,不过需要同时兼顾建立时间。针对于上面的例子,缓冲逻辑至少需要0.1ns的延时为了避免时序违例,当采用综合工具要进行时序约束时,应该在设计本身应满足的要求上再增加1020%的约束条件因为一是需要考虑综合后的布局布线二是绝大多数的综合软件本身会按所设置参数中的低要求的约束进行。在代码设计中需要切实定义好各个模块的边界信号在做仿真的时候,建议采用负载模型来进行仿真,这样可以尽量地模拟出实际信号的输出7.12 本章小结本章主要讲述了CPLD/FPGA设计中的最重要的内容约束。约束包含两种情况:时序约束和管脚约束。不同的约束会有不同的时序和逻辑表现特别是在约束要求很紧的时候,需要和PCB工程师一起界定时序约束的条件,从而以最优的方式实现约束。约束也有技巧,工程师同时需要硬件和PCB布局布线的经验,这样才能够较好的实现CPLD/FPGA的性能。6.13 思考与练习管脚约束有哪几种方式?试采

温馨提示

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

评论

0/150

提交评论