网络 SERDES 的串行数据速率已达到 28Gbps,并且还在不断发展。在如此高的数据速率下,即使是很小的 PCB 走线也会充当传输线,通过衰减和色散降低信号完整性。很难在芯片球处监控 SERDES 发射器输出。通常,信号将被带到 SMA 或 SMP 连接器,由
示波器监控。但是,由于 IC 和连接器之间存在传输线,信号特性会发生变化。挑战在于监控 SERDES 引脚的信号性能,这可以通过去嵌入走线的影响来实现。该设计理念描述了一种去嵌入传输线的方法。
假设 H(s) 是迹线的脉冲响应,如果 X(s) 是输入信号,数学上:
Y(s) = H(s) * X(s)
X(s) = Y(s) * H -1 (s)
我们可以将 H -1 (s) 实现为 FIR
滤波器,使用 MATLAB 确定滤波器系数(链接到文章末尾的文件)。
迹线的 H(s) 可以使用网络
分析仪通过测量 Sdd21 来测量。我们需要确定 FIR 滤波器的系数 (h f (t)),其频率响应 (H f (s)) 接近上面测量的 Sdd21 的倒数,即 H f (s) = H -1 (s ). 用于计算滤波器系数的方法是从某些系数开始 并计算频率响应。计算 H(s) 和 H f (s)之间的幅度误差。使用优化算法,改变系数以化平方和误差。
参考FIR_filter_design.m ,nc 是FIR滤波器的系数个数,drate是输入串行数据的数据速率,单位Gbps。选择fs使得fs / drate是一个整数。这将定义一位中存在的系数的数量。ncbit 给出了相邻系数之间的时间差。令N为频率响应 H f (s) 中的点数,numfpts = N/2 为奈奎斯特范围内的频率点数。滤波器传递函数的奈奎斯特频率为fs /2。定义频率范围finmin 到finmax ,在其上计算幅度误差。
滤波器的奈奎斯特频点由下式给出:
Hz 1 = (k* fs )/(2* numfpts ),其中 k = 0 到 numpts-1
进行插值以计算 Hz 1 频率点处的 Sdd21 幅度。将滤波器系数初始化为某个值。使用freqz MATLAB 函数计算滤波器频率响应的幅值 ,并确定插值后获得的 Sdd21 幅值数据之间的误差。使用 MATLAB fminbnd函数化平方和误差 。化算法可以通过多种方式实现;此处提供的代码只是实现它的一种方式。
实验结果
为了演示 FIR 滤波器的效果,使用了 Keysight 86100D 采样示波器和 Tektronix BERTScope,生成 10.3125Gbps 的码型。BERTScope 的输出连接到 DSO,波形存储在示波器存储器中,如图2 (洋红色)所示。BERTScope 输出然后连接到 PCB 上的传输线;通道的 SDD21(dB) 曲线如图1所示. 通道的输出连接到 DSO(黄色迹线)。信道引起的衰减和色散显着降低了波形。在范围的数学选项中,有一个线性均衡器块,它将滤波器系数作为输入。在信号路径中插入线性均衡器块并输入滤波器系数。块的输出是绿色迹线。FIR 滤波器去除了通道的 ISI 影响并很好地还原了波形。
图1 PCB走线的Sdd21
从 MATLAB 代码中得到的 FIR 系数为:
0.766, -0.115, -0.097, -0.119, -0.090, -0.099, -0.083, -0.033, 0.028, 0.015, 0.042, 0.013, 0.024, -0.008, 0.002, -0.019, 0.000, -0.015, -0.015, , 0.011, -0.007, 0.021, -0.002, 0.014, -0.009, 0.009, -0.018, 0.003, -0.022
图 2 BertScope PRBS7 输出(洋红色);PCB 走线输出端的信号(黄色);FIR 滤波器输出(绿色)
结论
该滤波器通过消除 PCB 迹线引起的衰减,显着提高了信号完整性。处理可以在示波器中完成、离线、在硬件中实现等。
之间有一些差异 BertScope输出和filter输出,可能是以下原因:
个 UI 中有一些峰值。这是由于滤波器系数 a2、a3 和 a4 的值很大。大多数高频放大是由这些系数完成的,这会导致峰化。可以修改算法来纠正这个问题。
H1(s) 应使用 LPF 函数进行频带限制。这将提供一个带限滤波器,并且应该在整个传递函数上将误差化。这也有望减少个 UI 中的峰值。在本文中,通过定义 fmin 和 fmax 来限制滤波器的带宽,这会引入错误。
在确定滤波器系数时不包括相位信息,这会引入一些误差。
通过在设计算法中进行这些修正,可以改进滤波器系数的计算。