高速设计学习-干货!高速串行Serdes均衡之FFE

干货!高速串行Serdes均衡之FFE

http://www.sohu.com/a/307013503_458015

2019-04-10 15:12

来源:EETOP论坛 及 公众号:不忘初心的模拟小牛牛

作者:131v1vv

本系列,准备把高速串行通信中用到的均衡进行一个总结。这期先介绍发送端。

高速接口SerDes为实现芯片间信号的有线传输,需要完成数字到模拟的转化,经过通道传输后,再将模拟信号转回数字信号。并保证传输过程保持比较低的误码率。本期,结合信道的特性,我们来了解一下SerDes的发送端TX的均衡原理。

SerDes的整个模型可以简单表示为图1所示。其中经过串化后的数字信号流,经过TX Driver转化为NRZ编码的波形发送到TX输出端,经过信道传输,被RX前端采样和比较,解码得到正确的数据。模型上就是从{dk}到y(t)的过程。

图1

其中数字信号表示为{dk},这里为方便叙述,dk取值归一化为±1,分别代表逻辑“1”和“0”。其转化关系为是线性的。同样将TX输出y(t)归一化为±1的波形如图2。可以将TX的单位冲激响应Φ(t)看做是一个窗函数rect,也就是一个零阶保持器(Zero-order Hold,ZOH)。Tx Driver就通过ZOH完成了离散信号到连续信号的转换。

如图2,经过ZOH连续化的NRZ编码信号,可以分解为1UI宽度的幅度为±1的脉冲信号了。

图2

从信号与系统中,我们知道,满足采样定理的原始信号经过采样后,为了重建(reconstruction)原始信号,需要对采样信号在频域加理想窗函数rect。

如图3,rect和sinc函数是一对傅里叶变换对。频域窗函数rect其时域则是sinc函数。这种理想信号重建方式,实际上,比较难以实现。

ZOH作为最简单的离散信号连续化手段,其对应的频域是个sinc函数。可以看到,频域sinc函数衰减了高频成分,虽然无法完全消除。但因其时域的实现方式简单容易,而广泛应用。

图3

在TX的信号转化模型中,我们可以看到,将离散非周期信号{dk}转化为连续非周期信号y(t),采用的是ZOH的零阶保持。对应的频谱从连续周期变化为连续非周期。这是因为表示ZOH的矩形窗函数rect在频域是连续非周期的sinc函数。过程如图4,也就是频域经过sinc函数整形。

图4

总结一下,就是TX发送端完成了离散数字信号的连续化。

对于一定的信道,随着SerDes的数据速率越来越高,数据传输到接收端时,已经比较难以分辨了,接收端会得到大量的错误数据。至于信道模型,基本都是等效为我们先前聊过的传输线。图5给出几个不同长度FR4板材的传输线特性,主要是插入损耗S21随频率的变化曲线。

图5

可以看到在设计的比较好的信道时,其损耗和频率的关系相对比较线性。信道对不同频率成分的衰减量是不一致的。而实际信号的频率会比较丰富。这会导致信号有比较严重的码间干扰(后边具体说明)。

因此需要在接收端RX,采用不同的均衡手段,来降低信道的低通频率特性的影响,但为应对更大的信道衰减,在更高的数据率下,也需要在发送端集成均衡方案。这种均衡方式常称为前馈均衡(Feed-Forward Equalization,FFE)。利用的是数字信号处理中最常见的有限长度冲激响应(Finite Impulse Response)滤波器。

那么对于SerDes的发送端均衡,我们要考虑的FIR就必须具有高通特性,以此来提前补偿一定程度的信道损耗。

至于具体的FIR实现上,需要分析FIR的补偿量,阶数。同时综合考虑应用场景特性,发送端电路实现和用户的易用性等因素。图6给出了个简单的2阶3-tap结构的FIR例子。

图6

其中3个tap的系数就是设计参数,尽管我们已经确定需要FIR的频域特性是高通特性。但考虑到电路实现时(特别是功耗这一点上),就有两种不同的FIR的两均衡方式,分别称之为预加重(Pre-emphasis)和去加重(De-emphasis)。其归一化频域特性和离散时域表达式如图7所示。

图7

看到预加重和去加重的典型区别是,在多档可调均衡量设计中,是否具有 恒定的最大输出摆幅 (也就是fixed peak swing)。比如说去加重就是典型的fixed Vpk。而预加重的最大输出幅度和加重量相关。表现为图7中归一化奈奎斯特频率是否恒定。

加重量的计算可以直观从图7表达式看到。DC频率幅度和奈奎斯特频率幅度比值取对数坐标即可。

可以这么理解,去加重方式主要是降低中低频分量,保持高频分量恒定;而预加重主要是保持低频恒定,增加中高频分量。给定图7所示系数 C0 =0.1, C2 =0.2,一个典型的去加重和预加重波形如图8所示。

