亚稳态现象(Metastability)
亚稳态现象在数字电路和集成电路中普遍存在,能否最大可能的避免亚稳态,直接决定了设计的成功率.
参考文档:Intel(Altera)《Understanding Metastability in FPGAs》
一、概念
1.定义
触发器的输入数据时序应满足 t s u t_{su} tsu建立时间和保持时间 t h t_{h} th,当输入时序不满足时,触发器就会工作在亚稳态,进而对触发器输出结果造成影响。
2."小球与山坡"模型
Intel官方提供了一种”山坡与小球“模型,形象地描述了fpga中的亚稳态现象。当数据输入位于山脚下时,充分满足了
t
s
u
t_{su}
tsu和
t
h
t_{h}
th,即上图Figure1中的前两个示意图,当数据输入时刻不满足
t
s
u
t_{su}
tsu和
t
h
t_{h}
th条件时,例如小球落在山顶,此时会造成两种可能现象,第一种:数据采样错误,进而触发器输出电平结果错误,模型中即不能保证小球正确的落向某一侧;第二种:数据输出延时增大,即tco延迟,会导致从时钟采样到输出数据的时间大于满足
t
s
u
t_{su}
tsu和
t
h
t_{h}
th条件时的情况,进而可能影响后级的时序。
3.亚稳态时序图分析
Figure 2 亚稳态时序图分析,当输入违背
t
s
u
t_{su}
tsu时(
t
s
u
t_{su}
tsu之前输入未稳定),存在输出A和B两种情况结果并不相同,并且输出延时大于
t
c
o
t_{co}
tco,这就是亚稳态工作时的典型表现。
二、亚稳态的工作量化指标
可用 MTBF(Mean Time Between Failures,故障平均时间)来定量描述亚稳态的实际影响,MTBF反应了一个系统稳定性程度,MTBF越大,意味着故障间隔时间越长,出现故障概率越低,即稳定性越高。
MTBF可由下式定量计算,
C
1
C_{1}
C1、
C
2
C_{2}
C2为器件常量,由工艺特性和环境条件决定。除了器件常量外,其他参数均与用户的设计有关,
f
C
L
K
f_{CLK}
fCLK和
f
D
A
T
A
f_{DATA}
fDATA分别为采样异步数据时的时钟频率和数据速率,
t
M
E
T
t_{MET}
tMET为亚稳态输出后的稳定裕量时间,是指提前于tco的裕量,因此tco数值越大,显然亚稳态输出的不确定过程时间越短,工作越稳定,MTBF越大。
M
T
B
F
=
e
t
M
E
T
/
C
2
C
1
∗
f
C
L
K
∗
f
D
A
T
A
MTBF=\frac{e^{t_{MET}/C_2}}{C_1*f_{CLK}*f_{DATA}}
MTBF=C1∗fCLK∗fDATAetMET/C2
对于系统整体的MTBF,宏观反应就是系统设计的失败率(或者是可行率),由各个子同步触发器链的MTBF倒数和决定,下式说明,如果其中一个子部分的MTBF较小,即使其他部分MTBF很理想,那整个系统瘫痪的概率也非常大,因为各部分是级联关系。
f
a
i
l
u
r
e
_
r
a
t
e
d
e
s
i
g
n
=
1
M
T
B
F
d
e
s
i
g
n
=
∑
i
=
1
n
u
m
b
e
r
o
f
c
h
a
i
n
s
1
M
T
B
F
i
failure\_rate_{design}=\frac{1}{MTBF_{design}}=\sum_{i=1}^{number\ of\ chains} \frac{1}{MTBF_i}
failure_ratedesign=MTBFdesign1=i=1∑number of chainsMTBFi1