关于时钟抖动,这些都是知识点
2018-06-05
1简介
抖动是实际信号的一组边沿与理想信号之间的偏差(兔子:说白了,抖动就是实际情况和理想情况不一样,差别越大抖动越大)。时钟信号的抖动通常由系统中的噪声或其他干扰因素引起。影响因素包括热噪声、电源变化(波动)、负载的状况(负载也可以反过来影响时钟信号)、设备噪声和临近电路耦合进来的干扰。
2抖动的分类
抖动可以通过许多方式测量(不同方式测量到的抖动被分别加以定义),以下是主要的抖动分类:
1.周期抖动(Period Jitter)
2. 相邻周期间的抖动(Cycle to Cycle Period Jitter)
3. 长时间抖动(Long Term Jitter)
4. 相位抖动(Phase Jitter)
5. 单位时间间隔抖动(TIE,Time Interval Error)
2.1周期抖动
周期抖动是时钟信号的实际周期长度与理想周期长度之间的偏差,测量样本为数目不定(随机)的一组周期。如果给定一定数目的单个时钟周期,我们就可以通过测量每个周期的长度并计算平均的周期长度,以及这些时钟周期的标准差和峰峰值(peak-to-peak value)。这里所说的标准差和峰峰值也分别被称为RMS抖动和Pk-Pk周期抖动。
许多文献将周期抖动直接定义为被测时钟周期与理想周期之间的误差。但是真实情况下很难对理想周期进行量化。如果我们用示波器观察一个标称100MHz的晶振,测得的平均时钟周期却可能是9.998ns,而不是理想的10ns。所以退而求其次,通常将平均周期作为理想周期看待(兔子:因为实际周期都是在理想值周围按照一定规律分布的,如果测量时间足够长,得到的平均值就可以非常接近理想值)。
2.1.1周期抖动的应用
周期抖动对于计算数字系统的时序裕量十分有用。假设在一个基于微处理器的系统中(上升沿采样),处理器要求1ns的数据建立时间(即数据需要在时钟上升沿1ns前保持稳定有效)。当时钟的某个周期抖动为-1.5ns时,上升沿会出现在数据有效之前,如此处理器将会采集到错误的数据。如图1所示:
图1时钟抖动造成的数据建立错误
类似的,如果另一个处理器需要2ns的数据保持时间,但是时钟某一个周期的抖动是+1.5ns,那么实际有效的数据保持时间只有0.5ns,处理器也会采到错误的数据。如图2:
图2时钟抖动造成的数据保持错误
2.1.2由RMS抖动计算Pk-Pk抖动
由于时钟的周期抖动是随机的,并遵循高斯分布。因此周期抖动完全可以用统计学中的均方根(RMS ,Root Mean Square,别说不会算)来表示,单位为皮秒(ps)。但是呢,峰峰值却和计算建立保持时间裕量有更大的联系(峰峰值表示了最大误差,超过建立保持时间要求,数据采样就有可能出错)。要将10000个时钟周期的RMS抖动换算成Pk-Pk抖动,可遵循以下等式:
Pk-Pk周期抖动=7.44 x RMS抖动 *等式1
例如:若RMS抖动为3ps,则Pk-Pk周期抖动为7.44 x 3 = ±11.16ps。
等式1其实是由高斯概率密度函数表(PDF ,Gaussian Probability Density Function)推导出来的。比如当样本个数为100时,从统计学的平均情况来讲,其中 99个会落在有效值周围的±2.327σ范围内,只有1个会落在该范围之外。根据JEDEC标准的要求,某司测量RMS周期抖动时设定的样本数为10000。
样本数
σ
10
±1.282
100
±2.327
1,000
±3.090
10,000
±3.719
100,000
±4.265
1,000,000
±4.754
10,000,000
±5.200
100,000,000
±5.612
1,000,000,000
±5.998
10,000,000,000
±6.362
100,000,000,000
±6.706
1,000,000,000,000
±7.035
表1高斯概率密度函数表(PDF)
2.1.3周期抖动测量方式
JEDEC Standard 65B中将周期抖动定义为某一随机数量的时钟周期与理想周期之间的偏差(由定义了一次,生怕大家忘了)。JEDEC标准进一步地指定了测周期抖动需要测量10000个信号周期(多一个少一个应该也无所谓吧)。某司推荐的测试步骤如下:
1. 测量一个时钟周期(一个上升沿到下一个上升沿之间)的长度,即一个样本
2. 等待随机个时钟周期
3. 重复1、2两步10000次
4. 通过测到的10000个样本,计算平均值,标准差(σ),和峰峰值
5. 重复1-4步骤25次,通过这25组结果,计算平均峰峰值
10000个随机样本计算出的标准差(σ),即均方根(RMS,也有人认为均方根和标准差并非等同)已经很精确了,RMS的误差可以通过如下等式计算:
*等式2
等式中的σn为样本的RMS,N为样本数。
例如:样本数为10000,RMS误差为0.0071 σn。这种误差是随机的,并且遵从高斯分布,通常用±3 x RMS误差来计算最大测量误差。
又例如:如果从10000个样本中计算出RMS为10ps,则RMS误差为0.071ps,所有RMS值都会落在10 ± 0.213ps(RMS ± 3 x RMS误差)的范围内。在实际应用中,若只有10000样本,RMS误差可以忽略不计。
Q: 为什么要用均方根来计算峰峰值?
A:一定数量的随机样本就能够精确计算出均方根,但是想要测量实际的峰峰值却非常困难。由于周期抖动的随机性,样本数量越大则越有可能测量到落在高斯分布曲线远端的样本,换言之峰峰值随采样数量增加发散,而非收敛。
Q:为什么需要步骤5(重复25次)?
A:每测量10000个样本,就可以算出一个标准差(均方根)和峰峰值。而随机地重复该步骤25次,我们就可以计算很高精度的的平均峰峰值。这增加了峰峰值测量的一致性和可重复性。(兔子:就是说每次直接测250000个数据计算出的峰峰值一致性不好,这样分开测就好啦?有待验证……)
图3为某125MHz晶振的周期抖动直方图,同时显示了10000个样本中测得的RMS和Pk-Pk抖动。
图3 10000个样本的周期抖动直方图
2.2相邻周期抖动
JEDEC 65B标准将相邻周期抖动(C2C,Cycle to cycle)定义为信号相邻周期之间的时间长度变化,前提也是测量不定数量(随机)的相邻周期长度差,综合后得到的结果。JEDEC标准也进一步指定了每个样本集的样本数应该大于或等于1000(就是采集1000对相邻周期)。需要注意的是C2C抖动只关注两个连续周期之间的周期长度变化,并不参考任何理想时钟。
C2C抖动一般用峰值表示,有时候也用均方根表示,单位是ps。该参数定义了一个时钟信号的任意两个连续周期间长度变化的最大值(以上升沿为标准)。此类抖动常被用于体现带有扩频(SSC,spread spectrum clock)特性时钟的稳定性,原因是周期抖动对扩频(频率值会发生变化)很敏感,C2C抖动则不然。
2.2.1相邻周期抖动测量方式
1. 测量某时钟的两个相邻周期的长度:T1和T2
2. 计算T1-T2,取绝对值
3. 等待随机个时钟周期
4. 重复1-3步骤1000次
5. 计算标这1000个样本的准差(σ)和峰值,峰值为|T1-T2|的最大值
6. 重复1-5步骤25次,计算25个峰值的平均值
与周期抖动的峰峰值类似,C2C抖动的峰值也是随样本数发散的。第6步用于获取平均峰值(以增加测试结果的一致性和可重复性)。
图4为某时钟C2C抖动的直方图,这里抖动峰值为25.66ps(正负峰值21.22ps和-25.66ps中取最大值)。
图4 C2C抖动直方图
2.3长期抖动
长期都懂用于测量一组连续时钟周期中实际时钟与理想四种的差异。实际需要测量多少个周期由应用场合决定。长期抖动与周期抖动、相邻周期抖动不同,它表示一段长时间、连续的时钟信号流中存在的抖动累积效应,因此长期抖动也被称为累计抖动。长期抖动的典型应用为图片及视频显示、远程遥感勘测及测距仪。
某司推荐的测量长期抖动方法如下(以10000个时钟周期为例):
1. 测量10000个周期的总时间长度,如图5所示
2. 等待随机个时钟周期
3. 重复1-2步骤1000次
4. 计算这1000个样本的有效值、标准差和峰峰值
5重复1-4步骤25次,取25次峰峰值的平均值
图5测量10000个时钟周期的总时长
同理,我们需要通过步骤5来克服峰峰值的无边界分布特性。