FPGA时序分析的作用和原理

1时序分析的作用

时序分析的主要作用就是查看 FPGA内部逻辑和布线的延时,验证其是否满足设计者的约束。在工程实践中,主要体现在以下3点。

1.1确定芯片最高工作频率

更高的工作频率意味着更强的处理能力。通过时序分析,可以控制工程的综合、映射布局布线等关键环节,减少逻辑和布线延迟,从而尽可能提高工作频率。一般情况下,当处理时钟高于100MHz时,必须添加合理的时序约束文件,以通过相应的时序分析。

1.2检查时序约束是否满足

可以通过时序分析来查看目标模块是否满足约束。如果不能满足,可以通过时序分析器来定位程序中不满足约束的部分,并给出具体原因。然后,设计人员依此修改程序,直到满足时序约束为止。

1.3分析时钟质量

时钟是数字系统的动力系统,但存在抖动、偏移和占空比失真等3 大类不可避免的缺陷。要验证其对目标模块的影响有多大,必须通过时序分析。当采用了全局时钟等优质资源后,如果仍然是时钟造成目标模块不满足约束,则需要降低所约束的时钟频率。

1.4确定分配管脚特性

FPGA的可编程特性使电路板设计、加工和 FPGA 设计可以同时进行,而不必等FPGA管脚位置完全确定后再进行,从而节省了系统开发时间。通过时序分析,可以指定I/O管脚所支持的接口标准、接口速率和其他电气特性

2 静态时序分析原理

静态时序分析(STA,Static Timing Analysis):STA 是通过穷举法抽取整个设计电路的所有时序路径,按照约束条件分析电路中是否有违反设计规则的问题,并计算出设计的最高频率。STA 仅着重于时序性能的分析,并不涉及逻辑功能。STA 是基于时序路径的,它将 DUT(Devcie Under Test)分解为4种主要的时序路径,如图2-1所示。每条路径包含一个起点和一个终点,时序路径的起点只能是设计的基本输人端口或内部寄存器的时钟输入端,终点只能是内部寄存器的数据输入端或设计的基本输出端口。

 

图2-1 静态时序分析的基本路径

STA的4类基本时序电路为:

(1)从输人端口到触发器的数据D端;

(2)从触发器的时钟CLK端到触发器的数据D端;

(3)从触发器的时钟CLK端到输出端口;

(4)从输入端口到输出端口。

静态时序分析在分析过程中计算时序路径上数据信号的到达时间和要求时间的差值以判断是否存在违反设计规则的错误。数据的到达时间指的是:数据沿路从起点到终点经过的所有器件和连线延迟时间之和要求时间根据约束条件(包括工艺库和 STA 过程中设置的设计约束)计算出的从起点到达终点的理论时间,默认的参考值是一个时钟周期。如果数据能够在要求时间内到达终点,那么可以说这条路径是符合设计规则的。其计算公式如式(2-1)所示:

 

        其中,Trequired_time为约束时长;Tarrival_time为实际延时;Slack为时序裕量标志,正值表示满足时序,负值表示不满足时序Tarrival_time 的具体计算见下节STA把式(2-1)作为理论依据,分析设计电路中的所有时序路径。如果得到的 STA 报告中Slack为负值,那么此时序路径存在时序问题,是一条影响整个设计电路工作性能的关键路径。在逻辑综合、整体规划、时钟树插入、布局布线等阶段进行静态时序分析,就能及时发现并修改关键路径上存在的时序问题,达到修正错误、优化设计的目的。

3时序分析基本知识

3.1时钟的时序特性

        时钟的时序特性主要分为偏移(Skew)、抖动(Jitter)和占空比失真(Duty CycleDistortion)这三点。对于低速设计,基本上不用考虑这些特征,但随着高速设计时代的到来,由于时钟本身所造成的时序问题的现象越来越普遍,因此有必要关注高速时钟本身的时序特性。

