您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术理解FPGA中的压稳态 正文
理解FPGA中的压稳态

理解FPGA中的压稳态

点击数:7220 次   录入时间:03-04 12:03:00   整理:http://www.55dianzi.com   DSP/FPGA技术

  本白皮书介绍 FPGA 中的 压稳态 ,为什么会出现这一现象,它是怎样导致设计失败的。介绍怎样计算压稳态 MTBF ,重点是对结果造成影响的各种器件和设计参数。

  引言

  当信号在不相关或者异步时钟域之间传送时,会出现压稳态,它是导致包括FPGA 在内的数字器件系统失败的一种现象。本白皮书介绍FPGA 中的压稳态,解释为什么会出现这一现象,讨论它是怎样导致设计失败的。

  通过计算压稳态导致的平均故障间隔时间(MTBF),设计人员知道是否应采取措施来降低这类失败的概率。

  本白皮书解释怎样利用各种设计和器件参数来计算MTBF, FPGA 供应商和设计人员怎样提高MTBF。可以通过设计方法和优化措施来降低出现压稳态失败的概率,从而提高系统可靠性。

  什么是压稳态?

  FPGA 等数字器件中的所有寄存器都有确定的信号时序要求,使每一个寄存器能够正确的采集输入数据,产生输出信号。为保证能够可靠的工作,寄存器输入必须在时钟沿之前稳定一段时间( 寄存器建立时间,即tSU),在时钟沿之后也要保持稳定一段时间( 寄存器保持时间,即tH)。一定的时钟至输出延时 (tCO) 之后,寄存器输出有效。如果信号转换不能满足寄存器的tSU 或者tH 要求,寄存器输出就有可能进入压稳态。在压稳态中,寄存器输出在高电平和低电平状态之间徘徊一段时间,这意味着,输出延时超出设定的tCO 之后才能转换到确定的高电平或者低电平状态。

  在同步系统中,输入信号必须满足寄存器时序要求,因此,不会出现压稳态。信号在不相关或者异步时钟域电路之间传输时,一般会出现压稳态问题。在这种情况下,由于信号可能在相对于目的时钟的任意时间到达,因此,设计人员不能保证信号能够满足tSU 和tH 要求。然而,并不是所有不能满足寄存器tSU 或者tH的信号转换都导致压稳态输出。寄存器是否会进入压稳态以及返回稳定状态所需要的时间与器件制造工艺以及实际工作条件有关。在大部分情况下,寄存器会很快返回稳定状态。

  可以把寄存器在时钟边沿采样数据信号形象的看成是球从山上滚落下来,如图1 所示。山的两边代表稳定状态——信号转换之后,信号的老数据和新数据,山顶代表压稳态。如果球从山顶滚落,它会处于不确定状态,实际中,它稍偏向一侧,然后,落到山下。从山顶开始,越到山脚,球到达底部稳定状态的速度越快。

利用球从山上落下描述压稳态

图 1. 利用球从山上落下描述压稳态

  如果数据信号在时钟沿之后以最小的 tH 转换,这就类似球从山的“老数据值”一侧落下,输出信号保持在该时钟转换的最初值不变。当寄存器数据输入在时钟沿之前以最小 tSU 转换,保持时间大于最小 tH,这就类似球从山的“新数据值”一侧落下,输出信号很快达到稳定的新状态,满足确定的tCO 时间要求。但是,当寄存器数据输入不能满足tSU 或者 tH, 时,这就类似于球从山顶落下。如果球落在山顶附近,那么,它会花很长时间才能落到山脚,增加了时钟转换到稳定输出的延时,超出了要求的tCO。

  图2 描述了压稳态信号。时钟信号转换时,输入信号从低电平状态转换到高电平状态,不能满足寄存器的tSU 要求。数据输出信号从低电平状态开始,进入压稳态,在高电平和低电平状态之间徘徊。信号输出A 转换到输入数据的新逻辑1 状态,输出B 返回到数据输入最初的逻辑0 状态。在这两种情况下,输出转换到确定的1 或者0 状态的时间被延迟了,超出了寄存器要求的tCO。

压稳态输出信号实例

