3.抖动和信号集成( Jitter, SI )
抖动是指信号的跳边时刻偏离其理想(ideal)或者预定(expected)时刻的现象。噪声,非理想的信道,非理想的电路都是产生抖动的原因。
3.1 时钟的抖动(clock jitter)
Figure 3.1 Clock Jitter
对于时钟信号,根据应用场景的不同,对抖动的定义也不一样。比如数字逻辑计算时序余量的时候,关心的是周期抖动。而时钟设计人员更喜欢相位抖动,因为可以利用频谱评估相位抖动,并可以用频谱来评估具体的干扰对总相位抖动的贡献。
参考图3.1,介绍一下几种抖动的定义。
l 相位抖动(phase jitter)
Jphase(n)= tn – n*T。理想时钟的每个周期T都是相等的,没有抖动。真实时钟的跳边沿相对于理想时钟的偏离称作相位抖动。
l 周期抖动(period jitter)
Jperiod(n)= (tn- tn-1)– T。周期抖动是实际时钟的周期相对于理想周期的偏离(deviation)。显然Jperiod(n) = Jphase(n) - Jphase(n-1)。
l Cycle-to-Cycle jitter
Jcycle(n) = (tn- tn-1) - (tn-1- tn-2)。前后相邻的两个周期的偏差是Cycle-Cycle抖动。显然Jcycle(n)= Jperiod(n) – Jperiod(n-1)。
假设相位抖动的最大值为 +/-Jp, 而且抖动的频率fjitter = 0.5fclock = 0.5/T,也就是,
tn-2时刻的相位抖动为最大值+Jp ,tn-1时刻的相位抖动为最小值-Jp
tn时刻的相位抖动为最大值+Jp , tn+1时刻的相位抖动为最小值-Jp
那么,周期抖动最大值 Jperiod=+/- 2* Jp
那么,Cycle-Cycle抖动最大值 Jcycle =+/- 4* Jp
3.2. 数据的抖动(data jitter)
在高速SerDes领域每个人都在说抖动,因为抖动直接和误码率(BER)相关。
SerDes发送端的一个重要要求是抖动(jitter generation)----针对特定的码型(pattern),速率和负载情况下,发送端所生成的抖动。
信号经过信道(channel)到达接收端时,又会进一步放大抖动,不同的码型(pattern)包含的频率成分也不一样,信道对不同频率成分的传输延时也不一样(非线性相位), 产生和数据pattern相关的确定性抖动。阻抗不连续产生的反射,相邻信号的串扰和噪声都会引起数据抖动。
SerDes接收端的一个重要指标是抖动容忍能力(Jitter Tolerance)----针对特定的码型和误码率要求(BER<10-12)&#xff0c;SerDes接收端能够容忍的抖动大小。对抖动评估时&#xff0c;会使用眼图(eye-diagram),浴缸曲线(bath curve),抖动分布柱状图(PDF),抖动频谱(jitter spectrum)等图形手段。
有一点需要说明&#xff0c;在谈论高速SerDes的数据抖动时(Tj,Rj,Dj etc.)&#xff0c;是不包括低频率抖动的。这是因为低频率的抖动被认为是一种wander&#xff0c;可以被CDR跟踪&#xff0c;不会引起误码。在用示波器(SDA)测量数据抖动的时候&#xff0c;可以设置示波器内嵌的CDR环路带宽&#xff0c;示波器测量的抖动数据已经滤掉了低频抖动。
根据抖动产生的原因和概率密度函数&#xff0c;常常将抖动分为几类。对抖动进行分类的意义在于某些类型的抖动可以被校正&#xff0c;而其他类型的不能被校正。经典的&#xff0c;总抖动Tj(Total Jitter)被分类为确定性抖动Dj (deterministic jitter)和随机抖动Rj (random jitter)。抖动以UI或者ps为单位&#xff0c;可以是均方根值&#xff0c;或者峰峰值。
3.2.1 Dj
Dj被进一步细分,
l DCD(Duty cycle distortion)
占空比失真抖动。差分信号的正端负端的偏置电压不一致&#xff0c;或者上升沿和下降沿时间不一致会导致占空比失真。因为DCD和数据pattern相关&#xff0c;是可以被校正的抖动。
l DDJ(Data dependent jitter)
数据码型相关的抖动&#xff0c;也称 码间干扰ISI(intersymbol interference)。DDJ是由于不理想的信道导致。是可以被均衡器校正的抖动。
l Pj(Periodic jitter)
周期性抖动。Pj由电路上周期性干扰源导致。比如开关电源的开关频率&#xff0c;时钟信号的串扰等。虽然电源的开关频率一般在CDR的跟踪范围内&#xff0c;但是低次谐波成分可能会落在环路带宽外&#xff0c;或者jitter peaking区域, 更重要的是电源谐波对CDR内VCO的干扰是不能被抑制和跟踪的&#xff0c;所以对于基于Ring VCO的CDR一定要尽可能的使用LDO供电。Pj不能被均衡器校正.
l BUJ(Bounded uncorrelated jitter)
BUJ由非时钟的干扰源引起。如果干扰源aggressor和victim是异步的&#xff0c;抖动的概率分布为有界的高斯分布&#xff0c;此时也称作CBGJ(Correlated Bounded Gaussian Jitter)。BUJ/CBGJ不能被校正。
3.2.2 Rj
Rj有半导体本身的噪声引起&#xff0c;一个重要特征就是Rj的概率密度函数是高斯分布的&#xff0c;没有边界&#xff0c;且和数据pattern无关。只有在一定误码率约束下&#xff0c;才可以被认为是有界的。
3.2.3 Tj
数学意义上&#xff0c;抖动的概率分布函数可以近视为高斯分布和双底拉克分布的卷积。
对高斯分布有贡献的抖动为&#xff1a;
n Rj为高斯分布
n 大量Pj叠加的效果也为高斯分布
n 部分BUJ也为高斯分布
对双底拉克分布有贡献的抖动为&#xff1a;
n DCD被近视为双底拉克概率分布
高斯分布和双底拉克分布的卷积:
其中&#xff0c;W被认为是确定性抖动的峰峰值&#xff0c;δ是高斯分布的均方差。见图3.2, 可以看到&#xff0c;随着确定性抖动W的增加&#xff0c;概率密度分布曲线的顶部出现了双峰。一般来讲顶部曲线反映了确定性抖动的大小程度。
Figure 3.2 PDF of Tj with different Dj and Rj
把一个UI内的两个跳变沿处(0 UI处和1UI处)的概率分布函数放在一张图中&#xff0c;就是抖动的浴缸曲线(bathtub curve)。因为对数的宽动态范围&#xff0c;Y坐标以对数显示。图3.3为确定性抖动W&#61;0.05UI, 高斯抖动方差0.05UI的浴缸曲线。
Figure 3.3 Bathtub Curve of Tj with 0.05 Dj peak and 0.05 Rj RMS
浴缸曲线还会标出对应的误码率BER坐标,比如图中BER&#61;10^-12的峰峰值抖动为Tj(p-p)&#61;0.373*2 &#61; 0.746 UI。曲线下面的面积占总面积的比率就是误码率。比如图中&#xff0c;
浴缸曲线的顶部主要为确定性抖动Dj的贡献&#xff0c;越靠近底部&#xff0c;高斯抖动的贡献越大&#xff0c;并以高斯曲线的斜率衰减&#xff0c;也因此常利用高斯分布的特性进行估算。下表为高斯分布
和均方差关系。
在规定的BER内&#xff0c;利用该表可以快速估算均方差值和峰峰值之间的关系。比如高斯抖动的均方根0.05UI&#xff0c;误码率要求为10^-12 BER&#xff0c;查表可知Q&#61;7&#xff0c;那么高斯抖动的峰峰值要求是0.05UI*7*2 &#61; 0.7UI。
如前所述&#xff0c;W&#61;0.05UI,Rj&#61;0.05UI计算出的总抖动Tj&#61;0.746UI&#xff1b;
利用高斯特性估算的高斯抖动为0.7UI。
如果按Tj &#61; Rj(0.7UI)&#43;Dj(0.05UI)计算得到0.75U&#xff0c;基本是一致的,差异是因为画图程序有量化误差。
4.信号集成(SI)及仿真
4.1信道channel
SerDes信道关注的频率范围是0Hz到奈奎斯特频率&#xff0c;也就是2倍的信号基频。信号的基频是信号线速率的一半&#xff0c;也就是说信号的奈奎斯特频率就是线速率。信道对信号的损伤包括插入损失(insertion loss),反射 (reflection),串扰(crosstalk)等。这些损伤可以用S-parameter信道模型来表达。S-parameter可以有矢量网络分析仪测量(Vector Network Analyzer)得到。信道不是一个纯阻性网络&#xff0c;还包括容性和感性。这样对不同频率里成分的时延也不一样&#xff0c;从而产生和data pattern相关的抖动。
信道上的每一个不连续阻抗点都会产生反射&#xff0c;根据反位置的不同&#xff0c;反射信号会以不同的相位叠加在原始信号上&#xff0c;增加或者减小信号的幅度。
SerDes信号为差分形式&#xff0c;对共模干扰有较强的抑制。如果在&#43;/-端上的干扰有差异&#xff0c;就会引入串扰。通常外部PCB可以保证SerDes数据和干扰源保持足够的距离&#xff0c;但是芯片内部由于考虑到经济性&#xff0c;很难保证SerDes信号和干扰源足够的隔离距离&#xff0c;尤其是一个通道自己的发送信号干扰自己的接收信号。
4.2 芯片封装Package
封装package也是信道的一部分。芯片外部的信道可以通过VNA测量的到&#xff0c;而封装的S-parameter通常有芯片制造商提供&#xff0c;仿真时可以把两者级联起来。封装package由于距离较短&#xff0c;insertion loss通常不是主要问题&#xff0c;主要考虑的是阻抗匹配问题。
4.3 SI仿真
信号集成性(SI)仿真可以通过把SerDes发送端SPICE模型&#xff0c;封装和信道的S-parameter模型&#xff0c;接收端SPICE模型级联起来搭建仿真平台&#xff0c;利用仿真工具对不同的激励在不同的测试条件作电路仿真。通过测量SerDes接收端的眼图来评估是否满足设计需求。也可以通过实测接收端眼图&#xff0c;检验是否满足接收端的眼图模板&#xff0c;或者协议规定的眼图模板。图4.1为一个实测的3.125Gbps信号的眼图及模板&#xff0c;同时也包含了浴缸曲线和统计图。
Figure 4.1 Rx-end Eye-diagram of A 3.125Gbps SerDes
对于高速SerDes(>5Gbps)&#xff0c;这种传统的电路仿真方法已经不能满足设计的需求。首先&#xff0c;过量的码间干扰ISI导致接收端眼图完全闭合&#xff0c;但是通过芯片内的DFE均衡后&#xff0c;眼图可能是很好的。其次&#xff0c;电路仿真(SPICE)的速度非常慢&#xff0c;即使是有办法把DFE均衡加入仿真&#xff0c;由于DFE仿真需要足够长时间的bits来训练&#xff0c;此时&#xff0c;电路仿真的仿真时间是不可接受的。
对于高速SerDes的仿真需要借助统计分析 (statistical analysis) 的方法。统计分析的方法把发送端-信道-接收端的连接近视为线性系统&#xff0c;计算系统脉冲响应h(t)&#xff0c;加入噪声源来模拟抖动&#xff0c;然后用激励对脉冲响应进行卷积&#xff0c;得到接收端的信号&#xff0c;这种方法可以把厂家私有的FFE,DFE自适应算法加入仿真。
统计分析 (statistical analysis)方法不能仿真电路的非线性和时变特性&#xff0c;所以高速SerDes往往要两者结合起来仿真SI。更多关于统计分析 (statistical analysis)方法可以参考。
有人讲过&#xff0c;现在的汽车是如此复杂&#xff0c;以至于虽然每一个零件都有人懂&#xff0c;但是合起来作为整车却没人能够全懂。近些年来&#xff0c;FPGA变的越来越复杂,对工程师的要求也越来越高。要成为一个合格的FPGA应用工程师&#xff0c;不仅要擅长数字电路的设计&#xff0c;还要懂得高速SerDes, 信号集成SI, DSP算法, 多核CPU, 嵌入式操作系统等。每一项技术背后都是一个专业领域&#xff0c;一个人不会在每一个领域内都是专家&#xff0c;只要比别人多学习一点&#xff0c;关键时候就会突出你的价值。本篇主要介绍了SerDes的基本结构和用好SerDes需要掌握一些的知识,希望对你的工作有所帮助。