1)时钟偏移

        由于时钟信号要提供给整个电路的时序单元,从而导致时钟线非常长,并构成分布式RC 网络。它的延时与时钟线的长度及被时钟线驱动的时序单元的负载电容,个数有关由于时钟线长度及负载不同,会导致时钟信号到达相邻两个时序单元的时间不同,产生所谓的时钟偏移(Skew)。时钟偏移指的是同一个时钟信号到达两个不同的寄存器之间的时间差值,根据差值的正、负可以分为正偏移和负偏移。时钟偏移是永远存在的,当其大到一定程度时,就会严重影响电路的时序。

        两条时钟路径的长度不同是造成时钟抖动的原因,如图 3-1 所示为一条局部路径,R1,R2为两个寄存器,C1和C2来自同一个时钟源,时钟信号沿时钟树到达寄存器R1和R2的延迟时间分别为 TC1和 TC2,用 Tskew 表示它们之间的时钟偏移,则 Tskew=TC1-TC2。当C1比C2后到时,Tskew 为正;当C1比C2先到时,Tskew 为负。为了消除该类现象发生,在 FPGA 设计中,主要时钟信号应该走全局时钟网络,以避免时钟偏移现象。该网络采用全铜工艺和树状结构,并设计了专用时钟缓冲和驱动网络,到所有的 CLBI/O单元和块 RAM的偏移非常小,可以忽略不计。

图3-1 时钟偏移的示意图

        在实际电路中,时钟信号到达每一个触发器时钟管脚的延时不可能完全相等,时钟偏差是肯定存在的,这是 STA 必须考虑的因素。在不同阶段,STA 设置时钟偏差的方式不同静态时序分析可以分为布局布线前和布局布线后两个阶段,两者的主要区别在于:后者有具体的互连线长度、宽度、信号分布情况等信息,所以后者可以更加准确地估计线上延迟,以及时钟树的延迟;而前者只能根据设计电路面积的大小,来粗略估计线上延迟和时钟树的延迟。

2)时钟抖动

        抖动是时钟的一个重要参数,如图 3-2 所示。对于抖动已有多种定义,两个最常用的抖动参数称为周期抖动和周期间抖动。周期抖动一般比较大也比较确定,常由于第三方原因造成,如干扰、电源、噪声等。周期间抖动由环境因素造成,具有不确定性,满足高斯分布一般难以跟踪。

 

图3-2 时钟抖动的示意图

        时钟抖动是永远存在的,当其大到可以和时钟周期相比拟时,必然会影响到设计时序。这样的时钟抖动就是不可接受的。

3)时钟占空比失真

        时钟占空比失真(Duty Cycle Distortion,DCD)即时钟不对称性,指信号在传输过程中由于变形、延时等原因,脉冲宽度所发生的变化,该变化使有脉冲和无脉冲持续时间的比例发生改变,如图 3-3 所示。

 

图3-3 时钟占空比失真示意图

        现在的片外高速存储器(如 DDR、DDRI等)都采用双数据,甚至多数据速率接口,在时钟的上升沿和下降沿都需要对数据采样,每次读或写操作至少有两拍时钟。在此类应用时,DCD会吞噬大量的时序裕量,造成数字信号的失真,使过零区间偏离理想位置,向上或向下移动。DCD通常是由信号的上升沿和下降沿之间时序不同而造成。如果非平衡系统中存在地电位漂移,差分输入之间存在电压偏移,信号的上升和下降时间出现变化等,也可能造成这种失真。