图8

如果说发送端在无均衡模式下,只能看做1bit的D/A转化器,那么包含FFE均衡的发送端就是多bit的ADC了。在实际的实现过程中,无论是电压型的SST结构和电流型的CML结构。都可以采用了多份叠加的实际思路,如图9的示意图。

图9

那么现在还剩下一个问题就是FIR的系数怎么确定,为什么c0和c2要取负值。回答这个问题前,我们先了解下信道的脉冲响应。

如图10所示。10Gbps数据率下,对应图5不同损耗的单位脉冲响应。可以看到随着损耗的增加,响应信号最大幅度逐渐减小,并表现出了越来越严重(幅度和持续时间)的“拖尾”,这就是我们常说的码间干扰(ISI)。

图10

可见在需要长距离传输时(通常损耗量和长度正相关),为保持信号尽可能的小的衰减,就需要使用更好材质的传输线,或更进一步使用光纤传输。

为了更形象的理解ISI的干扰作用,图11和图12给出了更进一步的说明。

图11是一个典型的信道输入信号的脉冲分解。这里脉冲初值给了0(对应实际的发送器输出为idle态,也就是共模)。之后是“ 1111101 ”的脉冲。将该输入送给图10中具有[email protected]的信道。

图11

图12是输出结果波形。信道通常是LTI系统,可以看到8个相隔为1UI=100ps的脉冲响应。还有一些叠加信号, 黄色 是仅前3个+脉冲的叠加结果, 蓝色 为前6个+脉冲的叠加, 红色 为前6个+脉冲加第7个-脉冲的叠加结果, 黑色 为全部8个脉冲的叠加结果。

图12

从图12比较明显地观察到,前6个+脉冲和第8个+脉冲的影响,导致第7个-脉冲的幅度裕量(和0电压比较)很小了。如果再加上噪声和其他干扰,比较容易导致RX端判断错误。下边量化一下ISI的影响。

图13给出[email protected]信道的脉冲响应,包括前标(pre_cursor)、主标(main_cursor)和后标(post_cursor)的具体量值。这些标量在计算经过信道后眼图的“眼高”时有重要指导意义。

比如图13中给出了出现最小眼高的Case。一般是在出现连续多个UI的逻辑“0”(或“1”)之后,紧接着出现逻辑“10”(或“01”),或者相反的情况(图12例子)。

图13

需要注意的worst case眼高值y的计算公式。当然实际上眼高和数据密切相关,比如我们在用PRBS7和PRBS15等进行仿真时,可以明显看到PRBS7的眼高就比PRBS15的更大一些。这里边就是因为PRBS7码型最多出现7个连续的逻辑“0”或者“1”。导致计算式中post_cursor的和偏小。worst case的“眼高”估计,是RX端设计的重要参考指标。

最后就是FIR系数计算方式,一种是迫零法(Zero Force),另一种是最小均方误差(Minimum Mean Square Error,MMSE)。

限于篇幅,这里给一个迫零法的简单说明。这里利用图13中给出的14.4dB的脉冲响应,计算一下实现图6和7中3-tap结构FIR。可以看到FIR系数的计算就是利用脉冲响应构成的矩阵运算,其中P是无前后标的理想脉冲响应[0 1 0],归一化后可以得到系数的计算结果。

图14

MMSE不不强迫后标都是零值,而是使所有后标的总能量最小。是一种比迫零法更好的方法。

需要说明的是,在我们FIR的实现中,可以只用Pre-cursor C0 ( C2 =0)或者Post_cursor C2 ( C0 =0)进行均衡加重,也可以两者都用,区别表现在TX输出的幅度稳态值个数不同。

最后再放一张包含了同时包含Pre-cursor去加重和post-cursor去加重量的发送端眼图。可以在图15的眼图上看到约6个稳态幅度量。分别代表了高中低等频率分量。

图15

到了最后还是不得不说一下TX端均衡的局限性,最主要的就是发送器的均衡程度很难做好根据应用场景的自适应调节。一般都是 留一些可调整的档位供用户选择。但这不妨碍TX端的均衡能够进一步提高SerDes的过channel能力,提高串口的性能。总之,属于锦上添花的feature。返回搜狐,查看更多

原文地址:https://www.cnblogs.com/e-shannon/p/11429802.html

时间: 2024-10-18 01:01:50

高速设计学习-干货!高速串行Serdes均衡之FFE的相关文章

STM32学习笔记——SPI串行通讯(向原子哥学习)

一.SPI  简介 SPI是 Serial Peripheral interface 的缩写,就是串行外围设备接口.SPI 接口主要应用在  EEPROM, FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32 有 SPI 接口.下面是 SPI 的内部简明图:

RAPIDIO高速串行协议

RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能. 低引脚数. 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准.RapidIO主要应用于嵌入式系统内部互连,支持芯片到芯片.板到板间的通讯,可作为嵌入式设备的背板(Backplane)连接. RapidIO协议由逻辑层.传输层和物理层构成.逻辑层定义了所有协议和包格式.这是对终端进行初始化和完成传送的很有必要的信息.传输层为数据包从一个终端到另一个终端通道的必要信息.物理层

Xilinx FPGA高速串行收发器简介

1 Overview 与传统的并行实现方法相比,基于串行I/O的设计具有很多优势,包括:器件引脚数较少.降低了板空间要求.印刷电路板(PCB)层数较少.可以轻松实现PCB设计.连接器较小.电磁干扰降低并具有较好的抗噪能力. 2 高速串行通信中用到的技术 2.1多重相位 高速的秘密在于多重相位技术.所谓多重相位,就是在一个时钟的不同相位提取数据,例如,由锁相环产生多个不同相位的同源时钟,相位分别为 0°.90°.180°.270°,使用这几个时钟分别对串行数据流进行采样,再经零相位时钟同步,最后转

cortex_m3_stm32嵌入式学习笔记(二十):IIC实验(I2C串行总线)

IIC(Inter- Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备.它是由数据线SDA 和时钟SCL构成的串行总线,可发送和接收数据.在 CPU 与被控 IC 之间. IC 与 IC 之间进行双向传送, 高速 IIC 总线一般可达 400kbps 以上. ALIENTEK MiniSTM32 开发板板载的 EEPROM 芯片型号为 24C02.该芯片的总容量是 256个字节,该芯片通过 IIC 总线与外部连接,我们本章

芯航线FPGA学习套件之多通道串行ADDA(TLV1544,TLC5620)模块测试手册

芯航线FPGA学习套件之多通道串行ADDA模块测试手册 ? 本手册以简明扼要的方式介绍芯航线FPGA学习套件提供的ADDA模块的测试方法: ? 连接开发板,如下所示: 2.将ADDA V1.1模块与开发板按如下图所示连接: 打开测试工程DA_AD_v1.1,如下图所示: 烧写DA_AD.sof文件到开发板中 ? 打开SignalTap II 文件,如下图所示: 运行SignalTap II,观察窗口中波形: ? 如果整个波形能够如上图,即1544和5620的两路数据都呈正弦波,则表明ADDA模块

串行RapidIO:高性能嵌入式互联技术--【转贴】

串行 RapidIO: 高性能嵌入式互连技术 作者: 德州仪器技术应用工程师 冯华亮/ Brighton Feng/ [email protected] 摘要 串行RapidIO针对高性能嵌入式系统芯片间和板间互连而设计,它将是未来十几年中嵌入式系统互连的最佳选择.本文比较RapidIO和传统互连技术的优点:介绍RapidIO协议架构,包格式,互连拓扑结构以及串行RapidIO物理层规范.介绍串行RapidIO在无线基础设施方面的应用. RapidIO 与传统嵌入互连方式的比较 随着高性能嵌入式

串行解串器 SerDes

获得连接:解密串行解串器 时间:2014-11-04 来源: 作者: 关键字:解串  SerDes 串行解串器是可将大位宽并行总线压缩成少量(通常为一条)差分串行链路的器件,该链路可在远远高于低速大位宽并行总线的速率下进行切换.串行解串器对大位宽并行总线进行了串行化,不仅可实现在系统内部.系统间或位于两个不同地点的系统间进行大量数据的点对点传输,同时还可降低功耗.板级空间和成本.下图 1 是串行解串器的基本概念. 图 1:串行∕解串 随着数据速率的增加,有关实施并行总线的问题也随之增多.较快总线

3.RapidIO串行物理层的包传输过程

转自https://www.cnblogs.com/liujinggang/p/10005431.html 一.引言 前几篇文章已经谈到RapidIO的协议,串行物理层与控制符号. RapidIO协议包括读事务(NREAD),写事务(NWRITE),流写事务(SWRITE),有响应的写事务(NWRITE_R),原子操作(ATOMIC),维护操作(MAINTENANCE),门铃事务(DOORBELL)和消息(MESSAGE)这几种. RapidIO的串行物理层是基于SERDES的,关于SERDES

2.RapidIO串行物理层的包与控制符号

转自https://www.cnblogs.com/liujinggang/p/9932150.html 一.RapidIO串行物理层背景介绍 上篇博文提到RapidIO的物理层支持串行物理层与并行物理层两种,由于Xilinx 部分FPGA内部已经集成了串行高速收发器,所以用FPGA实现RapidIO大多都是基于串行物理层的.本文将主要讨论一下RapidIO串行物理层的包格式与控制符号. RapidIO串行物理层,通常称为串行RapidIO,简称为SRIO(Serial-RapidIO). 串行