图 2. 压稳态输出信号实例

  压稳态什么时候会导致设计失败?

  如果数据输出信号在寄存器下次采集数据之前,转换到有效状态,那么,压稳态信号不会对系统工作有不利影响。但是,如果压稳态信号不能在它到达下一设计寄存器之前转换到低电平或者高电平状态,那就会导致系统失败。继续山和球的形象解释,当球到达山脚( 稳定逻辑状态0 或者1) 的时间超出分配的时间后,即,寄存器tCO 加上寄存器通路所有时序余量的时间,就会出现失败。当压稳态信号没有在分配的时间内稳定下来时,如果目的逻辑观察到不一致的逻辑状态,即,不同的目的寄存器采集到不同的压稳态信号值,出现逻辑失败。

  同步寄存器

  当信号在不相关或者异步时钟域电路之间传送时,在使用该信号之前,需要将信号同步到新的时钟域。新钟域中第一个寄存器起到了同步寄存器的作用。

  为消除异步信号传送时压稳态导致的失败,电路设计人员通常在目的时钟域中使用多个串联寄存器( 同步寄存器链或者同步器),将信号重新同步到新时钟域上。采用这些寄存器,在设计中的其他部分使用压稳态信号之前,该信号能够有更多的时间转换到确定状态。同步寄存器至寄存器通路上的时序余量是压稳态信号稳定所需要的时间,被称为压稳态稳定时间。

  同步寄存器链或者同步器是满足以下要求的寄存器序列:

  ■ 链上的寄存器都由相同的或者相位相关的时钟进行同步

  ■ 链上的第一个寄存器由不相关的时钟域进行驱动,即异步驱动。

  ■ 每个寄存器只扇出连接一个寄存器,链上的最后一个寄存器除外。

  同步寄存器链的长度是满足以上要求的同步时钟域中的寄存器数量。图3 是长度为2 的同步链的例子,假设输出信号被送入多个目的寄存器。

同步寄存器链实例

图 3. 同步寄存器链实例



www.55dianzi.com

  注意,异步输入信号,或者在不相关时钟域之间传输的信号,会在相对于采集寄存器时钟沿的任意点进行转换。因此,设计人员无法预测数据转换前的信号转换顺序或者目的时钟边沿数量。例如,如果在时钟域之间传送异步总线信号,并进行同步,数据信号会在不同的时钟沿进行转换。结果,会接收到不正确的总线数据。

  设计人员必须适应这种电路工作方式,例如,双时钟 FIFO (DCFIFO) 逻辑存储信号或者握手逻辑等。FIFO逻辑使用同步器在两个时钟域之间传送控制信号,然后,数据被写入双端口存储器,或者读出。ALTEra 为这一操作提供DCFIFO 宏功能,它包括各种级别的延时,为控制信号提供亚稳态保护。如果异步信号被用作两个时钟域之间的部分握手逻辑,控制信号会指出数据什么时候才能在时钟域之间进行传输。在这种情况下,采用同步寄存器以确保亚稳态不会影响控制信号的接收,在任何亚稳态条件下,数据都有足够的建立时间,在使用数据之前达到稳定。在设计比较好的系统中,每一信号在被使用之前都能达到稳定状态,设计可以正常工作。

  计算亚稳态 MTBF

  亚稳态平均故障间隔时间MTBF 大致估算了亚稳态导致出现两次设计失败之间的平均时间。较大的MTBF( 例如亚稳态失败间隔数百甚至数千年) 表明非常可靠的设计。所需要的MTBF 取决于系统应用。例如,急救医疗设备需要的MTBF 要比消费类视频显示设备长得多。增大亚稳态MTBF 能够减小信号传输导致设备出现亚稳态问题的概率。

  可以使用设计信息以及器件特征参数来计算设计中某些信号传输或者所有信息传输的亚稳态MTBF。采用下面的公式和参数来计算同步器链的MTBF:

公式

  C1 和C2 常数取决于器件工艺和工作条件。

  在fCLK 和fDATA 参数取决于设计规范: fCLK 是接收异步信号时钟域的时钟频率, fDATA 是异步输入数据信号的触发频率。较快的时钟频率以及触发数据能够降低( 或者劣化) MTBF。

  tMET 参数是亚稳态信号达到确切状态的亚稳态建立时间,即,超出寄存器tCO 的时序余量。同步链的 tMET 是链上每一寄存器输出时序余量之和。

  设计中每一同步器链的MTBF 确定了总的设计MTBF。同步器的失效率是1/MTBF,将每一同步器链的失败概率相加得到整个设计的失败概率,如下所示:

公式

  设计亚稳态MTBF 为1/failure_ratedesign。

  设计人员使用Altera® FPGA 时,不需要手动完成这些计算,这是因为Altera QUARTus ® II 软件将亚稳态参数集成到了工具中。

  确定亚稳态常数

  FPGA供应商可以通过FPGA的亚稳态特性来确定MTBF方程中的常数。确定特性的难点在于典型FPGA设计的MTBF 一般在几年以上,因此,使用真实设计,在实际工作条件下测量亚稳态事件之间的时间间隔是不可行的。为确定器件亚稳态常数, Altera 使用了测试电路,设计的这一电路具有较短的可测量MTBF,如图4 所示。

[1] [2]  下一页


本文关键字:暂无联系方式DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术

《理解FPGA中的压稳态》相关文章>>>