前一段时间测试时钟,看到一篇不错的入门文章,就把它翻译过来了。不足之处欢迎指正。
-------------------------------------------------------------------------------------
译自: SiT-AN10007 Rev 1.2 January 2014 Clock Jitter Definitions and Measurement Methods 时钟抖动的定义与测量方式 [译]懒兔子 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来克服峰峰值的无边界分布特性。
2.4 相位抖动 相位噪声通常被描述为在不同频率下的一组噪声值(如-60 dBc/Hz @ 20KHz 和 -95 dBc/Hz @ 10MHz),或者表示为一段连续频率范围内的噪声图。相位抖动则是一段特定频谱中相位噪声综合的结果,其单位是秒。 对于方波而言,其主要能量集中在载波频率上,但一些能量仍会在载波频率两侧的一定频率范围内“泄露”(leaked-out)出去。相位抖动就是与载波频率fc相关的两个指定频率之间的相位噪声能量总和。图6是一个未经滤波的相噪图,阴影区域即表示f1至f2频率之间的相位抖动。
图6 相噪图
频率f1与f2之间的RMS相位抖动可以用等式3表示: *等式3 其中表示fc一侧f1-f2之间的噪声功率。在通信领域中,通信接口的发送端 PLL和接收端 PLL存在带通滤波效,因此在实际情况下我们需要根据滤波器的特性计算滤波后的RMS相位抖动。以下为常见通信接口对应带通滤波器的带宽(拐点频率),这些带宽是综合了发送和接收端PLL特性得到的结果:
1. 光纤接口: 637 KHz ~ 10 MHz 2. 10GE XAUI接口:1.875 MHz ~ 20 MHz 3. SATA/SAS接口: 900 KHz ~ 7.5 MHz
假设滤波器函数为H(f),则滤波后的RMS相位抖动可以用等式4计算: *等式4
3 单位时间间隔误差 单位时间间隔误差(TIE,Time Interval Error)是指在拥有参考点(兔子:用于参考的时钟边沿,在该点实际时钟与理想时钟边沿对齐)的情况下,信号的某个实际边沿与理想边沿间的时间差。事实上,TIE是相位噪声在离散时间域上的表现,单位为秒或皮秒。图7形象地描述了TIE的基本概念。理想信号通常是由软件对被测信号的周期进行平均估计得到的。
图7 测量单个信号边沿的TIE
3.1 绘制时域TIE图 图8的最上面一行是一组时钟的的波形,红色表示周期为1000ps的理想时钟,黑色表示带有抖动的实际时钟。为了方便表示,只画出了时钟的上升沿。在时钟序列的开始,理想边沿与实际边沿重合(以此作为参考点),之后由于抖动,黑色的实际时钟边沿开始随着时间漂移,时而领先时而落后于红色的理想时钟。 图中的Clock Period曲线表示所测得黑色时钟的各个周期长度。本例中黑色时钟不是990ps就是1010ps(为了方便理解,理想化了,和第一行也不太对的上,凑合看吧)。 Period Change曲线则描述了每个时钟周期与前一个周期的变化量。如果黑色时钟的两个相邻周期长度相同,那么Period Change曲线就会保持平坦,反之就会发生变化。例如:……(兔子就不举例了都能看懂)总而言之该曲线描绘了时钟周期的变化。 TIE曲线则记录了理想边沿和实际边沿之间的累计误差。此一例中,TIE曲线开始时向下增长,这是由于最初的四个时钟周期里每个实际周期都比理想周期长度要少10ps。在累积了-40ps的抖动误差后,曲线从第5个周期开始向上增长,这也是由于第5个时钟的实际周期比理想周期多10ps。 TIE测量在检验数据流(通常是串行通信接口)的特性时非常有用,这些传输接口的时钟通常由时钟数据恢复(CDR,Clock/Data Recovery )电路从数据信号中恢复出来。比如较大的TIE值可能就说明了CDR中PLL的响应速度太慢了跟不上数据流的数据变化速率。
图8 TIE图
4 采用实时示波器测量抖动 4.1 示波器设置指导 测量时钟抖动最通用的设备当属实时数字示波器,本章将为大家介绍如果设置示波器以达到更高的测量精度。 数字示波器采用内部时间基准来定期采样输入的数据,其采样率可由1Gsps到40Gsps不等。图9列举了数字示波器采样和显示信号的方式。图底部的箭头表示采样点,实线是实际的信号,黑点为采样得到的数据,而示波器显示出的图像(虚线)为根据采样数据经过优化得到的曲线。 也许你会发现采样值与实际信号并不一致,这是因为示波器量化的过程中存在误差。大多数误差是因为示波器为了在设计性能和成本之间寻求平衡而带来的固有误差,但我们通过适当的设置可以缓解为了省钱带来的精确度问题。下面我们就就来探讨一下造成这些误差的主要原因以及如果通过设置来降低他们对抖动测量的影响。
图9 数字示波器的采样及显示
4.1.1 前端放大器误差 数字示波器的输入信号要经过模拟放大器才能被ADC数字化,而放大器产生的噪声与示波器输入带宽成正比:带宽越宽,噪声越大(兔子:这也是测电源纹波的时候要限制带宽的原因)。但是一位地减小带宽会影响示波器对信号上升和下降时间的采样,也会引入很大的误差。 这里有一个通用的描述信号边沿上升/下降时间和贷款关系的等式: *等式5 其中上升时间或下降时间测量位置为信号边沿电平的20%~80%之间。某司推荐将示波器带宽设置为信号带宽的3倍(另有某司出面认为3倍不足以还原信号边沿的细节,至少应为5倍),另外在一些示波器中,带宽只能随着最高采样率的设置改变,甚至有的示波器带宽完全不能设置。
4.1.2 垂直增益引起的量化噪声 量化误差是指采样值与采样点实际信号值之间的差别,这种误差如图9所示。引起这种误差的一部分因素来自于为调整示波器Y轴显示而设置的垂直增益。如果垂直增益过小,示波器可能无法有效利用内部ADC的完整分辨率(很多示波器只有8位的AD)。 某司推荐调整示波器垂直增益直至波形撑满屏幕Y轴。某些示波器中甚至可以将波形调至略微超出Y轴显示范围,从而使用ADC的额外bit位。不过这一特性取决于你使用的示波器,具体可以咨询厂家。
4.1.3 低采样率引起的量化噪声 还有一部分量化噪声是由于示波器横轴方向采样点数不足造成的。某司推荐在信号上升/下降沿的20%~80%电平间至少有3个采样点,由此可以推出示波器设置的最低采样率要求。例如,如果信号上升时间1ns并且需要在这段时间里保证4个采样点,那么示波器至少要设置4Gsps的采样率。如果你的示波器性能高于这个标准,那么就越大越好啦,设置成最高采样率(实际上除了限制带宽以外,大部分的示波器软件都能根据实际信号自动调节到最佳的横轴和纵轴)。
4.1.4 时间基准抖动 数字示波器采样点的选择源于内部时间基准。作为一个时钟源,时间基准自身存在抖动,并且会增加测量信号抖动时的误差。一般来说,时基抖动应该小于被测信号抖动期望值的25%,从而达到优于3%的准确度。某司推荐使用你实验室里最好的示波器来进行抖动测量,因为更高端的设备往往拥有更好(更低抖动)的时基电路(好一通废话啊哈哈)。
4.2 使用实时示波器测量抖动的步骤 (本节内容基本与2.1-2.3节所述雷同,故不做翻译) 4.2.1 测量周期抖动 4.2.2 测量相邻周期抖动 4.2.3 测量长期抖动
5 结论 本文著成之初有两个目的:其一,向读者描述今日之高速系统中所能遇见的一般抖动类型;其二,提供借由实时示波器来捕获不同种类抖动的方法步骤。兔子翻译此文之目的 已于文前尽言,不复赘述。 另:本文只做参考,本文英文原作者某司声称不为读者使用本文方法而造成的任何问题负责(兔子就更不负责啦),望读者悉知。 附上原文:
AN10007-Jitter-and-measurement.pdf
(576.79 KB, 下载次数: 12)
|