FPGA教学课件:第6章 约束与时延分析

上传人:鲁** 文档编号:573267147 上传时间:2024-08-14 格式:PPT 页数:63 大小:1.56MB
返回 下载 相关 举报
FPGA教学课件:第6章 约束与时延分析_第1页
第1页 / 共63页
FPGA教学课件:第6章 约束与时延分析_第2页
第2页 / 共63页
FPGA教学课件:第6章 约束与时延分析_第3页
第3页 / 共63页
FPGA教学课件:第6章 约束与时延分析_第4页
第4页 / 共63页
FPGA教学课件:第6章 约束与时延分析_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《FPGA教学课件:第6章 约束与时延分析》由会员分享,可在线阅读,更多相关《FPGA教学课件:第6章 约束与时延分析(63页珍藏版)》请在金锄头文库上搜索。

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

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

3、的表示方法可以用来对一组信号进行约束。如:6.2.2 代码注释约束n不同的厂家有不同的代码注释约束方式,而且代码注释约束的方式只针对于特定的综合工具n以Lattice的ispLEVER集成开发环境来具体说明怎样进行代码注释约束。n相关的技术文档和网站,如:nhttp:/ 时序约束的基本概念n时序约束是指路径之间的约束,任何一条路径都有起点和终点,最重要的是,路径是不能穿过触发器的nCPLD/FPGA至少有三种不同的基本路径:一是触发器到触发器之间的路径;一是从输入端口到内部触发器之间的路径;一是从内部触发器到输出端口之间的路径。n时序约束有几个重要的基本概念:建立时间、保持时间、时钟到输出延时

4、、传播延时等等。n图 61 简单的时序模型6.3.1路径nClock-to-setup路径nClock-to-setup路径是我们常见到的时序模型,一般用来描述CPLD/FPGA内触发器之间的延时。n图 62 时序模型示意图n图 63 时序逻辑波形示意图n路径的延时包括:源端触发器的时钟端到输出端的延时、逻辑和布线延时、时钟的布线延时以及建立时间,通过计算可以读出最小的时钟周期和最高的时钟频率。nClock-to-PAD路径路径n我们常见的时序模型之一,可以称之为输出模型。任何一个CPLD/FPGA在系统中都不是单独存在的,而CPLD/FPGA的时序不仅仅只是内部的时序模型,同样它可以驱动下一

5、级芯片,从而产生一个新的时序模型n图 64 Clock-to-PAD路径n图 65 Clock-to-PAD路径波形图n从系统层面来看,Clock-to-PAD路径是整个系统中路径延时的一部分,要计算整个路径延时和最小的时钟周期还需要考虑信号在PCB上的走线延时、飞行时间以及下一级接收芯片的输入时序模型。从CPLD/FPGA层面上来看,它包括时钟端到触发器输出端延时、逻辑和布局布线延时、输出缓冲延时等等。当对Clock-to-PAD路径进行时序约束时,需要电路设计工程师、CPLD/FPGA工程师和布局布线工程师共同决定信号在Clock-to-PAD路径的延时、信号在PCB板上的延时以及接收端芯

6、片可承受的延时容限各为多少,最后以文档的形式确定时序约束。nPAD-to-Setup路径n图6-6是另外一种常见的时序模型,也叫做输入模型。n图 66 PAD-to-Setup路径n图 67 PAD-to-Setup路径波形图n从CPLD/FPGA层面来看输入模型的路径延时包括了输入缓冲延时、逻辑及布局布线延时以及建立时间;从系统角度来看,整条路径的延时还需要包括上一级芯片的输出模型延时以及PCB走线延时和信号的飞行时间,因此要确定对此路径进行时序约束,需要召集电路设计工程师和布局布线工程师一起讨论最后决定此路径的时序约束。nPaths Ending at Clock Pin of Flip-

7、Flopsn此路径是指时钟信号从源端到达各个具体触发器的时钟端的路径。在CPLD/FPGA中,设计工程师都推荐采用全局时钟来驱动触发器,但是尽管采用全局时钟,时钟到达触发器之间还是有一段延时时间,这段时间在计算时延的时候必须考虑进去。n图 68 Paths Ending at Clock Pin of Flip-Flopsn图 69 Paths Ending at Clock Pin of Flip-Flops波形图nPAD to PAD路径n图6-10表示为一条纯组合逻辑的路径,从芯片输入的管脚开始,经过任意级的组合逻辑电路,然后从另外一个输出管脚输出。n图 610 PAD to PAD路径

