https://www.bilibili.com/video/BV1LY4y1z7Lm?spm_id_from=333.337.search-card.all.click&vd_source=607c445af920869aea485cf9eea0f0c6
源端时钟同步,在接收端利用时钟的上升沿或双边沿对数据进行采样。
当并行传输时,多路数据在接收端保持接收同步较困难。clock上边沿很难保证在每路data都位于中心采样位置。
另外随着速率越来越高,信号的UI越来越短,并行传输就变得越来越困难,有那么多总线同时到达末端,setup time,hold time难以保证。
DDR,多路DQ、DQS同时工作,可能会造成并行信号之间的串扰。
为什么串行传输?可以减少PCB内部的布线空间。
所有的高速串行总线,在芯片发送端或接收端内部实现的还是并行传输。
串行传输:将多路并行的数据,通过时钟PLL,按照顺序的方式,一个比特一个比特的输出来。这样就可以将N路并行数据通过一路或多路高速的串行进行传输。这样整个PCB Layout的通路的lane数就会变的很少。像64为的PCIe总线,如果采用串行传输,只要一对差分线就可以了。这样节省的空间是非常可观的。
另外,串行发送端PLL是跟数据同步进行输出的,每个时钟边沿与当前这一比特的数据是对齐的,所以每个比特数据的时序变化与时钟变化是同步的,此时,我根本不需要一个时钟去同步数据。(多路并行数据传输的时候需要考虑同步时钟,而串行数据传输的时候,根本不需要考虑同步时钟所产生的skew的问题,因为所有的同步都已经在数据里面完成),只是在末端通过CDR的方式将数据与时钟恢复出来,如果做的理想,接收端数据与时钟可以完全同步。但实际上,数据传输过程中会受到干扰,引起抖动,这属于另外一个话题。理论上,数据和时钟可以做到无抖动。
最后在末端通过串并转换,转成并行数据,然后通过芯片解码的原理进行并行解码。 所以串行传输有这些好处,能够代替大部分的低速的并行数据,这也是为什么好多总线倾向于用串行传输的原因。但也有缺陷,将N路比特数据透过一路传输,如果还要保证同样的速率带宽,怎么办?必须将汇总后的串行总线速率成倍提高。 另外,串行数据的LANE非常少,对时隙的要求也会提高很多.因为以前并行的时候1bit 10ns,现在10个100M信号就是1G,1个比特要用100ps传输,这样时钟边沿等任何抖动都可造成误码,对链路衰减的质量要求也会比较高。size减少,pcb设计质量必须提高很多。
如果PCB设计阻抗不连续- PCB压板间隙不均匀,线宽线距不一样,就会体现为阻抗不连续,阻抗会体现容抗或者感抗的特性。如右图,信号在经过过孔,转弯,换层,变化的时候,都会引起阻抗不连续,形成反射。从左下角信号看出,下降沿会出现一些台阶。如果反射严重,这个台阶会引起抖动的变化,影响采样。 导致误采样。
另外,串行数据不总是一个lane传输,很多时候是多个lane并行传输,多个lane传输时,多个串行信号之间会有串扰。10G以下,一般都不太关心这个串扰,高于10G的信号,会发现相互之间的串扰越来越明显,已经成为引起误码的重要的原因之一。
多路并行数据,如HDMI2.1,十几个G以上的数据它有要求并行数据在末端要同时接出来进行解码,这样,并行传输的串行数据里面,要求inter-pair skew非常小,才可以保证末端可以成功解码,不会导致误码。串行数据内部,正负之间也会有Intra-pair skew的要求,要求正和负差分必须对称,如果不对称,同样也会影响信号正确的采样。
除了反射,还有很重要的一个因素就是链路的衰减。所有的信号传输都会经过一个链路,在一些移动设备里面,其链路可能很短。在服务器PC里面,链路可能会很长。比如服务器中的PCIe,链路可能长达几十个inch。 USB3.0在服务器面板上有接口,主板上会有一个转接头,此时会通过一个几十厘米的线缆链接到服务器的面板输出端,这个衰减会比较大,会很严重的影响信号的质量。发送端,眼图很好。但接收端眼睛基本关闭,
对于这个衰减和反射,除了通过阻抗以外,还可以通过另外的参数去描述。可以通过VNA或TDR测试S参数。对于反射通常会通过S11这个参数来描述,对于衰减用s12或s21来描述。末端/发端就可以得到传输损耗。
同样材质,不同layout方式,插入损耗会不同。 S21
上图为相同走线,不同材料的对比。 性能评估可以通过小样本实测,也可以通过仿真
除了链路的反射衰减,现在好多高速的串行信号都会透过一些方法来修正或补偿链路的衰减或反射,
通常,发送端的眼图抖动都会很好,但是经过链路传输以后,链路衰减会使得末端的信号质量变差。但是只要速率高于5G,像USB3.1/3.2,PCIe2.0以后都会用到接收端的equalizer,均衡技术去补偿链路的衰减。作为设计者来讲,如果链路的设计质量非常高,不是不可以,只是成本会非常高。综合考虑成本性能,很多芯片都会在发送端与接收端加入均衡的技术,来保证在链路一定衰减的情况下,接收端还可以正确的接收和判决。常用的有CTLE/FFE/DFE三种技术。
CTLE是连续的模拟均衡,一旦参数固定,是不可以灵活的根据信号传输的不同质量/比特位进行调节,
FFE是模拟与数字结合,时域离散。
DFE:纯数字,以tap的方式离散分布。会根据每一比特的变化去计算当前比特需要加多大的均衡,好多高速信号都会用到其中一种或多种均衡方式的组合来实现更佳的效果。
低速,比如USB3.0 只用到CTLE的均衡,10G以上的场合一般都会将CTLE/FFE/DFE三个组合起来使用,以达到最好的效果。
FFE什么时候使用?像USB3.2/PCIE2.0 5G速率,已经使用了FFE,在发送端Pre-emphasis/De-emphasis,实际上是2个Tap的FFE,
上图2:红色,没有经过信道衰减时,0/1比特幅度基本相同。蓝色是经过信道衰减的波形。发现变化比较少或长0长1的比特,幅度衰减较小。而0/1距离变化的比特衰减比较严重。因为所有的链路都是一个低通滤波器,通低频阻止高频,因此低频幅度较高,高频幅度较低。这就会导致高频部分接收端眼睛张开很小,低频部分眼睛张开很大,在末端信号边沿就不好对齐, 为了补偿高频衰减,特别用De-emphasis或Pre-emphasis,将低频部分降低,高频部分抬高,发送端眼图如上图3/
此时,接收端眼图如上,不同的链路衰减情况下可以用不同的FFE来补偿链路衰减。如果链路衰减很大,可以用比较高的pre-emphasis或de-emphasis,如上,没有均衡,码间干扰比较严重1. 添加3.5的B或6dB的pre-emphasis,则信号质量会明显改善。
CTLE与FFE的区别在于,CTLE的均衡是纯模拟的,根据通道S参数曲线(上图红色),低频几乎无衰减,高频衰减严重。理想上产生衰减的反向(蓝色曲线)就可以产生比较理想的均衡后的通道(绿色)。 但CTLE也有缺点,补偿信号的时候噪声也被补偿增强,导致噪声增强。如果频点设计不合理,更高频的噪声都会被补偿过来,同时,对不同的码型变化不敏感,纯粹是对链路的模拟特性进行补偿,
FFE和CTLE都各有优缺点。如果信号速率比较高,则CTLE与FFE都无法满足要求,尤其是大于10G,比如USB3.1Gen2 10Gbps,PCIe4.0 16Gbps,这些场合都会采用DFE均衡,DFE的优点是,它既可以识别当前比特,并且可以判决前面的n个比特(Tap的阶数越高,看到的前面的比特数越多),根据前面比特的变化来计算出要处理当前比特所要变化的幅度,来补偿由于前面比特变化所引起的信号幅度的变化。优点是可以对高频进行补偿,又不会放大噪声/与比特相关。只能根据之前的比特去弥补,无法预测后面的比特。
如上图左,bit4/5连续0,则会将低电平拉的很低,如果没有均衡,bit6如果发1,也很容易被判决为0/
为了消除连续0的影响,bit6发送时,强行把信号抬高一个幅度,这样bit6为1时,仍然可以正确的判决。高于10Gbps的信号基本上都会采用基于DFE的均衡。所有的均衡都已经在芯片内部完成,通过示波器是无法看到当前均衡的效果是怎么样。
测试信号的Tx端究竟要多大的带宽?一般情况,希望看到信号的谐波分量越多越好,理想的NRZ是方波信号,
5G以下信号,建议示波器带宽高于信号5次谐波,信号速率越来越高,还需要那么高带宽的示波器吗?
CTS:Compliance Test Specification 推荐的示波器带宽
HDMI2.1:NRZ编码,12Gbps,基频是6GHz,5次谐波就是30GHz,实际上并不需要,20GHz就可以。
USB4.0 21GHz。 为什么?因为这是对系统测试,经过cable,信号线,很多高频分量已经被大幅衰减,如右图,从芯片bga出来后,3次/5次谐波,衰减40dB以上。对于服务器产品,此时3次/5次谐波到达接口,已经被衰减的差不多了,因此基频包络能够覆盖的范围已经足够,后面3/5次谐波,对于基频,能量可能在5%以下,所以很多规范也考虑到这个因素,并不需要捕获更高次的谐波分量,已经可以得到比较准确的信号质量的结果。 但是对于芯片测试,本身就是希望信号能够到达BGA pin脚,因此此时需要的示波器带宽就要高于一致性测试。最好能够覆盖到信号的3次或5次谐波。
需要综合考虑测试误差与成本,
高速信号一致性,大部分是抖动与眼图。
TIE:理想边沿与实际边沿的偏差
DCD:占空比失真导致的抖动,01比特占空比不一致导致
DDJ:数据相关性抖动,由于链路衰减导致。
BUJ:边界导致的抖动,
NP-BUJ:由串扰引起的抖动
PJ:确定性抖动,类似与正弦干扰,
RJ:用正负7个西格玛来表示
通常一个系统一定是RJ与DJ同时存在,叠加在一起的。所以测试的时侯会经常看到多个三峰直方图的组合,RJ与DJ组合在一起。
为了减少不同厂家RJ/DJ算法的差异,PCIe标准里面定义了双狄拉克模型,采用比较简单的RJ与DJ的算法得到TJ,
上图,RJ(半正弦) 卷积 两个脉冲,就得到TJ(右边的双峰)。 下图就是两个RJ卷积后的DJ波形图。
TJ的好处:当我测量长时间的样本的时候,或者长时间的工作稳定性情况下进行评估一个系统的性能参数,我就会用TJ来表示,TJ能够将RJ长时间的累计与DJ确定性的影响合成在一起,
经过统计,RJ与DJ的影响就非常直观。测试的时候通过像切片洋葱一样逐个bit切割,就可以得到多个直方图
统计直方图有一个弱点,只有样本的统计信息,没有时间信息,此时就i需要多个与时间相关的抖动去描述,横轴表示时间,纵轴表示幅度,可以看到抖动是随时间变化的。通过时间趋势图可以看出抖动的规律,从而去分析系统里面哪些信号或干扰与此相关,找到抖动的根源。
有了RJ/DJ或TJ的直方图,时间趋势图
还有抖动的频谱图,从频率的角度去看抖动的成分,
上图看出,抖动贡献比较低的是RJ,中间会有些尖峰,就是DJ。 通过光标去量出每个DJ的分量,从而得出每个抖动的频率点。
上图为三个放一起观察的效果
通过抖动浴盆曲线去分析。肉眼观察差别不大
如果通过抖动浴盆曲线,可以看出,同样的直方图,同样的眼图下面,长时间的样本的累计下是不一样的。用误码率随判决时刻的变化,
上面左图,判决时刻在眼睛中央,则f(n)扩展到右边的蓝色阴影区域,或f(n-T)扩展到左边的绿色阴影区域就会引起误码,将两个误码进行积分就是出现误码的概率。 从抖动浴盆曲线就可以看出高样本,长时间测量条件下,眼宽与抖动整体的变化。10E-12的眼宽无法测出,只有用低样本数量的数据(10E-4/10E-7)去预测高样本数量时候的结果。实际能测出的就是10E-4 ~ 10E-8之间。通过抖动浴盆曲线可以预估系统在长时间工作的稳定性。
从上图看,系统1好像抖动较小,系统2抖动较大。 但从浴盆曲线来看,高样本长时间工作的场景下系统1的眼宽反而比系统2窄,系统2有固定的DJ分布。DJ非随机分布,他是离散分布的,系统长时间工作不会累计,RJ会一直累计的。长时间工作情况下,系统2的性能会比系统1更佳。往往直方图会骗你,而抖动浴盆曲线会让你得到另外一个结果。
Tektronix的DPOJET软件可以通过多个方式分析抖动。
抖动测试中有PLL,PLL有2种方式进行设置,一种是环路带宽的方式,另一种是抖动传函的方式。如果PLL设置不同,测试结果也会不同
上图,如果用Type II PLL,得到的眼图很好。 如果用恒定的PLL,则眼睛是模糊的。PLL设置不当,会导致眼睛测试结果完全不同。
PLL会有两种方式,一种是环路带宽的方式设置。 PLL的作用就是用于跟踪数据的抖动,在芯片里面也会有PLL,这个数据或时钟的变化有点类似于空中加油机,如果战斗机与加油机同时抖动,那么它们相对而言就没有抖动。 如果变化超出跟踪频段,如上面有图,就是有抖动的。
抖动传函相当于1-环路带宽
抖动传函表示我跟踪了多少抖动。 低频跟踪的抖动除以原始的信噪比?比率越小,反而越好。越到后面,相当于是跟踪不到的高频抖动,
不同标准里面,设置PLL的方式不同,有些标准里面要求用环路传函的方式设置,有些标准里面用环路带宽的方式去设置。根据不同的标准去设置不同的参数。在不同的类型的抖动中,传函与环路带宽不是确定对应的
另外,还可以通过噪声的方式去分析信号的质量,水平轴抖动,纵轴噪声
不同的噪声水平也会导致眼图闭合度不同
越高的噪声水平,会使得眼图在高样本数量下变得越来越小。光看抖动,可能没有任何变化。但噪声会影响眼图的变化。
对于PAM4信号,原理类似,PAM4要求除了水平水平抖动,还要求多个电平,
从链路的设计与测试中,我们可以做那些仿真?
Tx:示波器实测
Channel:S参数链路仿真
Rx:均衡或CDR进行时钟恢复或均衡的补偿。
对于信号输入端,可以通过De-embeded方式去将夹具的影响去嵌掉,
中间链路,可以通过S参数导入,对链路的衰减进行模拟。
Rx端,可以做CTLE或DFE的均衡,模拟芯片里面的参数。
对于发送端,可以设置多种不同的FFE参数,比如1个Tap,2个Tap的方式,
上面就是PCIe3.0/4.0常用的pre-set或FFE参数,
如果将上面的参数输入到软件中,将tap的系数c输进去(p7),原始闭合的信号通过发送到FFE tap,眼睛就会张开
如果是芯片测试,期望将channel衰减的反射去除,可以在里面加入同样的channel参数,就可以由测试点的信号质量推测道BGA的信号质量,
软件可以导入S参数,通过S参数的去嵌或嵌入去模拟信号在经过S参数眼图的张开度。 传递不同长度链路的场景,可以用同一个信号进行模拟,而不需要在不同链路里面做相应的测试,从而节约测试时间。
通过多级均衡与CDR的设置,来实现补偿链路的衰减。
上图就是均衡的设置方法,里面有CTLE,FFE/DFE。CTLE可以选择标准的USB/PCIe的CTLE的标准,时钟恢复可以选择不同环路带宽,末端可以通过FFE参数与芯片参数尽量接近的FFE参数。 FFE参数很多时候并不清楚,怎么设置可以与芯片参数一致呢?此时有2种做法。 1 是由芯片厂商提供给你他所用的CTLE/FFE的级数,得到里面的参数设置,输入到系数中。 另一种方式是通过auto-taps,自适应的方式根据输入匹配最优的FFE级数与参数,来得到眼图。当然这个参数不一定与芯片里面的FFE参数一致,只能说是比较接近的。这样,就可以通过软件模拟的方式看到信号均衡以后的效果。
通过软件模拟信号在芯片里面的效果。因为在芯片里面,无法通过线缆或探头得到信号经过均衡后的质量,
通过SDLA可以对你的串行链路进行分析,模拟真实的FFE/DFE情况,甚至在一些高级的功能里面,如果已经知道芯片的IBIS模型,可以将IBIS模型导入,甚至可以得到芯片die里面眼图均衡后的效果。同时,均衡后的波形能够无缝连接到DPOJET中,将波形自动导入抖动眼图分析软件,得到期望的眼图信号抖动的结果,
网友评论