基于FPGA,关于数字电路中的亚稳态现象--毕业论文稿_第1页
基于FPGA,关于数字电路中的亚稳态现象--毕业论文稿_第2页
基于FPGA,关于数字电路中的亚稳态现象--毕业论文稿_第3页
基于FPGA,关于数字电路中的亚稳态现象--毕业论文稿_第4页
基于FPGA,关于数字电路中的亚稳态现象--毕业论文稿_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、目录目 录摘 要ABSTRACT1.1 论文产生的背景 . 11.2 发展历史 . 11.3 本文的主要工作及内容安排 . 3第二章 亚稳态发生的根源 . 52.1 亚稳态概述 . 52.2 数字电路的模拟特性 . 72.3 RS 锁存器 . 72.4 D 触发器 . 11第三章 亚稳态对故障率的影响 . 153.1 触发器响应曲线图 . 153.2 亚稳态窗 . 163.3 平均无故障时间(MTBF . . 18第四章 克服亚稳态的方法 . 234.1 最常用的同步器:两级触发器 . 234.2 握手协议 . 294.3 开环控制 . 314.4 双口RAM . 364.5 克服亚稳态的FP

2、GA 设计实例 . 36结束语 . . 53 致谢 . . 错误!未定义书签。参考文献 . . 57作者在读期间的成果 . . 错误!未定义书签。第一章 绪论1.1 论文产生的背景对于研发人员来说,可靠性是必须保证的设计目标之一。为了验证系统的可靠性,产品在出厂前都会进行大量的整机测试,包括常温测试、高低温测试直到最终的外场测试,这些测试需要耗费大量的人力和物力。对于开发人员来说,通常这个阶段出现的问题也是最头疼的,因为其中很多属于偶发性故障,难以复现。比如芯片上电初始化配置经常失败,或者正常运行的系统突然发生复位,或者网口突然发生阻塞,或者常温下的通过的指标,在进行高低温实验的时候出现了恶化

3、。整机测试不同于平时研发的单板测试,测试手段受到很多限制。比如由于单板装入了机壳,就不能使用JTAG 口进行实时监测,也不能使用示波器排查。但是如果在开发初期,设计者能够对系统的各个环节进行认真的评估,充分考虑了可靠性问题,那么在面对测试阶段层出不穷的故障时便能轻松一些。关于可靠性问题,几乎所有的研究资料都推荐使用同步设计解决,因为同步设计可以保证时钟触发沿避开输入数据发生变化的区域,这也就避免了不稳定采样。的确,实际中复杂逻辑电路均采用同步设计,FPGA 厂家也只对客户的同步设计给予技术支持。但是同步设计并非不需要考虑异步问题,因为绝大多数的设计都需要与外界通信,比如某项目中的FPGA 的外

4、围设备包括CPLD 、CPU 、DSP 和大量的射频芯片,这些外围器件的工作时钟与FPGA 的工作时钟没有任何关系。因此,每次FPGA 与这些外围设备通信都面临着失败的风险,如何降低通信故障率是设计中的一个难点。本文将围绕异步信号对同步系统的影响进行详细的理论分析,从数字电路的结构出发讨论亚稳态发生的根源,并结合FPGA 实际设计经验介绍几种解决方法。1.2 发展历史输入数据与采样时钟发生沿打沿(marginal trigger 的情况,双稳态电路不能在规定的时间(由厂家定义 进入稳态的现象称为亚稳态。一旦双稳态电路进入亚稳态,那么在亚稳态停留的时间将不可预知。在这段时间里,双稳态电路输出的电

5、压处于非法的逻辑电平区间,具体的电压值无法预测,输出还可能发生振荡。此时如果两个扇出对亚稳态的输出信号进行采样,由于扇出个体间及两条信号线延迟的差异,不能保证两个扇出能够最终将其识别为相同的逻辑值。因此,处于亚稳态的系统很容易发生功能故障1。从数字电路发展初期,人们就开始广泛的研究亚稳态。刚开始时人们重点关注电路发生亚稳态的现象,提出了一些经验数据2, 3, 4和抽象理论5,6以及亚稳态的理论和经验模型7, 8。后来通过这些模型的研究,得到了由亚稳态引起故障的概率9, 10。利用同样的方法,双稳态电路的研究得到了极大发展:出现了测量亚稳态参数的方法11, 12, 13,设计出了检测亚稳态现象的

6、电路14, 15和克服亚稳态的同步器16, 17, 18, 19等等。另一方面,微电子的飞速发展将亚稳态的研究推到了更加重要的位置。事实上,因为系统复杂度的快速提高,出现沿打沿的概率变得越来越大,所以时序问题变得越来越重要。系统工作频率的提高使得留给器件从亚稳态恢复到稳态的时间变短。这些因素使得在FPGA 设计中越来越重视亚稳态,大量的研究表明亚稳态就是双稳态电路的模拟特性本质的表现。会发生亚稳态的电路很多,包括常用的AD 、存储器和总线控制器等等。不同的系统对故障率的要求也不同,比如语音通信中,由于人耳朵听觉特性,语音信号的误码率可以相对较高。但是对于其他数字处理领域,就会要求相对较低的误码

7、率。在数字电路中,最容易出现问题的就是总线控制器。图1.1所示为一个外界异步信号与处理器通信的总线控制器的系统结构。外界的异步信号经过同步器同步后进入总线控制器。如果异步信号的频率较低,比如键盘输入,那么系统的故障率(由MTBF 衡量 也会相对较低。然而,如果外界异步信号来自高速IC ,那么这个系统的故障率就会相应变高。 图1.1 一个与处理器通信的总线控制器结构当今的FPGA 设计人员有许多工具软件帮助完成百万门级的电路,但是这些工具并不能解决异步信号的同步问题,这就要求设计者了解提高可靠性的技术,减小跨时钟域时的故障率。对于触发器来说,在时钟触发沿附近的一个小的时间窗口内,输入信号应当保持

8、稳定,其中时间窗口的宽度由厂家决定。FPGA 生产厂家对其产品的可靠性负责,他们使用MTBF(mean time between failure 平均无故障时间 来描述发生亚稳态的概率。每个厂家都要求输入信号必须满足器件的建立时间和保持时间。建立时间指在时钟触发沿到来前输入信号必须保持稳定的时间,保持时间指时钟触发沿到来后输入信号必须保持稳定的时间。这些参数指标通常与工作电压,工作温度,信号质量和工艺有关。如果输入数据满足这些参数指标,那么器件发生故障的概率就微乎其微。1.3 本文的主要工作及内容安排本文主要讨论了数字电路设计中,尤其是FPGA 的设计中遇到的亚稳态的问题。文章从数字电路的原理

9、以及数字电路的基本组成单元的结构出发,研究了亚稳态是如何发生的,并从亚稳态的统计特性出发研究了对亚稳态的计算及度量方法,最后结合具体实例重点讨论了对亚稳态的各种处理方法。本文的主要工作内容如下:第一章为绪论,简单介绍了亚稳态的发生和危害以及对亚稳态的研究的重要性,并简述了亚稳态的研究在国内外的发展情况。第二章主要阐述了亚稳态发生的根源,介绍了亚稳态的具体含义,从数字电路的模拟特性,数字电路的基本组成单元RS 锁存器和D 触发器的结构出发,从根源上讨论了亚稳态的发生。第三章从触发器的响应曲线、亚稳态窗及平均无故障时间三方面(统计学的角度 出发详细讨论了对亚稳态的计算及度量方法。第四章是文章的重点

10、,从四个方面即两级触发器级联、握手协议、开环控制、及双口RAM 出发,结合具体实例详细介绍了实际中处理亚稳态的方法。第二章 亚稳态发生的根源2.1 亚稳态概述对于数字电路设计者来说,设计的可靠性是极其重要的。而对于触发器来说,只有满足特定的时序关系才能保证电路可靠。如果不满足这个关系,就可能发生亚稳态。而亚稳态意味着输出信号不能在预定的时间内进入已知的状态,也就是说器件的传播延迟超过了额定值。当发生亚稳态后,即使最终输出稳定下来,设计者也不能肯定输出的逻辑值一定正确。在输出信号从亚稳态到稳态的变化过程中,输出信号也许长期游离于非法的逻辑电平值,也可能发生振荡,不论何种情况,对于下一级门电路这都

11、将是一场灾难。在FPGA 中,时钟域是个很重要的概念,几乎所有亚稳态的发生都是由于跨时钟域的问题所引起的。要想理解跨时钟域所引发的故障,首先要了解时钟域,以及同步信号、异步信号的概念。所谓时钟域,是指在FPGA 内部由单一时钟或者由多个但是相位恒定的时钟控制的区域。一个时钟和其派生时钟(通过PLL 产生 属于同一个时钟域,反转时钟也属于同一个时钟域。如果时钟之间的基准不同,比如来自不同的晶振,即使标称频率相同(通过频率计能看到晶振的频率漂移 ,也属于不同的时钟域。简单的讲,同步信号是指属于同一个时钟域的信号,异步信号就是指属于不同的时钟域的信号。也可以这样解释,同步信号是指信号与采样时钟之间具

12、有稳定的相位关系,异步信号是指信号与采样时钟之间没有稳定的相位关系。任何异步信号对于本地时钟域系统都意味着一个不稳定的源,因为总是存在这种可能,时钟会在异步信号变化的时候进行了采样。也就是说,因为异步信号会在相对于时钟触发沿的任何位置到达,所以有这种可能,异步信号会在由建立和保持时间界定的时间窗中变化,这就违背了器件的正常工作条件。当发生这种情况时,芯片可能会出现3种不同的结果:(1识别成功,稳定的输出新的数据 (2识别失败,继续稳定的输出旧的数据 (3识别失败,进入亚稳态因为实际中无法断定究竟会出现上述哪一种结果,所以为了保证工作正常,所有跨时钟域的信号即异步信号不能直接使用,必须全部进行同

13、步处理变为本地的同步信号。下面以一个具体的亚稳态发生的例子来引入对亚稳态的讨论。图2.1所示为一个典型的数字设计,时钟域A 向时钟域B 发送数据,所以对于时钟域B 来说,输入数据是异步数据。时钟域B 需要采用同步器才能保证接收正常。 图2.1 一个典型的数字设计即使在第一次触发的时候出现了亚稳态,只要输入信号足够长,在下一次触发的时候就一定能够保证采样到稳定的输入数据,如果从这个角度考虑,好像亚稳态至多只是延长了一个处理周期而已,比如传输一个足够长的控制信号,即使这次判断为无效,那么下次一定会被识别为有效,如图2.2所示。但是实际情况并没有这么简单,因为如果触发器拥有多个扇出,那么就不能保证所

14、有的扇出将亚稳态的信号识别为相同的逻辑电平值,如图2.3所示。DQD Q信号A信号BCLK1 CLK1CLK2信号A 信号BCLK2图2.2 亚稳态的发生示意图 图2.3 亚稳态对触发器的影响示意图2.2 数字电路的模拟特性表2.1 LVTTL逻辑电平工作电压 V CC =3.3V 输出高电平 V OH 2.4V 输出低电平 V OL 0.4V 输入高电平 V IH 2V 输入低电平V IL 0.8V逻辑1(高态)逻辑0(低态)非法逻辑电平OV 3.3V 2.4V0.4V 0V 逻辑1(高态)逻辑0(低态)非法逻辑电平IV 3.3V 2.V0.8V0V图2.4 LVTTL逻辑电平示意图对于输出

15、电平来说,大于V OH 的电平将被解释为逻辑“1”,小于V OL 的电平将被解释为逻辑“0”,介于V OH 和V OL 之间的电平属于非法逻辑电平;对于输入电平来说,大于V IH 的电平将被解释为逻辑“1”,小于V IL 的电平将被解释为逻辑“0”,介于V IH 和V IL 之间的电平属于非法逻辑电平。显然无论输入电压还是输出电压,进行电平切换的时候,都将经历这段短暂的非法逻辑电平时间。以单触发器为例,发生亚稳态的触发器的输出情况可能有3种:(1超过正常传播延迟但是没有超过一个时钟周期,输出稳定的逻辑值“1”,虽然可能与前级的输入值相反。(2超过正常传播延迟但是没有超过一个时钟周期,输出稳定的

16、逻辑值“0”,虽然可能与前级的输入值相反。(3在本次触发后的整整一个时钟周期都处于非法逻辑电平,直到下一次稳定的触发后进入稳态。这3种情况对系统产生的影响正是本文讨论的内容,显然如果在由组合电路构成的反馈电路中出现了亚稳态,那么很容易波及到整个系统。2.3 RS锁存器通过分析双稳态电路中最简单的单元:RS 锁存器,可以很容易理解亚稳态发生的原因。RS 锁存器是构成各种功能锁存器或触发器的基本单元,它可以用两个与非门或两个或非门交叉耦合构成。图2.5所示为用两个与非门搭建的RS 锁存器,它有两个互补输出端Q 和,用Q 端的逻辑值来表示锁存器的状态。Q =1,=0时,称锁存器处于1状态;Q =0,

17、=1时,称锁存器处于0状态。R 、S 为锁存器的两个输入端(或称激励端 ,R 被称为清零端,S 被称为置位端,均为低电平有效。当输入信号R 、S 保持为1不变化时,该锁存器必定处于Q =1或Q =0的某一状态保持不变,所以它是具有两个稳定状态的双稳态锁存器。表2.2所示为RS 锁存器的真值表。表2.2 RS锁存器的真值表R S Q 0 0 1 1 0 1 0 1 1 0 1 0 11保持保持QRS图2.5 与非门搭建的RS 锁存器当R 为低电平,S 为高电平的时候,Q 和分别为低电平和高电平;当R 为高电平,S 为低电平的时候,Q 和分别为高电平和低电平;当R 和S 均为低电平的时候, Q 和

18、全部变为高电平,此时如果R 先于S 变高,那么Q 仍然为高电平,变为低电平,如果S 先于R 变高,那么情况相反。但是当R 和S 同时变高,情况就变的复杂起来,图2.6所示为RS 锁存器的波形图,图中的t 7时刻就表示了这个时刻。下面将分析在这个时刻,RS 锁存器究竟发生了什么。 R SQ1234576图2.6 RS锁存器的波形图由与非门的特性可知,当RS 锁存器的两个输入端口的任何一个为低电平时,输出端的状态就能够唯一确定,而当两个输入端均为高电平时,RS 锁存器就进入反馈状态,这时输出端Q 和的值就由反馈建立之前的值来决定,这是因为A&1=A所以建立反馈后的电路等效于两个反向器串联,

19、如图2.7所示。第二章 亚稳态发生的根源9 t图2.7 RS锁存器进入反馈状态的等效电路 图2.8 Q 和的变化曲线 由于反向器头尾相接,所以Q 和的变化趋势正好相反,此时Q 和的变化曲线如图2.8所示,横坐标表示时间,纵坐标表示电压,粗线表示电压由高电平变为低电平,细线表示电压由低电平变到高电平,两条曲线的交点就是亚稳态点。显然对于上图所示的等效电路来说,如果将Q 或者的电压置为亚稳态点,并且没有外界的干扰,那么整个反馈系统就永远的停留在这个电压上。实际工作中,可以通过调整R 端和S 端的时序达到这种效果。如果R 端或者S 端由高电平变化为低电平,那么即使在变化的过程中输出端出现了毛刺,RS

20、 锁存器的输出终将是稳定的。但是如果R 端和S 端同时由低电平向高电平变化(也就意味着正在建立反馈,锁存器开始由开环状态变为闭环状态 ,那么Q 和的电压就会同时开始下降,从图2.9可以看出,在同时下降到亚稳态点时,反馈环路已经建立起来,根据前面介绍的等效电路的分析可知,此时Q 和将停止变化,如图2.9所示。01 1101图2.9 R 端和S 端同时变高对输出的影响示意图 如果R 端和S 端同时由高电平变为低电平,则不会发生上述现象。因为当R 端和S 端为低电平时,就会强迫Q 和进入稳态高电平,所以Q 和将最终稳定在高电平状态。但是如果R 端和S 端变化的时刻很接近,就可能在输出端产生毛刺。出现

21、毛刺就意味着在输入变化之前和之后,输出值都应该处于相同的电平,只是在输入端变化的过程中,输出端出现了短暂的相反电平,如图2.10所示。第二章 亚稳态发生的根源 101 0101010101101图2.10 毛刺的产生示意图 图2.11 毛刺的传递示意图图中,R 端和S 端在t 0时刻都为高电平,且Q 端为低电平,端为高电平。t 1时刻,S 端开始由高电平变为低电平,导致Q 端由低电平变为高电平,t 2时刻,R 端开始由高电平变为低电平(t =t 2- t1 ,那么在t 1时刻之后的某个时刻,与非门将R 端和Q 端都识别为高电平,于是端开始下降,但是因为R 端电压在逐渐变低,所以与非门终将R 端

22、识别为低电平,所以端电压在经过短暂的下降后又被抬高,恢复成高电平,于是在端出现了一个毛刺。上面讨论的都是输入波形完整时,由于时序的问题导致RS 锁存器输出出现毛刺的情况,假如由于前端的原因在输入端出现了毛刺,那么RS 锁存器会将毛刺传播下去,如图2.11所示。图中,S 端和R 端在t 0时刻分别为高电平和低电平,Q 端为低电平,端为高电平。t 1时刻,S 端出现了一个毛刺导致Q 端电压上升,在S 端电压恢复为高电平后,Q 端电压也恢复到低电平,这样在Q 端就出现了一个毛刺。由于R 端一直为低电平,所以端锁定在高电平不变。这就说明,在使用RS 锁存器的时候,一定要保证R 和S 具有足够的变化时间

23、间隔t ,在FPGA 中禁止使用RS 锁存器就是这个道理,通常FPGA 内部如果使用了RS 锁存器,且R 和S 端信号都走数据线,由于数据线的延迟相当大(ns级 ,所以,即使在产生R 和S 信号的时候保证了足够的时间余量,也不能保证在到达RS 锁存器端口的时候,仍然有足够的时间间隔,这也是组合逻辑固有的弊病。从上面的分析可以确知,对于与非门来说,当两个端口同时发生变化的时候,与非门的判断就出现困难,导致发生判断错误或者进入亚稳态。但是只要保证同一时刻对于与非门的两个输入端,只有一个端口变化,另一个端口稳定就可以保证与非门输出稳定。假设与非门的传播延迟为PD t ,那么保证RS 锁存器正常工作的

24、条件就是R 和S 的变化间隔t 大于PD t ,即t >PD t 。比如S 端发生的变化导致变化,那么在稳定之前(需要PD t 时间 ,R 端不能发生变化。第二章 亚稳态发生的根源 112.4 D触发器有了RS 锁存器的基础知识,就可以理解D 触发器会发生亚稳态的原因。图2.12所示为D 触发器的原理图。D 是数据输入端口,CP 是时钟,Q 和是两个输出端口。 W图2.12 D触发器的原理图简单的讲,D 触发器在CP 为低电平的时候将输出与输入隔离,输出端不会因为输入端的变化而变化,在CP 为高电平的时候,D 触发器依靠内部信号对输入端的反馈,保证输出端数据的稳定,输出端的变化仅仅依赖于

25、CP 触发沿的一瞬间输入的数据,所以D 触发器比锁存器提供了更高的可靠性。但是如果在时钟触发的时刻,输入端的数据出现变化,仍然会将D 触发器带入亚稳态。下面将讨论在这一瞬间,D 触发器究竟发生了什么。分两种情况进行讨论:(1D端由高电平变为低电平;(2D端由低电平变为高电平。为了便于理解,假设所有分析的时间起点均为CP 为低电平,这并不会影响分析的合理性。(1首先考虑D 端由高电平变为低电平的情况,如图2.13所示。因为此时W1为高电平,所以W4开始从低电平变化为高电平,但是如果W4和CP 同时由低电平变为高电平,那么就有这种可能,G3和G5组成的RS 锁存器进入了亚稳态。因为W4和CP 都将

26、没有额外延迟的变为高电平,所以对于G4来说,决定其状态的只有W3,假如W3进入亚稳态,那么显然G4也将进入亚稳态,根据与非门的传播路径G 4G6G5G3,所有的与非门都进入亚稳态,同时由G2和G1组成的RS 锁存器也进入了亚稳态,并导致Q 和也进入亚稳态,图中红色部分所示为亚稳态发生的起源。第二章 亚稳态发生的根源 12 CP WW图2.13 D触发器亚稳态的发生示意图一 图2.14 D触发器亚稳态的发生示意图二(2考虑D 端由低电平变到高电平的情况,如图2.14所示。如果D 和CP 同时由低电平变为高电平,由于G6、G5和G3的传播延迟, W3会保持3PD t 的高电平,那么在这段时间,就有

27、这种可能,G4和G6组成的RS 锁存器进入了亚稳态。根据与非门的传播路径G4G6G5G3,所有的与非门都进入亚稳态,同时G2和G1组成的RS 锁存器也进入了亚稳态,并导致Q 和也进入亚稳态,同样图中红线部分所示为亚稳态发生的起点。根据上面的分析,为了确保D 触发器正常工作,在CP 变化的瞬间之前,' S 必须保持稳定,即' R 必须提前一个PD t 保持稳定(因为PD t 也就是输出电压变化所需要的时间,所以如果要求在t 时刻输出电压稳定,就必须要求在t -PD t 时刻输入电压稳定,或者说,如果输入电压发生变化,那么输出电压在接下来的PD t 这段时间内都是不稳定的 ,那么D

28、 就必须提前CP 两个PD t 保持稳定,这就对CP 触发沿到来前,D 端变化的时间区域提出了要求。同样在CP 变化后,并且W1的反馈建立完成前,D 不能发生变化,可以看到反馈的完成时间是一个PD t ,所以在CP 触发沿到来后,对D 变化的时间区域同样提出了要求。这两个要求对应D 触发器的两个技术指标:建立时间和保持时间。有了D 触发器的建立时间和保持时间的概念,就可以引出在FPGA 的设计中最重要的环节之一:STA(Static Timing Analysis,即静态时序分析。虽然STA 不能检查出逻辑设计错误,但是它能够很大程度上诊断设计的可靠性。图2.15所示为两级触发器级联,以下的所

29、有的STA 均基于两级触发器级联的模型。第二章 亚稳态发生的根源13信号A 信号B 信号C图2.15 两级触发器示意图为了保证结果的可靠性,所有的分析都是在最恶劣的情况(worst-case下进行的,分析结果如下:_( SETUP C COMB MAX CO MAX t T t t skew -+ (2-1_HOLD COMB MIN CO MIN t t t skew +- (2-2其中,SETUP t :触发器要求的建立时间HOLD t :触发器要求的保持时间C T :系统时钟周期_COMB MAX t :组合电路最大延迟_COMB MIN t :组合电路最小延迟_CO MAX t :触发

30、器最大传播延迟,也就是从时钟触发沿开始到数据稳定的出现在输出端的最大延迟。_CO MIN t :触发器最小传播延迟,也就是从时钟触发沿开始到数据稳定的出现在输出端的最小延迟。skew :时钟偏斜,这里定义skew = t 2 t 1,t 2和t 1如图2.15中所示,它们的含义分别是时钟沿到达两个触发器的时刻。对(2-1式的说明:为便于分析,先假定时钟skew 为0,当前时钟触发沿结束后,第一级触发器的D 端数据最长需要经过_CO MAX COMB MAX t t +时间到达第二级触发器的D 端,然后还必须等待SETUP t ,才能允许下一个时钟沿的到来。所以_CO MAX COMB MAX

31、SETUP t t t +是这条路径上的最小时钟周期,这也就限制了这条路径上的最快的时钟速度。对(2-2式的说明:当前时钟触发沿结束后,第一级触发器的D 端数据最短需要经过_CO MIN COMB MIN t t +时间到达第二级触发器的D 端,这也是第一级触发器的D 端旧数据能够保持的时间,所以_CO MIN COMB MIN t t +一定要大于HOLD t 才可以。由上面的公式,很容易得到时钟skew 对建立和保持时间的影响: skew 改善了建立时间的余量,但是恶化了保持时间的余量。下面通过图2.16所示的两级触发器的时序图来解释skew 对建立和保持时间的影响(为简化起见,图中所示的

32、“建立时间”和“保持时间”,表示的是留给触发器的建立时间、保持时间余量,而不是触发器规定的建立时间、保持时间指标 ,由于CO t 和触发器之间的组合逻辑延迟,第一级触发器的输出信号不会马上反应到第二级触发器的输入端,从图中可以看出在CLK2逐渐落后CLK1的过程中(也就是skew 逐渐增大的过程 ,整个系统的建立时间余量逐渐变大,但是保持时间余量逐渐变小。如果由于skew 过大导致违背触发器的建立保持时间指标,触发器就可能出现亚稳态现象。在异步传输中,由于CLK1和CLK2属于两个不同的时钟,没有任何联系,所以CLK1端输出的数据可以在相对于CLK2触发沿的任何位置出现,所以如果不采取特殊的方

33、法,整个系统是无法工作的。 第二级触发器的输入信号不存在时钟skew 的情况, 显然CLK1和CLK2相同存在时钟skew 的情况,CLK2落后CLK1存在时钟skew 的情况,CLK2落后CLK1图2.16 两级触发器的时序图在设计后期,为了改善FPGA 中某一条路径的建立保持时间余量,但又不希望牵扯其它逻辑的时候,可以调节触发器之间的组合逻辑的延迟以及进入第二级触发器时钟的相位。改变组合逻辑延迟可以通过改写代码或者对综合工具进行设置实现,改变时钟的相位可以通过PLL 实现。第三章 亚稳态对故障率的影响3.1 触发器响应曲线图第二章最后一节的分析指出保证触发器的工作正常就必须保证输入数据满足

34、触发器的建立和保持时间要求,但是这并不意味着一旦输入数据违背的建立和保持时间要求就必然出现亚稳态,也并不意味着一旦出现亚稳态就必然使系统出现故障。为了解释这里面的原因,继续沿用上一小节的双触发器结构,但是为了简便起见,省略掉了触发器之间的组合逻辑延迟和时钟skew ,这并不会影响分析的有效性。 传播延迟_CO_MAXt _CO_NORMALt 播延迟图3.1 触发器响应曲线图图3.1所示为触发器响应曲线图20,横坐标表示输入数据到达时刻,纵坐标表示触发器的传播延迟时间。图中,_CO NOMAL t 为触发器的正常传播延迟,其含义是在正常情况下,即输入信号满足触发器的建立时间和保持时间的情况下,

35、信号从触发器的输入端到达输出端所需的平均时间。_CO MAX t 是触发器所能允许的最大传播延迟时间,如果传播延迟超过了_CO MAX t ,就认为触发器发生了亚稳态,0T 表示导致发生亚稳态的输入数据到达时刻的时间区域,在0T 内触发器的传播延迟时间呈指数倍的增加。假设触发器的时钟周期为C T ,如果第一级触发器发生了亚稳态,那么它的输出值更新的时间就超过了CO t (CO t 时间与器件的生产工艺有关,它是一个变量,在触发器的数据手册中提供的CO t 实际上为_CO MAX t ,但是更多工作情况下器件的CO t 为_CO NORMAL t ,也就是说实际中的CO t 应该小于_CO MA

36、X t ,厂家提供的产品指标留有余量。为简单起见,后面将不予区分,统一用CO t 表示,这并不影响分析的有效性 。将从CO t 结束时刻开始到触发器实际输出最终恢复到正常逻辑电平的这段额外延迟时间称为MET t ,将系统允许的最大额外传播延迟称为r t ,根据上一节的知识,显然可以得到r C CO SETUP t T t t =-,表示一个时钟周期中除去必须的CO t 和SETUP t 所剩下的时间,显然C T 越长r t 就越长。正常触发情况下的MET t 为零,亚稳态会导致MET t 增加,但是只要MET r t t <,那么对于下一级触发器来说,输入数据就是安全的,也就是说第二级触

37、发器就一定不会出现故障。但是如果MET r t t >,第一级触发器的输出在下一个时钟触发沿的建立和保持时间窗中仍然不稳定,那么第二级触发器就有可能继续发生亚稳态,这就是亚稳态的传播。这里,r t 表示了一个时间界限,如果触发器的响应时间超过这个界限,则可能将亚稳态传递到下一级,且可能会引发系统的故障(在后面的章节会介绍专门的参数来表征故障率的大小 ,将由这个界限确定的输入数据的到达时刻的时间区域称为亚稳态窗,显然如果取0r t =(此时触发器工作在最高速度 ,那么亚稳态窗就是0T 。3.2 亚稳态窗图3.2所示为亚稳态窗与时钟周期、建立时间及保持时间等之间的关系。结合上一节的触发器响应

38、曲线图,下面将对亚稳态窗展开详细的讨论。 D Q图3.2 亚稳态窗示意图由一些理论研究和经验21, 22, 23可以得出亚稳态窗口的宽度为0r t T e -=,如果传播延迟超过了r t ,就认为出现了亚稳态的传播(即第一级触发器未能成功阻止亚稳态的传播 。显然0T =是0r t =时的亚稳态窗口宽度的特例。其中和0T 是触发器的常数参量,由生产厂家的工艺和器件的工作环境(电压、温度 决定,所以采用相同工艺的器件在相同的工作环境中通常都有类似的参数和0T (精确获知需要测量 ,表3.1所示为不同型号的器件的和0T 24。下面的章节将详细阐述确定和0T 的方法。表3.1 SN74ABT7819和

39、SN74ACT7807的和0T 参数的值24 没有落入0T ,那么传播延迟为CO t ,如果数据落入了0T ,那么传播延迟就超过了CO t ,数据变化时刻离窗口的中心越近,输出的传播延迟就越大,当数据变化时刻落入亚稳态窗口的时候,额外输出延迟MET t 就超过了r t ,这时对于第二级触发器来说接收到的数据就不满足建立和保持时间,有可能使第二级触发器发生亚稳态。从上面的分析可以看出,如果要求“保证”输出数据的正确,输入数据必须满足建立和保持时间的要求,但是实际上即使输入数据违背了建立或者保持时间,也并不意味着一定会发生亚稳态,只有落入了0T 才会发生亚稳态,建立和保持时间界定的窗口中还存在着一

40、个亚稳态窗,只有输入数据落入了亚稳态窗,才认为触发器发生了故障。显然触发器的工作时钟越快,r t 便越小,亚稳态窗口的宽度就越宽,触发器也越容易发生故障。亚稳态窗是一个真实的窗口,在文献20中介绍了一种实际中测量亚稳态窗的办法(实际上是测量0T 。亚稳态窗非常窄(宽度在皮秒级 ,是由r t 确定的常量,但是亚稳态窗的位置却会随着时间、温度、供电电压、系统噪声以及其他一些因素的变化而变化,也就是说亚稳态窗的位置是漂移的,无法精确的确定窗口的位置,这也就解释了为什么无法预测亚稳态的脱离时间。但是在下面的章节将发现,实际上亚稳态窗口的位置并不重要,因为它不会跨出建立和保持时间界定的窗口。亚稳态窗口的

41、宽度和MET t 的长度由生产厂家的工业水平和器件的工作环境决定。通常情况下,触发器都会立即回到稳定的逻辑电平,虽然可能与期望值相反(比如输入数据为“0”,并且变化时刻落入亚稳态窗口内,触发器在进入亚稳态后由于各种干扰又马上恢复到稳态,但是输出值却是“1” 。下一节将介绍MTBF 的概念,将看到亚稳态窗口越窄,就越不容易进入亚稳态,而且触发器的MTBF 就越大,但是无论亚稳态窗如何变化,MET t 的上界永远是无限大的,此时触发器处于亚稳态点,见图2.8所示。亚稳态并不一定造成不可预测的系统故障。如果等待时间足够长,那么实际中的触发器终将进入稳态,在这个时候对触发器的输出进行采样,就不会造成亚

42、稳态的传播。另外,如果第二级触发器能够成功的阻止亚稳态的传播,那么即使两级触发器的第一次判断错误,只要输入数据保证足够长的有效时间,那么在下一个时钟周期两级触发器必然会做出正确的判断,这样情况仅仅造成了系统响应延缓了一个时钟周期而已,通常并不会对系统的功能造成什么影响,当然这需要针对当前设计进行仔细分析。3.3 平均无故障时间(MTBF在开始对MTBF(Mean Time Between Failure介绍之前,首先引入 “浴缸曲线”25的概念,这是一个和产品的故障率相关的概念。如果对一批产品的故障率进行研究,将发现产品故障率并不是一个常量,而是随时间的推移而变化的。通常来说,产品生命周期分3

43、个阶段。在故障率的第一个阶段,故障率相对较高,但是随着时间的推移有下降的趋势,这个阶段称之为“早期故障期”(early life period 。第二个阶段故障率很低并且几乎是个常数,这个阶段称为“常数故障率期”。第三个阶段故障率又开始增加,而且通常非常的迅速,这个阶段称为“损耗期”。当将故障率的函数画出图来后,就会发现原来是一个类似浴缸的形状,如图3.3所示,称之为“浴缸曲线”。电子产品制造商一般通过测试、筛选等手段将早期的故障尽量剔除,然后提供给客户使用。当使用期将尽,产品也将进入故障高峰期,需要报废或者更新换代了。而在文章中提到的故障率实际上只和“常数故障率期”有关,也就是说关注的只是“

44、常数故障率期”的MTBF 。故障率时间“损耗期”“常数故障率期”图3.3 “浴缸曲线”的示意图MTBF(Mean Time Between Failure是评估故障率的一个指标,而故障率,其含义就是发生故障的平均概率,下面将针对一级触发器结构讨论如何计算MTBF 。由于异步输入数据和本地时钟没有任何关系,所以可以认为异步输入数据可能出现在时钟周期中的任何位置,并且服从均匀分布,但是一旦异步输入数据落入了亚稳态窗,那么数据的传播延迟就会超过r t ,也就是说发生了故障,所以系统发生故障的概率就是/C C T f =,其中T C 表示触发器的时钟周期。设异步输入信号的变化率为D f (D f 是信

45、号频率的两倍,因为不论信号从高电平切换到低电平还是从低电平切换到高电平,只要条件合适,都能够引发亚稳态,所以在评估故障率的时候必须要考虑信号的变化率 ,那么在单位时间内(比如这3个参数的单位都基于秒,那么这里所谓的单位时间就是每秒 ,触发器出故障的次数为C D f f ,C D f f 的倒数就表示发生故障的平均时间间隔,称为MTBF :0rt C De MTBF T f f = (3-1 上面的计算对象是一个触发器,但是在实际中不是使用这个公式计算出MTBF ,而是厂家先通过特殊的测试手段得到产品的MTBF ,然后再确定出公式中的参数指标向外发布,用户便可以根据这些参数指标定量的控制当前设计

46、的可靠性,这就是上述分析的实际意义。MTBF 虽然拥有时间的单位,但只有概率的意义,并且MTBF 是相对于群体的特征,而不是针对个体的特征。它由大量的采样样本统计得出,所以也只能反映大量样本的统计特性,而不是单个样本的特性。下面讨论确定和0T 的方法,对MTBF 公式两边同时取对数后,可以得到r t 的表达式:0ln( ln( r C D t MTBF T f f =- (3-2 通过测试在不同的r t 下对应的MTBF ,可以得到r t 与MTBF 的关系图。如果x轴表示r t ,y 轴表示ln( MTBF ,根据上面的公式,将出现一条直线,由于直线斜率的倒数就是,随意任取直线上两点就可求出

47、。根据MTBF 的公式,很容易得到0T 的表达式:0rt C De T MTBF f f =* (3-3 现在、C f 和D f 都已知,再任取一组r t 和MTBF 带入上式,即可求出0T 。从MTBF 的公式可以看出,如果要提高MTBF ,只要增大r t 或者减小、0T ,但是增大r t 意味着降低系统的工作频率,这是设计者最不愿意看到的结果。减小、0T 就意味着更换更先进的触发器,但是同一种FPGA 内部的触发器全部属于同一个型号。然而有一种方法简单而且有效,那就是使用两级触发器代替一级触发器。后面的章节将从系统的角度阐述两级触发器对可靠性的改善,这里仅仅从MTBF 的角度进行分析。如果

48、第一级触发器成功的阻止了亚稳态的传播,那么它的输出已经属于本地时钟域,也就是说,对于第二级触发器来说接收到的是同步信号,在这种情况下,电路功能完全正常。如果第一级触发器没能阻止亚稳态的传播,导致MET r t t >,那么这时第一级触发器的输出便不能满足第二级触发器的建立和保持时间的要求,所以对于第二级触发器来说,第一级触发器的输出信号仍然属于异步信号,且异步信号的到达时间可能出现在相对于时钟触发沿的任何时候,因此对于第二级触发器来说,异步信号的变化率是第一级触发器MTBF 的倒数,显然由于增加了一个时钟周期的等待时间,使得进入第二级触发器输入端的异步信号的变化率要远远小于进入第一级触发

49、器输入端的异步信号变化率,这也就减小了出故障的概率。0121(1r CD D t T f f f MTBF e = (3-4 其中1D f :进入第一级触发器输入端的异步信号的变化率2D f :进入第二级触发器输入端的异步信号的变化率那么将2D f 带入MTBF 公式中,就得到两级触发器的MTBF 公式:0010(2*(1r r rt t t C C D C e e e MTBF T f T f f T f MTBF = (3-5 由于对于整个系统来讲1D f 就是D f ,(2MTBF 就是MTBF ,所以将两个参量替代后,得到最终公式:2220( r t C De MTBF T f f =

50、 (3-6 从上式可以看出MTBF 的分子和分母都出现平方,可能还不能直观的看出MTBF 的变化趋势,但是只要举一个实际例子就可以展现出两级触发器的威力。这里引用Cypress 在文献26中使用的MTBF 的公式:rsw t t c d e MTBF f f W=(3-7 其中sw t 等同于本文中的,W 等同于本文中的0T 。Cypress 在测试PALC22V10(最高工作频率41.6MHz 中,设计了这样的工作环境:0.125W =ps ;190=ps ;C f =41.6MHz;D f =20MHz由于当前工作在最高频率,所以0r t =s e MTBF s s s-=(s 初看起来这

51、是个失败的设计,其实不是这样的,因为在计算MTBF 的时候,是假设输入信号为异步信号时,考察发生亚稳态的概率,如果在这种情况下不为器件留出额外的分辨时间(resolving timing,任何厂家的产品都不可能有好的表现。如果为触发器提供额外的1.6ns 延迟,那么时钟工作频率就为39MHz ,现在得到912s e MTBF s s s-=(s 还是不太好,那么将两个触发器级联,得到:91.6*102MTBF 计算公式的意义就在于在预先设定的可容忍的故障率条件(MTBF下,能够确定设计中的工作频率。第四章 克服亚稳态的方法由前面的分析可知,在FPGA 的设计过程中,异步信号引起的亚稳态现象是不可能根除的,设计者所能做的只能是尽量减小亚稳态发生的概率或者通过特殊的处理手段使得亚稳态不会导致系统发生功能性故障。实际中处理亚稳态的方法有多种,本文将其分为四类,第一类是两级触发器级联,它是构成实际当中各种同步器的基本单元;第二类是采用握手协议,握手协议是利用请求和应答信号实现对异步信号的正确接收的方式;第三类是开环控制,所谓开环控制,其实就

温馨提示

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

评论

0/150

提交评论