8、n图 611 PAD to PAD路径波形图n整条路径的延时分为输入延时、输出延时以及中间的逻辑和布局布线延时。n如果放在整个系统层面来看,严格来说不能称之为路径,因为这个时延路径的源端和目的端都不在这个芯片里面,而在上一级或者上上级的芯片中和下一级的芯片中。6.3.2 时序约束参数n建立时间n建立时间就是指数据必须在时钟有效沿到来之前稳定的最小时间长度。当建立时间不够的时候,触发器采集不到数据,或者采集到的数据是错误的数据,从而导致整个时序逻辑的错误。n任何一个时序逻辑芯片都会存在建立时间这个概念,一般使用 Tsu来表示n图 612 计算建立时间的时序模型图n保持时间n保持时间是指当时钟信号

9、有效沿到来之后,数据必须保持的最小的稳定时间,一般采用Th来表示。当保持时间不够的时候,数据传输将出现紊乱,系统将出现亚稳态的问题。n时钟到输出延时时钟到输出延时n当时钟到达一个触发器并成功地采样到数据端的数据的时候,并不会立即就表现在输出端上,这之间会有一段延时时间,叫做时钟到输出延时时间,一般用 Tco表示。n传播延时传播延时n数据从寄存器出来以后,到达下一级寄存器之间的逻辑和布线延迟,就叫做传播延时,一般使用Tpd 表示。nFmaxn对于芯片内部而言,它是寄存器到寄存器之间的延时,而对于整个芯片而言,还需要考虑进入芯片的建立保持时间以及输出芯片的 Tco。把它取反就是最小时钟周期的概念。

10、图 613 计算Fmax的时序模型示意图n芯片内部的Fmax的计算方法如下:n整个系统时钟频率 Fmax的计算方法为: nSlacknSlack用来衡量一个设计是否满足时序正的slack表示满足时序,而负的slack则表示不满足时序。n如果slack为负,数据保持时间不够,主要是由于数据路径延时大于时钟延时而造成的。n从建立时间来来考虑,最坏的情况是slack是一个时钟周期减去时钟抖动的最大绝对值;而从保持时间来考虑,最坏的情况是slack一个时钟周期加上时钟抖动的最大绝对值。n对于异步电路来说,由于采用不同的时钟信号进行驱动, n 是指两个不同时钟的有效边沿之差n时钟偏斜与抖动n时钟偏斜是指

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

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

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

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

15、引入两个新的状态:“一定会变成高电平,但是时间未知”和“一定会变成低电平,但是时间未知”。6.8 实例 4:建立时间和保持时间违例分析n图 618 建立时间和保持时间违例线路图n表 61 实例4时延参数表时时延参数表延参数表元件元件参数参数最小最小值值最大最大值值单单位位U4和和U5建立建立时间时间tSU2纳纳秒秒(ns)保持保持时间时间tH0纳纳秒秒(ns)时钟时钟到数据有效到数据有效输输出出tCO0.92.7纳纳秒秒(ns)U1-U3传传播播时时延延tPD0.61.8纳纳秒秒(ns)时钟时钟周期周期tCK10纳纳秒秒(ns)偏斜偏斜1tCS1纳纳秒秒(ns)到达到达测试测试点点2A,B,C

16、tAR0.82.7纳纳秒秒(ns)1,从,从CLKa到到CLKb或者从或者从CLKb到到CLKa的最大的最大时时延延2,不考,不考虑时钟虑时钟偏斜的影响偏斜的影响n如果信号C实际到达U4,并且能够被正确采样的时间将会是:n从信号C到U4时序约束已经违例n B:n A:n在建立时间和保持时间方面,U4到U5的时序约束情况n建立时间: ,满足时序要求n保持时间: ,不满足时序要求6.9 时序违例及解决方式n如果需要解决建立时间违例的情况,我们可以通过改变时钟频率的方式来解决,问题是在许多设计中时序约束的目的就在于保持特定的时钟频率来达到最大的性能要求,因此上述方式不可行。n要解决建立时间违例的问题

17、,可以采取如下的方式:n在违例的组合逻辑增加一级触发器来减小组合逻辑的延时,也就是所谓的流水线技术。n针对于上面的例子,可以把两输入的逻辑门改成三输入的逻辑门,通过增加扇入数来减少组合逻辑的级联从而减小延时。n要解决保持时间违例的问题,可以采取如下的方式:n在违例的触发器之间增加一级缓冲,从而增大上级触发器输出到下级触发器输入之间的延时,不过需要同时兼顾建立时间。n针对于上面的例子,缓冲逻辑至少需要0.1ns的延时n为了避免时序违例,当采用综合工具要进行时序约束时,应该在设计本身应满足的要求上再增加1020%的约束条件,因为一是需要考虑综合后的布局布线,二是绝大多数的综合软件本身会按所设置参数

