本文总结由数字电路设计的异步时钟引起的亚稳态问题,并针对亚稳态问题提出的处理方法和跨时钟域电路设计方法。重点是分析由异步时钟引起的跨时钟域CDC问题,后续将会总结由复位引起的电路亚稳态问题。
一、亚稳态问题
每一个触发器都有其规定的建立(setup)和保持(hold)时间参数,在这个时间参数内,输入信号在时钟的上升沿是不允许发生变化的。如果在信号的建立时间中对其进行采样,得到的结果将是不可预知的,即亚稳态。亚稳态是一种电路状态,在该状态下电路没法明确的传递“1”和“0”,因此会带来随机的数据比特翻转,导致电路设计失败。
衡量系统亚稳态时间的参数为MTBF (mean time between failures),该参数越大说明系统采样失败的可能性越小。该参数和采样时钟频率相关,时钟频率越高,MTBF越大,系统越容易出现亚稳态。MTBF计算公式:MTBF=(e^(tr/T))/T0*f*a (t上升时间,r和T触发器相关参数,f时钟频率,a采样时钟频率)。假设一个典型的0.25um工艺的触发器,tr=2.3ns,r=0.31ns,T0=9.6as,f=100MHz,a=10MHz,计算出MTBF=2.01days,也就是说该电路平均2天左右会出现一次亚稳态。现在成熟工艺已经进入到5nm,时钟频率最高到5GHz,亚稳态将在几个小时就会出现一次,已经严重影响产品质量和稳定性。并且,上述推算只是单个触发器出现亚稳态的时间,如果设计电路中存在多处亚稳态,那么整个系统可能会在几分钟甚至几毫秒内出现亚稳态。

亚稳态带来的结果和影响是巨大的,最直接的影响是整个该模块的系统异常,

本文聚焦数字电路设计中由异步时钟引发的亚稳态问题,分析了亚稳态产生原因、影响及衡量参数。针对单比特和多比特跨时钟域情况,分别给出处理方法,如单比特用双锁存器级联,多比特有开环结绳法、闭环结绳法和异步FIFO等。

1949

被折叠的 条评论
为什么被折叠?



