【再说FPGA】PLL那些事之core输出抖动
0赞PLL那些事之core输出抖动
王敏志
概述
这里的PLL是指ALTERA的FPGA内部的PLL,PLL的输出有两种,一种是core output,另外一种是external output,由于ALTERA只给出了PLL的输出到外部引脚的jitter,并没有给出PLL的core输出jitter,这里试图通过基于FPGA的TDC来量测一下该jitter。从ALTERA的器件手册只能查到PLL的external output的抖动参数,我们使用的ArriaGX系列,在输出时钟频率大于等于100MHz的时候只给出这个参数的最大值即250ps,当时钟频率低于100MHz的时候也只给出最大值,即25mUI。
为什么要了解PLL的core输出抖动呢?
在进行基于FPGA的TDC设计的时候系统时钟的抖动肯定会影响TDC的精度,这里的抖动(jitter)包括时钟源,即晶振,以及时钟分配器和PLL所产生的抖动。时钟分配器的抖动是可以查厂家手册获取,而且一般都很小,基本都是飞秒级别。由于在设计TDC的时候需要FPGA里的PLL倍频得到一个相对高速的时钟,那么PLL引入的jitter又是多少呢?ALTERA并没有给出答案。
测量方法
FPGA的输入时钟是100MHz,通过第一个PLL产生一个250MHz的时钟作为TDC的高速采样时钟,另外第二个PLL从250MHz降频得到一个25MHz的时钟作为TDC的输入HIT(如图1所示)。这个25MHz时钟跟TDC的高速采样时钟只有一种相位关系,所以可以通过PLL的移相功能大致量测出不同相位下该TDC的测量结果,再通过测量结果以及TDC的RAW BIN结果来进行分析。
TDC的Raw BIN是通过外部随机HIT测量得到,另外,TDC的延时线位置进行了锁定,这样随机HIT Raw BIN和PLL产生的HIT测量的时候使用的是相同的延时线,这样尽量保证减小测量的误差。还有一点,是在更改PLL的HIT的相位的时候使用了ECO的方法(如图2所示),即手动修改,这样工程没进行重新全编译,只是进行了FIT,如此尽量保持了工程的一致性。
我们假定PLL的输出不存在jitter,那么TDC测量出来的结果肯定具有唯一性特点,即某个相位测出来的结果肯定只有一个值,这个可以通过直方图的方法轻易得出。前面的假设肯定是不成立的,所以直方图的结果就一定是某个中心值附件左右偏移,而我们所需要知道的就是这个偏移的大小即抖动(jitter)。
图1:测量示意图
图2:利用ECO手动修改PLL输出的相位
测量结果
我们的TDC使用了128级延时线(delay-line),在使用PLL产生的HIT进行测量之前,我们使用随机HIT来测量该TDC(主要是延时线)的基本属性。图3显示的是延时线每一级延时单元的延时时间,这里我们称之为TDC的Raw BIN。
图3:TDC的Raw BIN
ArriaGX的PLL的VCO最大只能到840MHz,而从250MHz产生25MHz的时候,VCO只能是750MHz,所以最小相移是167ps(1/(750*8)ns)。那么从0相位开始每次步进167ps测试各个不同相位25MHz作为TDC输入HIT时的结果,由于250MHz的周期是4000ps,所以相移到4000ps即可完成一周测量。
图4:0相移测量结果及对应位置Raw BIN数值
图5:167ps相移测量结果及对应位置Raw BIN数值
图6:333ps相移测量结果及对应位置Raw BIN数值
图7:500ps相移测量结果及对应位置Raw BIN数值
图8:667ps相移测量结果及对应位置Raw BIN数值
图9:833ps相移测量结果及对应位置Raw BIN数值
图10:1000ps相移测量结果及对应位置Raw BIN数值
图11:1167ps相移测量结果及对应位置Raw BIN数值
图12:1333ps相移测量结果及对应位置Raw BIN数值
图13:1500ps相移测量结果及对应位置Raw BIN数值
图14:1667ps相移测量结果及对应位置Raw BIN数值
图15:1833ps相移测量结果及对应位置Raw BIN数值
图16:2000ps相移测量结果及对应位置Raw BIN数值
图17:2167ps相移测量结果及对应位置Raw BIN数值
图18:2333ps相移测量结果及对应位置Raw BIN数值
图19:2500ps相移测量结果及对应位置Raw BIN数值
图20:2667ps相移测量结果及对应位置Raw BIN数值
图21:2833ps相移测量结果及对应位置Raw BIN数值
图22:3000ps相移测量结果及对应位置Raw BIN数值
图23:3167ps相移测量结果及对应位置Raw BIN数值
图24:3333ps相移测量结果及对应位置Raw BIN数值
图25:3500ps相移测量结果及对应位置Raw BIN数值
图26:3667ps相移测量结果及对应位置Raw BIN数值
图27:3833ps相移测量结果及对应位置Raw BIN数值
图28:4000ps相移测量结果及对应位置Raw BIN数值
分析及结论
图4到图28显示了不同的相移对应的测试结果,图的左边是对应HIT在延时线中的位置,而右边对应的是这些延时线单元在随机HIT测得的延时时间。将这些图中的结果总结到一张表中如表1所示。
从表1可以看出所有不同相位测量结果的uncertainty的范围是84.4到241.7ps之间。这里之所以叫“uncertainty”而不是直接冠以jitter是因为这个数值范围是由两个时钟的uncertainty来决定的而非单一时钟决定,即这个测量结果应该由25MHz和250MHz这两个时钟的抖动共同来决定。如果我们不能证明25MHz和250MHz这两个时钟相位是严格对齐的,就不能直接将上述测量所得的结果简单地认为就是PLL的core输出jitter。前面我也有提到,25MHz时钟和250MHz时钟之间的相位关系只有一种组合,这是在相对宏观的角度来说,如果我们考虑到PLL内部引起的jitter,那么这个两个时钟沿是否还是严丝合缝的对齐呢?手册里似乎给出了一个唯一可以作为参考的答案,即在PLL的Normal Mode下PLL的时钟之间的相位关系图,如图29所示。
这里分析的基础就是假定如图29所示PLL的输入时钟和内部寄存器时钟的沿是严格对齐的,而我们实际也正好是使用Normal模式。有了这个基础我们再来分析这个最大uncertainty值范围,最小是84.4ps,最大达到241.7ps。仔细看这两个测量结果,发现84.4ps是相位偏移833ps的测量结果,直方图落在三个cell单元里,且三个cell的延时时间均较小,而这个最大值是相位偏移500ps时候的测量结果,直方图也是落在3个cell单元里,只是这三个cell单元中有个cell的延时时间超级大,我们称之为ultra-wide延时单元。另外,从表1同时可以看到相移333ps、1833ps、2333ps、3000ps、3333ps以及3667ps的测量结果直方图均落在一个cell里,而这些cell均为ultra-wide延时单元,察看这些ultra-wide延时单元的延时可以知道其最大延时时间为169.9ps,而其中最小的延时时间也有99.8ps。所以84.4ps可以认为是本实验测量到PLL的core输出最大的jitter值范围即±42.2ps。
图29:Normal Mode下PLL的时钟相位关系
表1:不同移相对应测试结果
Phase Difference (ps) |
Delay Cell Range |
Max Uncertain Time (ps) |
|
0ps |
55 ~ 56 |
117.4+38.5 |
155.9 |
167ps |
51~54 |
40.7+23.4+25.5+28.8 |
118.4 |
333ps |
47 |
169.9 |
169.9 |
500ps |
45~47 |
45.8+26+169.9 |
241.7 |
667ps |
39~42 |
115.7+26.8+30.2+38.3 |
211 |
833ps |
36~38 |
28.4+22.6+33.4 |
84.4 |
1000ps |
31~33 |
147.2+42.2+34.8 |
224.2 |
1167ps |
30~31 |
29.7+147.2 |
176.9 |
1333ps |
24~26 |
33.98+37.2+34.3 |
105.48 |
1500ps |
21~23 |
40+27+99.5 |
166.5 |
1667ps |
16~18 |
19.7+37.7+22.4 |
79.8 |
1833ps |
15 |
162.2 |
162.2 |
2000ps |
9~11 |
45.6+29.8+18.9 |
94.3 |
2167ps |
6~7 |
31+108 |
139 |
2333ps |
95 |
99.8 |
99.8 |
2500ps |
90~93 |
31.9+20.4+19.9+46.4 |
118.6 |
2667ps |
87~88 |
102.5+52.7 |
155.2 |
2833ps |
83~85 |
28.1+41.7+34.4 |
104.2 |
3000ps |
79 |
159.7 |
159.7 |
3167ps |
74~77 |
33.6+28.6+34.7+32 |
128.9 |
3333ps |
71 |
107.9 |
107.9 |
3500ps |
66~68 |
27.8+35.3+39.8 |
102.9 |
3667ps |
63 |
137.3 |
137.3 |
3833ps |
59~62 |
31.9+24.1+40.5+34.9 |
131.4 |
4000ps |
55~56 |
117.4+38.5 |
155.9 |