18、中的低要求的约束进行。n在代码设计中需要切实定义好各个模块的边界信号n在做仿真的时候,建议采用负载模型来进行仿真,这样可以尽量地模拟出实际信号的输出6.9 实例 5:四角测试中的时序分析n四角测试,就是让产品在高温高压、低温低压、高温低压和低温高压的情况下连续运行相关的测试程序如负载程序等等达一段时间如24小时或者48小时,如果系统正常则产品合格,否则就需要进行分析。n有两个位置对建立时间和保持时间有着严重影响,它们分别为B点(高温低压)和D点(低温高压)n对于B点来说,由于高温低压的原因信号的上升时间是慢的,也就是达到有效高电平的时间就越长,这就意味着信号从源端到目的端之间的延时会变大,从而

19、引起整个延时增大,这样slack就会变成负值,引起建立时间违例。n对于D点来说,由于低温高压的原因信号的上升时间是最快的,也就是达到有效的高电平的时间最短,这就意味着信号从源端到目的端之间的延时会变小,从而引起整个延时变小,甚至小到不够触发器的保持时间,从而引起保持时间违例。6.11 实例 6:LPC Slave接口设计nLPC协议简介协议简介nLPC协议是计算机系统中应用最为广泛的一种协议。它的协议简单,采用的I/O管脚较少,速度能够达到33MHz以上;LPC总线一般都会与主机直接相连。nLPC一般采用7根信号来做协议的传输和控制,当然还有一些特别的可选信号也可以被归纳到LPC协议中,与传统

20、的ISA协议相比,LPC协议采用的I/O管脚已经少了许多,但是性能并没有因此而下降。整个LPC协议就是在时钟LCLK的作用下,通过LFRAME#信号启动传输进程,通过LAD进行数据传输。nLPC协议有很多种传输方式,包括存取器读写方式、I/O读写方式、DMA读写方式、总线主机存储器读写方式、总线主机I/O读写方式、固件存储器读写方式等n典型的LPC传输协议。在时钟信号的作用下,一旦LFRAME#信号拉低,也就是有效地情况下,LPC传输开始,所有的LPC地址数据线LAD全部会变成低电平,紧接着的一个时钟周期决定整个传输的性质和方式是I/O读写呢还是存取器读写等等,根据LAD上的具体数据进行判断。

21、如果是I/O读写,在接下来的4个时钟周期里面,从机会解码LAD上的数据,得到主机所呼叫的地址信息,如果被命中,相应的从机接管总线并发出响应信号;如果是存取器读写,则需要8个时钟周期来解码地址信息。主机一旦接收到相关从机的响应,整个握手协议就结束。接下来的时钟周期就用来进行数据读写,如果是主机读取数据,那么从机在数据传输阶段将一直拥有总线控制权,除了中间主机接收到数据后会发出响应的阶段,直到结束;而如果主机写数据,则主机一直拥有总线控制权,除了之间从机收到数据会发出响应的阶段,直到数据传输结束。n有时候有效的LFRAME#不止一个时钟周期,那么在那一段时钟周期里面所有的LAD信号都必须保持为低电

22、平,也就是起始状态nLPC会在CT/DIR周期中通过LAD决定整个传输的性质和传输方向n在Sync(同步)周期,LPC协议为了提高传输的效率和减少出错几率,特别增加了同步的数据,它的长短由LAD来决定是单周期等待还是多周期等待n具体可以参考LPC协议文档Intel Low Pin Count (LPC) Interface Specification August 2002 Revision 1.1n具体设计请参考实例6n图 620 LPC总线的基本连接方式n表 62 LPC协议信号描述表信号从属设备主机信号描述LAD3:0输入/输出输入/输出控制、地址、数据线LFRAME#输入输出LPC新传

23、输的开始LRESET#输入输入和PCI复位信号相同,为LPC协议复位信号LCLK输入输入和PCI时钟信号相同,为LPC协议的时钟信号,33MHzn表 63 LPC传输方式表传输传输方式方式支持的数据大小支持的数据大小注注释释存储器读1个字节LPC总机和外围设备都可以存储器写1个字节LPC总机和外围设备都可以I/O读1个字节适合外围设备I/O写1个字节适合外围设备DMA读1、2、4个字节适合外围设备DMA写1、2、4个字节适合外围设备总线主机存储器读1、2、4个字节LPC总机和外围设备都可以,但是强烈推荐主机采用总线主机存储器写1、2、4个字节LPC总机和外围设备都可以,但是强烈推荐主机采用总线

