;

湘攸客

【再说FPGA】PLL那些事之core输出抖动

0赞
阅读(15740)
 

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

;
;