本身接触过许多家的高速serdes,无奈数学基础太差,只能像乌鱼爬同样,一点一点的积累知识和经验,这里把平日里学到的点点滴滴记录下来,但愿对本身和同事有所帮助。算法
channel的特性。这里第一张图给出了三种它的传输函数,或者说它的s21。在不一样的长度,loss区别很大。咱们看到第一个蓝色的,它的loss就会比较小,在2.5Gbps时loss大概不到5db;而红色的这种比较长,它的loss在2.5Gbps的时候就有10个dB多一些。这个绿色的一根线,它不光loss多一点,还在10Gbps时有一个不好的一个点的loss,到-60多dB。
通常在设计的时候,会拿一个channel的model通常是Sparameter或者是LGC这种model,而后在前仿真/后仿真去验证咱们的design。
从它的冲击响应能够看到红色的在4ns前面一点开始上升,好比说在4ns前一点去sample它,那么能够获得一个数据。可是在后面,好比说4ns多一点的时候去sample它,也可能获得1个1,原本应该是获得了1个0,这就会产生一个错误的数据。
单位冲激响应叠加以后,就会产生一个眼图。或者在PRBS的输入下,折叠输出以后会获得一个眼图。咱们看到这个眼图在不一样的channel上它的opening,就是高度、宽度差异很是大的编程
SerDes的基本结构图。前面就是把并行数据转换成串行数据(通常也叫MUX),而后再给TX发送出去。由于channel本征阻抗是50Ω,因此TX这边加一个termination,50Ω的特征阻抗来保证阻抗匹配。Rx这边一样加一个50Ω特征阻抗来保证匹配,这样才没有反射。而后RX和TX这边分别有负责时序的,好比说PLL和Timing Recovery,这些模块专门为这些电路提供clock。
把它能够分红两个主要部分,第一部分就是timing,为发送和接收数据提供clock;第二部分就是signaling,就是信号处理。TX边主要是把数据发送出去保证必定的眼高,而后Rx这边把数据恢复出来。由于channel loss以后,signal多是看不到的。这就说RX主要作两件事,既要恢复数据、又要恢复时序。恢复数据就是要知道是0仍是,对于这种PAM 2也就是NRZ类数据来讲。而且要找到怎么去、在哪一个时间点上去sample这个data,也就是恢复出一个最好的timing。Rx clock的上升沿采在这个数据它的正中间,这样通常是最好的。函数
data上面的jitter其实不是那么在意,只要保证setuptime、hold time,而clock上的jitter就相当重要。post
RING VCO,通常来讲可能在5GHz的clock能作到1.5ps的RMS Jitter。有可能会作的更好,但问题是功耗在继续增长。
对于PAM4来讲,它的eye opening会更小,由于它的上升沿有不一样transition,这样PAM4的eye opening会小30%。这里的30%具体指的是EYE的宽度,另外EYE的高度比较明显的会小1/3,也就是9.5dB。
对于14GHz的clock或者28Gbps datarate来讲,用RING产生时钟比较困难,而且对这种data rate,jitter要求会更高。好比说RMS jitter 0.2ps,这时候大概占UI的11%。在高频的时候,数据恢复这边(signaling)也会更困难,因此要尽可能保证这边的Jitter margin多留一点。性能
另一部分就是在RX的timing recovery。CDR的主要目的就是找到一个最好的sample点,使得sample的数据尽可能是对准数据的中心店,也就是说BER尽可能的小。
CDR的主要性能就是jitter tolerance,它能够track PLL的一部分jitter。还有就是CDR的bandwidth和它的功耗,bandwidth越高功耗就要更高。ui
数据处理主要是均衡器,TX这边叫emphasis,或者叫FFE。RX这边的均衡器会比较多一些,好比说CTLE。有有源的、无源的,可能还会有些其它的滤波器。而后最重要的还有DEF,它有各类结构。spa
若是channel的insertion loss特别小(<15dB),TX那边直接把信号给发送出来,经过一个50Ω的阻抗匹配。而后RX这边有个50Ω的阻抗匹配,最后直接一个比较器就把它收过来了,这样也是能够的。
可是,当channel的insertion loss比较大(>25dB)的时候,这个问题就十分重要了,TX FFE可使得频率响应曲线变得平坦,减小ISI。TX输出阻抗和RX端口阻抗要保证50Ω来匹配channel的阻抗,保证没有反射。
在下面的三张图表示均衡器的做用。好比说,Channel一开始时随着频率升高loss愈来愈大的,可是若是在5GHz的点给一个gain,而在低频时候没有gain。这样就把5GHz这个频点给boost上去,看到第三张图绿色的这个就显得比较平坦,这样的ISI就会小。
TX端的Equalization是TX的equalization。通常用4-tap FFE,除了一个主的之外,前面有一个,后面还有个POST一、POST2,而后都加在一块儿后通过50Ω输出。
看一下TX FFE的做用,它是如何消除ISI的。若是没有FFE就是没有post-emphasis。那么data出来以后高频的信号就变得小。而若是有第一个post的emphasis,能够看到第二张图红色的输出的响应,高频的信号明显变大了,低频信号稍微小一点设计
Rx的均衡技术。第一个就是CTLE,连续时间线性均衡器。它主要来补偿channel对高频信号的insertion loss。它是一种无源的,只有RC或者有L。无源的就意味着没有Gain。它只能把低频的减弱,把高平的相对来讲是增高能量。而且无源design有个好处就是它不会产生noise,除了R会产生的noise,可是通常来讲R会比较小。而晶体管的noise相对多一些。
CTLE通常是RX的第一级。
在奈奎斯特频率,CTLE通常都会有一些Gain。这样后边的noise就不那么敏感了,好比后面VGA、DFE、sampler。
CTLE通常都是采用可编程的CS、RS,由于channel都不同,甚至有时还会有自适应算法来自动配置RS、CS(有待商榷??)。下图中的fp1就是Nyquist频率,对于10Gbps的baud rate而言,fp1=5GHz。
3d
DFE技术(decisionfeedback equalization)code
因此总结下来,DFE包含3点,一个就是decision,第二个就是feedback,而后第三个就是它非线性。
这里有两个channel,这两个channel的insertion loss不同,那么接收端的DFE就要自适应这两个channel。而且通常的自适应电路是always on,用它来去cover一些电路或者是那些channel的温飘效应获得。自适应的话就须要额外的比较器,而且一直工做。
通常对于10Gbps信号咱们用@5GHz Nyquist频率来看它的Insertion Loss点,25.78125Gbps速率的信号用12.89GHz
以25.78125Gbps速率信号为例,serdes内部的恢复时钟不会是25.78125GHz,由于这样时钟信号过高了,只会恢复出12.89GHz的时钟,而后经过移相90度,对于25.78125Gbps这么高速信号,通常只会sample一个点
对于10Gbps信号,会用2个不一样相位的时钟(0相位的5GHz,和移相90度的5GHz)采样4个点。
另外,能够把25.78125Gbps速率的信号接入到频率分析仪的输入端,能够看到它的能量最大的频点是12.89GHz,因此这也能够说明内部恢复出来的时钟不是25.78125GHz,而是12.89GHz.
Muller-Muller
Bang-Bang
如何调节TX FFE参数
根据接收端的眼图来调整:
如何调整RX参数
高速串行信号通过一段距离传输以后,每每在接收端每一个bit信号的信号宽度会发生变化,好比发送端发送 1111_0_1111, 这样在接收端的"0"这个数据bit的信号宽度就会特别窄,极可能时钟没法对准信号的中间采样,致使误码。通过re-timer或者repeater的信号从新整形以后,把过窄的信号宽度从新整造成1个UI,而后再发送出去,这样后续的接收器就不容易出错
post-cursor和pre-cursor名称中的post和pre的由来:
跳变以后
的预加剧跳变以前
的预加剧