24、主机I/O读1、2、4个字节LPC总机和外围设备都可以总线主机I/O写1、2、4个字节LPC总机和外围设备都可以固件存储器读1、2、4、128个字节LPC总机和外围设备都可以固件主机存储器写1、2、4个字节LPC总机和外围设备都可以n图 621 典型的LPC数据传输波形图n图 622 扩展的LPC数据传输波形图n表 64 LPC CT/DIR周期表比特比特3和比特和比特2比特比特1定定义义000I/O读读001I/O写写010存存储储器器读读011存存储储器写器写100DMA读读101DMA写写11x保保留留:外外围围设设备备和和主主机机都都不不允允许许驱动这驱动这种方式种方式n表 65 Sy

25、nc周期表比特比特3:0定定义义0000准备好:没有错误地完成同步。对于DMA传输,这个数据也表明DMA请求无效,不再有数据传输0001-0100预留 0101短等待:外围表明正常的等待状态。0110长等待:外围表明异常的长等待状态。0111-1000预留1001更多等待(仅指DMA):没有错误的同步完成并且在这次传输后还有更多的DMA传输。1010错误:错误同步。这个通常用来替代PCI/ISA总线的SERR#,IOCHK#信号,表明数据将被传输,但是出现了严重地错误;对于DMA传输来说,这个也表明DMA请求无效,不再有新的传输。1011-1111预留n表 66 LPC协议主机初始化I/O读周

26、期I/O读读驱动驱动源源时钟树时钟树START主机主机1CYCTYPE+DIR主机主机1ADDR主机主机4TAR主机主机2SYNC外外围设备围设备1DATA外外围设备围设备2TAR外外围设备围设备2总计时钟总计时钟数数13存取存取时间时间(us)0.39带宽带宽(MB/X)2.56n表 67 LPC协议主机初始化I/O写周期I/O写写驱动驱动源源时钟树时钟树START主机主机1CYCTYPE+DIR主机主机1ADDR主机主机4DATA主机主机2TAR主机主机2SYNC外外围设备围设备1TAR外外围设备围设备2总计时钟总计时钟数数13存取存取时间时间(us)0.39带宽带宽(MB/X)2.566

27、.12 本章小结n本章主要讲述了CPLD/FPGA设计中的最重要的内容约束。约束包含两种情况:时序约束和管脚约束。不同的约束会有不同的时序和逻辑表现,特别是在约束要求很紧的时候,需要和PCB工程师一起界定时序约束的条件,从而以最优的方式实现约束。约束也有技巧,工程师同时需要硬件和PCB布局布线的经验,这样才能够较好的实现CPLD/FPGA的性能。6.13 思考与练习1.管脚约束有哪几种方式?2.试采用verilog HDL语言设计一个计数器。n具体要求:n当rst_信号有效时候,输出位4b0;n当set有效地时候,输出为4bf;n当ld有效地时候,输出为输入值;n当up有效的时候,输出在时钟的

28、自动作用下自动加1;n当down有效地时候,输出在时钟的自动作用下自动减1。n用代码注释的方式给以下管脚增加约束,并使用Lattice ispLEVER平台进行综合,得出映射报告,分析是否与设计的约束相同n表 68 题2管脚约束表信号管脚位置I/O类型驱动强度OD门是否上拉?sysclk3LVCMOS33上拉rst_8LVCMOS25上拉up11LVCMOS33上拉down34LVCMOS33下拉ld20LVCMOS33下拉set56LVCMOS25下拉dati371LVCMOS33上拉dati272LVCMOS33上拉dati173LVCMOS33上拉dati074LVCMOS33上拉dat

29、o385LVCMOS258MA是dato286LVCMOS258MAdato187LVCMOS258MAdato088LVCMOS258MA3.试采用Xilinx ISE工具对上述程序进行综合,并且采用ucf约束文件对管脚进行约束,同时约束sysclk为33MHz,占空比50%。4.时序模型分别有哪几种?各自的应用领域是什么?5.建立时间和保持时间是什么意思?建立时间违例和保持时间违例分别会有什么样的后果?6.温度和电压对信号的完整性有什么样的影响?特别是建立时间和保持时间?7.当建立时间违例的时候,比如说触发器之间的组合逻辑延时过长的时候,人们往往会增加一级触发器来实现时序的满足,试分析其中的原因在于哪个方面?8.什么是静态时延分析?什么是统计静态时延分析?什么是动态时延分析?它们之间有什么样的区别与联系?9.什么是时钟偏斜?什么是时钟抖动?它们之间的主要影响有哪些?怎样避免或者缩小时钟偏斜与抖动?10.当时序违例的时候,该采用什么样的方式来解决时序违例的问题?分别以建立时间违例和保持时间违例讲述?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号