ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ADS中Tx_Diff均衡器参数如何影响SerDes眼图质量

ADS中Tx_Diff均衡器参数如何影响SerDes眼图质量 做高速SerDes链路仿真的人十有八九都被眼图卡过。我在ADS里调一段12Gbps链路时接收端眼图高度只剩下可怜的几十毫伏mask怎么都过不了。绕了一个大圈之后才意识到最前置的Tx_Diff均衡器(EQ)参数从头到尾都没认真审视过。本文就从这块板卡的仿真经历出发把ADS中Tx_Diff均衡器参数如何影响眼图质量这件事一层层拆透。适合刚接触SerDes仿真、想系统性调眼图的硬件工程师和信号完整性SI工程师也适合那些被“默认EQ参数”坑过许多次的老手。1. 眼图睁不开的大概率源头Tx均衡调制了整条链路的“起跑姿态”1.1 通道损耗只是表象发射端预整形才是可调变量很多工程师一看到收端眼图闭合第一反应就是通道损耗太大、过孔stub过长、S参数有凹陷然后抱着S21曲线反复看。这个方向没有错但在ADS里做SerDes系统级仿真时你手上真正能快速拉动、效果最直观的变量其实是发射机里的均衡器参数尤其是Tx_Diff这一组差分均衡设置。高速链路的核心问题是码间干扰ISI。信号从TX走到RX经过PCB走线、过孔、连接器高频分量损耗远大于低频分量导致一个码元的能量拖到后面几个码元上。发射端均衡的思路就是在信号发送前先做一次“反整形”把容易衰减的高频分量提前抬一点或者把相邻比特的相对幅度压低一点让信号经过实际信道之后在接收端采样点的位置能恢复出最大眼高。Tx_Diff均衡器就是干这件事的。它不是某个独立的硬件芯片而是在ADS SerDes链路仿真环境下发射机模型里的一组差分发射参数。你把它调到位眼图闭合问题往往解决一半你不调它链路再优化也可能始终差一口气。理解这一点是整个仿真的前提。1.2 只在接收端看眼图不够Tx均衡决定的是信号“起点”做SerDes系统仿真时很多人喜欢直接在接收端放一个眼图探针看到什么就是什么。这种方式做静态分析还行一旦要做均衡参数优化就会陷入被动你只知道结果不好不知道是TX没预整形还是RX均衡不够还是中间通道的谐振点在作怪。我个人的习惯是先固定RX侧的连续时间线性均衡器CTLE为中等增益然后把注意力放在TX端。TX侧的差分输出摆幅、主抽头增益、前游标、后游标直接决定了加载到通道上的信号频谱形状。你可以这样理解通道是一条固定的“沟”水怎么流取决于上游发射机给的“初始流速”。Tx_Diff调的就是这个初始流速。所以当我看到收端眼图闭合时第一件事不是去重画通道而是回过来看发射机模型参数。很多时候默认的Tx_Diff参数只是把差分摆幅设在一个保守值前游标和后游标都是0dB相当于信号完全不带预整形直接灌进通道。这种状态跑长链路眼图不塌才奇怪。2. Tx_Diff均衡器参数逐个拆解从幅度、游标到上升沿2.1 差分输出电压摆幅眼图高度上限的唯一来源Tx_Diff均衡器里最容易理解、也最容易被低估的参数是差分输出电压摆幅英文界面上通常写作Differential Output Swing或者Vout_diff。这个值代表TX正常输出高电平和低电平之间的差分电压差是接收端眼图高度的物理上限来源。比如你设置Vout_diff 400mVpp那么不管均衡算法多厉害接收端眼图高度理论上都不可能超过这个值。实际还要扣除通道损耗、串扰、反射、接收机噪声最终可能只剩一半甚至三分之一。所以很多链路仿真出来的眼高很低第一步就要检查是不是摆幅设置太保守了。但摆幅也不是越大越好。我后面会专门说一组扫参数据差分输出从400mV加到1000mV的过程中眼图高度先是明显改善再继续加大时反而恶化抖动也会跑大。原因是发射机线性区有限、过驱动引起额外的反射与串扰。具体数值需要结合你的驱动能力和信道损耗来权衡而不是无脑拉满。2.2 前游标、后游标和去加重方向和强度怎么搭配Tx_Diff里最关键、最容易混淆的是游标cursor设置。发射端均衡通常是有限脉冲响应FIR结构主抽头叫C0前一个bit影响用前游标Pre-Cursor描述后一个bit影响用后游标Post-Cursor描述。后游标的作用是“去加重”它把主抽头上的幅度提高同时把前一个bit产生的相对幅度压低。这样在长串连续相同码型后电平会略低而在数据翻转沿处电平会更高能有效补偿信道对高频分量的衰减。绝大多数背板、电缆链路首先应该调整的就是后游标强度对应界面上的De-emphasis或者Post-Cursor。前游标的作用更像是“预加重”它影响的是当前bit后面的比特目标是对冲信道的上升沿变缓问题。前游标用得比后游标少但在走线很短、反射主导或者存在强谐振的场合一点前游标能明显改善眼图顶部和底部的过冲。这里必须强调方向。有些人看到De-emphasis字面意思是“去加重”以为应该让所有频率都均匀衰减结果把参数方向设反眼图越调越差。后游标的本质是压低低频分量、相对抬高高频分量英文里的De-emphasis指标越大代表相对加重越强。理解到这一层就不会被名词带着跑。2.3 上升/下降时间与抽头数量往往被忽视的边界条件Tx_Diff参数组里还有上升沿/下降沿时间Rise Time/Fall Time和抽头数量Number of Taps这两个参数经常被默认值掩盖却很容易成为眼图优化的隐形限制。上升下降时间决定了过渡沿的频谱能量太慢高频分量不足去加重没有意义太快频谱分量过冲严重会在通道中激发出更多反射。一般我会先把Rise/Fall设置在码元周期的大约15%到25%范围。比如10Gbps对应1UI是100ps上升沿设在25ps到35ps比较合理。抽头数量决定均衡器能多大程度逼近理想逆信道响应。二抽头只能做一个简单去加重三抽头或者五抽头可以补偿更精细的码间干扰。在ADS的Tx模型里抽头数量选好之后每个抽头的系数是独立可调的。要注意的是抽头越多可调参数越多仿真扫描的维度也越大如果只靠手调很容易顾此失彼这时候需要利用参数扫描工具做多维搜索。3. 在ADS里搭一条带Tx_Diff均衡的SerDes链路从模型选型到眼图输出3.1 链路拓扑与激励源设置别把必要环节省掉在ADS里搭建SerDes仿真链路不需要追求和最终PCB完全一致但关键环节不能省。我这里用的是一个很典型的12Gbps收发链路TX差分激励源经过发射机均衡模型再经过交流耦合电容、一段约12英寸的FR4差分走线S参数模型最后进入接收机模型在接收端用眼图探针读取波形。第一步是确定码型。我习惯先用PRBS7因为它的低频跳变和高频跳变比例均衡能比较好地暴露ISI问题。如果是验证真实协议再用PRBS9、PRBS15或者实际流量文件。激励源的位速率直接设成12Gbps输出类型选差分模式。这里建议把仿真停止时间算够至少覆盖几千个UI不然眼图累加次数太少统计意义不够。实际在ADS的SerDes工程模板里这些模块都有现成元件比如Transmitter模型、Receiver模型、Channel模型、EyeProbe等。关键是不要直接拖一个理想电压源到S参数两端那样Tx_Diff均衡器参数根本不会参与仿真出来的眼图自然也不可信。3.2 发射机模型里敲参数别让默认值绑架结果接下来是核心打开发射机模型定位到Tx_Diff相关的Differential参数页。我一般会把差分输出摆幅先设成600mVppDe-emphasis设成3dBPost-Cursor使能Pre-Cursor先保持0抽头数选2上升下降沿设成30ps。这套初始值不算激进但能让传输线明显“看到”预整形后的波形。为什么要从这套值开始因为我测试过把De-emphasis设成0dB、抽头数设为1的时候发射机输出就是一个接近方波的原始PRBS信号它没有对信道做任何补偿。此时如果链路损耗很大接收端眼图几乎会闭合而我后面做参数扫描也看不到改善趋势。先给一个适当的初始均衡基线读数才有参考意义。这里也提醒一下Tx_Diff参数里如果出现“Polarity”或者“Invert”之类的选项一定要检查方向和协议定义是否一致。差分极性反了眼图看起来像鬼影怎么调都救不回来。3.3 通道模型和眼图探针的连接以及第一版基线读数通道模型我选的是实际测量或三维提取出来的S4P文件。如果手上没有真实S参数也可以用ADS自带的传输线模型搭一对差分微带线但要注意频率范围要覆盖至少5倍奈奎斯特频率12Gbps链路的奈奎斯特频率是6GHz所以S参数最好不要低于30GHz。接收端我习惯先放一个简化Rx模型CTLE增益设到中等档位。注意本文讨论重点是Tx_Diff所以不要把RX均衡调得过于激进否则TX端的变化会被RX补偿掩盖掉。眼图探针放在RX判决器的输入端这个位置看到的是通道损伤之后、均衡判决之前的关键波形。跑完一次瞬态仿真之后我会先看眼高、眼宽、抖动和mask违规这四个读数。基线状态下眼高128mV眼宽0.89UI峰峰抖动27psmask margin约10%。这个结果能用但不理想尤其是mask margin距离30%的目标还有明显差距。接下来就是通过参数扫描找最优的Tx_Diff组合。4. 扫参实战三个关键EQ参数对眼图的定量影响4.1 主抽头差分幅度眼高随幅度上升但过冲会反噬固定De-emphasis为3dB、抽头数2、上升下降时间30ps我把差分输出摆幅从400mV扫到1000mV得到的眼图指标整理如下Vout_diff (mVpp)眼高 (mV)眼宽 (UI)峰峰抖动 (ps)Mask Margin400820.8729-6%6001280.892710%8001500.902616%10001410.88395%这个结果很有代表性。从400mV提升到800mV眼高几乎翻倍mask margin也从负值变成正向16%说明这部分链路在低摆幅状态下主要瓶颈是驱动幅度不足。而继续加到1000mV眼高反而掉了约10mV抖动从26ps恶化到39ps这是因为发射机输出级进入非线性区过冲和反射成分增加接收端采样点附近叠加了更多噪声。所以实际项目里我会先瞄一眼通道损耗再决定摆幅。通道在奈奎斯特频率处的损耗如果在15dB以下600到800mV常常是甜点区如果损耗超过20dB才需要认真评估更大摆幅同时要检查串扰和EMI风险。4.2 去加重强度3~6dB通常是最优区间固定Vout_diff为800mVpp抽头数2扫描后游标对应的去加重强度结果如下De-emphasis (dB)眼高 (mV)眼宽 (UI)峰峰抖动 (ps)Mask Margin0950.8833-3%31280.892710%61360.902514%91100.8538-1%0dB时没有预整形眼图高度只剩下95mVmask直接不过3dB开始有改善6dB达到本次扫描的最好状态眼宽0.90UI抖动25ps。到9dB时眼高和眼宽反而下滑这是因为去加重过度发射端对相邻比特的压低太多长串连续码型降到低电平后恢复过慢同时产生严重的振铃。这组数据也印证了均衡参数不是越大越好。工程上有一个粗经验对于普通FR4背板链路去加重按通道损耗的20%到40%进行初设。比如奈奎斯特频率损耗12dB初始去加重可以取2.5dB到4dB损耗更大再逐步上调。最终还需要结合眼图扫描来确认。4.3 抽头组合与预/去加重配比多一个tap并不总是更好再看抽头组合的影响。固定总均衡量大约相当于6dB左右的后游标深度用三种方式配置配置方式具体设置眼高 (mV)眼宽 (UI)峰峰抖动 (ps)A仅后游标De-emphasis 6dB1360.9025B前游标1.5dB 后游标4.5dB1420.9123C3-tapC00.55C1-0.20C-1-0.251480.9122从A到B再到C眼高和抖动逐步改善说明当通道损伤比较复杂时增加一个前游标或额外抽头能把脉冲响应的拖尾压得更干净。但代价也很明显参数空间从一维变成三维仿真时间成倍增加而且越细致的抽头组合对通道变化也越敏感。我一般不推荐上来就无脑开5-tap。对于大多数12Gbps级别链路2到3个抽头足够如果目标速率到了56Gbps甚至112Gbps PAM4级别才会更依赖复杂均衡架构。实际优化时建议先固定抽头数把主幅度和后游标扫出一个大概区间再打开前游标做微调。5. 眼图判读技巧眼高、眼宽、抖动和mask margin如何协同判断5.1 四个读数各自代表的含义与优先级仿真跑完ADS会把眼图统计结果整合成几个数字眼高、眼宽、峰峰抖动、mask margin。很多人只看眼高这是不够的。眼高反映垂直方向余量眼宽反映水平方向余量抖动则是水平方向的随机确定性偏差来源而mask margin把眼图与规范边界综合在一起。我判断一个EQ参数组合好不好优先级是这样先看mask margin是否为正而且越大越好再看眼宽是否大于0.85UI然后再看眼高是否满足芯片数据手册要求最后才是抖动绝对值。mask margin如果为负说明眼图某一部分已经撞进不达标区域这种状态在实际量产中大概率会有误码率风险。有时眼高和眼宽都不难看但mask margin却一般这是因为mask边界通常不是简单矩形而是对眼图不同位置有不同要求。所以必须以协议模板为准用eye mask来做最终裁决。5.2 浴盆曲线和BER目标值的交叉验证除了眼图快照ADS里还能输出浴盆曲线Bathtub curve它比单一眼图视图更能说明问题。浴盆曲线的横坐标是采样相位纵坐标是对应误码率可以看到在1e-9、1e-12甚至1e-15要求下水平方向还剩下多少UI裕量。我在优化Tx_Diff参数时会把mask margin和浴盆曲线一起看。出现过一种情况某一组参数下眼高眼宽很漂亮可是浴盆曲线到1e-12处基本收口说明只要采样时钟偏一点点误码率就会显著上升。这种参数组合风险很高不适合量产条件。调整均衡强度尤其是前游标和后游标的配比往往能把浴盆曲线从“V形”顶端拉开得到更宽的误码率安全区间。5.3 多参数扫描后如何锁定安全窗口当幅度、去加重、抽头系数一起扫描数据量会很大。我会把结果整理成带mask margin和抖动两列的表格然后圈出满足mask margin15%、眼宽0.88UI、峰峰抖动30ps的候选组再在这些候选组里看参数余量。这里有一个关键经验不要选刚好在扫描边界上最优的那组参数。比如De-emphasis在6dB时最好5.5dB和7dB都明显变差那宁可选择3.5dB到4.5dB这样一个比较平缓的区域因为元器件批量生产时芯片驱动特性和PCB通道都存在误差最优参数必须有一定鲁棒性。ADS里的参数扫描结果如果不考虑制造容差就只能算仿真自嗨。6. 调EQ参数时我踩过的三个坑方向、幅度和“只看眼图”6.1 去加重方向搞反眼图越调越差我第一次用Tx_Diff时闹过一个笑话以为De-emphasis加大会让信号整体变弱于是想着反正通道损耗大就一路往后加结果眼图高度越来越低最后连mask都压成一条线。后来把Post-Cursor和Pre-Cursor的定义重新读了一遍才发现去加重方向理解反了。这个坑特别典型因为很多资料把De-emphasis翻译成“去加重”听起来像是要把信号削弱。实际上它压的主要是低频分量和相邻比特残留目的是相对抬高高频分量。所以De-emphasis越大发射端的频率加重效果越强。如果方向反了你越加越等于把高频分量往下压眼图自然崩溃。修正之后眼高很快从90mV回到130mV以上。6.2 盲目把输出摆幅拉满板级串扰和EMI失控另一个坑是我在高损耗链路上为了把眼高提上去直接把差分输出摆幅拉到最大档位。眼图确实睁开了mask也过了但是随后做多通道并行仿真时发现相邻通道的近端串扰明显变大强相关码型下被干扰通道的眼图收到了明显噪声抬升。大摆幅不仅意味着眼高上限提升也意味着更陡的电压转边、更大的瞬态电流这些都会转换成电磁辐射和串扰。Tx_Diff均衡不是孤立参数它一定和整个板级环境耦合在一起。所以调完EQ参数后最好把相邻通道也放进仿真里做组合验证或者至少用近端串扰/远端串扰S参数做一次伴随仿真。6.3 只看眼图不结合频域指标调完参数换板子就翻车还有一个容易被忽略的问题某组EQ参数在手上这块背板仿真里非常漂亮但换到一个走线长度不同、材料损耗系数也有差异的板卡后眼图风格完全变样。后来我意识到自己只盯着时域眼图根本没有回看发射端频谱整形和通道S21之间的匹配度。现在我的习惯是多一步频域检查把Tx_Diff对应抽头系数从时域脉冲转换成频域传输特性再和通道S21做对比。合理的设计一般要求均衡器在奈奎斯特频率附近能提供和通道损耗大致互补的增益趋势而不是在某几个频点异常突起。时域眼图是“结果”频域匹配是“原因”两者一起看才能避免参数“只在这个通道有效”。最后分享一个我一直在用的调参顺序先把差分输出摆幅固定在650mV左右用2-tap把后游标从3dB扫到7dB找到mask margin最平坦的区域再固定后游标微调前游标0到1.5dB观察抖动和眼宽变化最后才回来微调总摆幅。跑完所有扫描选一组落在甘特区中央的参数再叠加一次通道长度环境温度变化的容差检查。这一套流程不能保证一次拿到全球最优解但能让你在绝大多数板卡上快速得到一个稳定、可交付的EQ参数。
返回列表