首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

认识FPGA触发器的亚稳态

认识FPGA触发器的亚稳态

边沿型触发器的输出有两个稳定状态: 高电平或者低电平。为保证可靠操作,必须要满足触发器的时序要求,也就是我们熟知的建立时间和保持时间。如果输入信号违反了触发器的时序要求,那么触发器的输出信号就有可能会出现非法状态---亚稳态。亚稳态是一种不稳定状态,在一定时间后,最终返回到两个稳定状态之一。亚稳态输出的信号是什么样子的? 对于系统有什么危害? 如果降低亚稳态带来的危害?这是下面要探讨的问题。[文中有几张图片对于了解本文很关键,如果不能显示,请参考博客相册中topic2.png]  
亚稳态的特点:
    1.增加触发器进入稳定状态的时间。
   亚稳态的坏处之一是会导致触发器的TCO时间比正常情况要大。多出来的时间tR (resolution time)就是亚稳态持续的时间,参考图1。如果触发器的时序要求tSU(建立时间)和tH(保持时间)被满足,那么触发器的延时TCO=tCO_norm;否则如果违反了触发器的时序要求,那么触发器在经过tCO_norm时间后,进入亚稳态,亚稳态持续的时间叫做resolutiontime,标识为tR。tR过后,亚稳态返回到两个稳定状态之一。

   数据的跳变距离触发器的采样时刻越近,tR就越大。这种关系参见图2.


         器件制造商给出的tSUtH指标都是有余量的。轻微的违反tSU或者tH并不会发生亚稳态,只是导致触发器的tCO超出器件的规范(spec)。只有当数据的跳变出现在亚稳态捕捉窗口W(见图2中的Wfs级别的时间窗口),才会发生亚稳态。总的来说,数据的跳变越靠近W窗口,触发器进入稳定态的时间就越长。

         在同步设计中,源触发器(Source FlipFlop)的输出必须在一个时钟周期内稳定下来,才能够被目的触发器(DestinationFlipFlop)准确采样。如果tR过大,可能让目的寄存器采样到亚稳态,会导致亚稳态的传播。

    2.输出毛刺、振荡、或中间电平
    经过一段时间之后,亚稳态返回到稳定状态。有可能返回到高电平,也有可能返回到低电平,这和输入的数据无关。且在亚稳态的过程中,触发器的输出可能在震荡,也可能徘徊在一个固定的中间电平上。我们来看一个真实案例。见图3.

   在这个案例中,我们测试一个FPGA逻辑单元中的亚稳态现象。在测试中,我们让sel信号固定在0,那么逻辑关系为 F1<= local_2m输入,F0 <=local_2m输入,local_2m和cdr_2m都是2MHz的方波信号,被一个50MHz的异步时钟作同步化处理。Verilog代码为:
always @(posedge clk_50m)
  if(sel==1)begin
    clk2m_oa<= cdr_2m ;
    clk2m_ob<= cdr_2m ;
  end
  else begin
    clk2m_oa<= local_2m ;
    clk2m_ob<= local_2m ;
  end
   测试中我们发现触发器的输出clk2m_ob上偶尔有毛刺出现,但是触发器的输入F1和F0上并没有毛刺。而且这个毛刺和下一个clk2m_ob跳变沿的间隔刚好是50MHz的一个周期20nS。参考图4,红色为F1,黄色为clk2m_ob。

我们来分析下这个毛刺。由于2MHz输入信号local_2m50MHz时钟clk_50m是异步的,因此毫无疑问会有亚稳态的出现。当亚稳态出现的时候,触发器的输出一开始随机震荡到高电平,但很快亚稳态结束,并返回到错误的低电平状态。于是就表现为毛刺。如果想从门电路角度解释为什么会出现毛刺,可以参考文献[5].
        在测试中,每大约一小时,clk2m_ob就会出现一次这样的毛刺。可以看出亚稳态的捕捉窗口是非常小的。这个实验中大约发生了60 minutes * 60seconds/20nS = 180*10^9次采样。因此捕捉窗口的大致范围为20nS * (2/25) /(180*10^9) ~= 9 *10^(-12) s = 9 fs. 这么高的精度,没有任何仪器可以精确模拟,这也是为什么亚稳态现象只能用统计的方法去研究的原因。
        另一方面,同样的电路功能,clk2m_oa却从来没有出现过这样的毛刺。这说明亚稳态掉表现形式不是固定的。猜测clk2m_oa的亚稳态表现为中间电平的形式,并最终返回到正确的状态。由于tR时间非常短,并且亚稳态和信号的边沿混和在一起,无法和正常情况进行区分。根据XAPP094的解释,亚稳态的表现是和器件的PVT(制作工艺Process,电压Voltage,温度Temperature)相关的,并且和具体电路的增益,噪声相关。如果是这样,clk2m_oaclk2m_ob的各自触发器的或增益或噪声是有差异的,所以表现不一致。
3. 亚稳态返回到哪一个稳定态是不可预测的,而且和输入数据无关。
亚稳态返回到哪一个稳定态是不可预测的,和输入数据无关。因此假设亚稳态较快的返回,目的寄存器(destinationFF)能够采样到稳态电平,也可能采样到错误的电平,导致系统功能错误。
继承事业,薪火相传
返回列表