4)时钟建立、保持时间

        建立时间(Setup Time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,常用 tsu表示。如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器保持时间(Hold Time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,常用tH表示。如果保持时间不够,数据同样不能被打入触发器。建立时间和保持时间的示意图如图 3-4所示。要使数据稳定传输,必须满足建立时间和保持时间的要求。

 

图3-4 时钟建立、保持时间示意图

        在图3-4中,时钟的tsu和tH的计算公式如下

 

        其中的 Micro_tsu和 Micro_tH 指的是触发器内部的固有建立时间和保持时间,是触发固有属性,其典型值一般小于1ns。

        当数据在建立时间或保持时间内发生变化,即数据建立时间和保持时间不满足时,就可能发生亚稳态现象

3.2FPGA设计的基本时序路径

        在高速的同步电路设计中,时序决定了一切,要求所有时序路径延迟都必须在约束限制的时钟周期内,下面介绍 Xilinx公司提的几种常用基本路径。

1)Clock-to-Setup 路径

        Clock-to-Setup 路径从触发器的输出端开始,结束于下一级触发器、锁存器或者 RAM的输人端,对终止端的数据信号要求一定的建立时间,如图3-5 所示。

 

图3-5 Clock-to-Setup路径示意图

        该条路径包括了触发器内部 Clock-to-Q 的延迟,触发器之间由组合造成的路径延迟以及目标触发器的建立时间,其延时是数据从源触发器开始,在下一个时钟沿到来之前通过中间组合逻辑和布线的最大时间。Clock-to-Setup 时间可通过约束文件中的周期约束来限制,如图 3-6所示。

图3-6 约束参数示意图

        需要注意的两点是:1,当源触发器和目标触发器的驱动时钟不同,且时钟的占空比不是50%时,Clock-to-Setup 路径被限制为两个时钟高、低电平中最短的那一段。2,如果源目的触发器使用不同的时钟网络驱动,则要求目标触发器的时钟周期必须大于 Clock-toSetup 路径延时,且将其作为所允许的最大延时值

2)Clock-to-Pad路径

        Clock-to-Pad路径从寄存器或者锁存器的时钟输入端开始,终止于芯片的输出管脚,中间经过了触发器输出端以及所有的组合逻辑,如图 3-7 所示。

        该条路径包括了经过触发器的延时和从触发器到输出管脚之间的逻辑延迟。在约束文件中,可以通过 OFFSET语句和 FROM:TO来约束。如果使用OFFSET 语句,那么延时计算时会包含时钟输人 BUFFER/ROUTING延时;如果使用FROM:TO约束则延时从触发器自身开始,不包括输入路径,比较精确,所以使用得相对更频繁一些。

 

图3-7 Clock-to-Pad路径示意图

3)Pad-to-Pad路径

        Pad-to-Pad 路径从芯片输入信号端口开始,结束于芯片输出信号端口,中间包含所有的组合逻辑,但并不包含任何同步逻辑,如图 3-7 所示。

 

图3-8 Pad-to-Pad路径示意图

        Pad-to-Pad 路径延时是数据输入到芯片,经过逻辑延时和布线时延后再输出芯片的最大时间要求。

4)Pad-to-Setup 路径

        Pad-to-Setup 路径从芯片的输入信号端口开始,结束于同步电路模块(触发器、锁存器和RAM),对相应的数据信号要求一定的建立时间,如图 3-9所示

图3-9 Pad-to-Setup路径示意图

        该路径可以经过输人BUFFER和所有的组合逻辑,不包含任何同步电路模块和双向端口,是数据到达芯片的最大时间要求

3.3时序裕量

        时序裕量(Slack)是约束文件要求时钟周期与实际布局布线后时钟周期的差值。当其为正值时,表示满足时序(正裕量);为当其为负值时,表明不满足时序(负裕量)。其计算公式为:

 

         其中,RClkperiod为约束要求的时钟周期,AClkperiod为实际的时钟周期。

 

 

图3-10 Slack计算的实例场景

       Clk1对应触发沿,clk2对应捕获沿

下面以如图 3-10所示简易场景为例,给出Slack 的计算公式如式(11-5)所示

         其中,Micro_tco和 Micro_tsu都是寄存器的固有特性,由芯片的制造工艺和速度等级决定。Micro_tsu在前文已有介绍;Micro_tco指寄存器在时钟有效沿将数据送到输出端口的内部延时参数,一般小于1ns。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值