高速Serdes技术(FPGA领域应用)

目录

  • 引入
  • 一、Serdes(概念-历程)
    • 1、概念
    • 2、技术现状
    • 3、发展历程
  • 二、Serdes结构
  • 三、在FPGA领域中的运用
  • 四、Serdes跟Lvds的关系
  • 五、Xilinx 有关 serdes的文档
  • 六、参考文献

引入

      回顾接口技术发展历史,其实数据的传输最开始是低速的串行接口(Serial Interface,简称串口),为了提高数据的总带宽,首先想到的是增加数据传输位宽,再进一步提升速率。也就是并行接口(Parallel Interface,简称并口)的方式,并逐渐取代传统低速串口成为主流。但随着并口的发展,其限制也也越来越明显。而高速串行(High Speed Serial ,HSS)接口技术具有的优势使其有取代目前并口的趋势。表现为接口总带宽的显著提升。其历史就像从山间小道升级为乡村公路,再到高速公路(网),能够提供更高的通行量。
      目前并口发展遇到的限制主要为,一方面芯片封装面临着IO数量紧张的问题,另一方面是,并口的数据速率提升过程中面临的串扰(Crosstalk)和噪声(SSN)问题,使得数据的同步变得很困难。

一、Serdes(概念-历程)

1、概念

      SERDES,即 Serializer / Deserializer,是串行器和解串器的简称,是一种广泛应用于高速串行数据传输的技术。它将并行数据序列化成一个高速串行数据流,并在接收端将该序列还原为原始的并行数据。

      SERDES 技术通常使用在点对点传输场景下,例如在芯片之间、板卡之间或机箱之间,因为这些场景需要传输大量的数据以及较长的距离和高速率。SERDES 技术可以通过降低线路数量和减小线路长度来提供高速、可靠的数据传输。

      SERDES 技术通常由两个部分组成:serializer 和 deserializer。serializer 用于将内部的并行数据序列转换为高速串行数据流,而 deserializer 则将收到的高速串行数据流转换回原始的并行数据序列。在 SERDES 技术中,还包括时钟恢复电路和同步电路,以确保正确地复原数据。

      SERDES 技术广泛应用于现代通信、网络、存储等领域,例如 PCI Express、SATA、USB3.0 等标准都采用了 SERDES 技术,以提供高速、可靠的数据传输。

2、技术现状

      SERDES 技术在现代通信、网络和存储系统中得到了广泛应用。随着数据中心和云计算的普及,高速串行接口的需求越来越大,因此 SERDES 技术在这些领域的地位也越来越重要。

近年来,SERDES 在以下方面得到了进一步发展:

      更高的数据传输速率:SERDES 技术已经能够提供 10 Gbps 甚至更高速率的数据传输,例如 PCIe 4.0 和 5.0 标准采用了 16 GT/s 的速率,使得高性能计算和数据中心应用获得更好的性能和响应速度。

      更低的功耗和成本:随着技术进步和集成度的提高,器件的功耗和成本也在逐步降低。例如,现代 FPGA 中的 SERDES IP 核已经能够在低功耗和高带宽的情况下实现千兆位每秒(Gbps)以上的数据传输。

      更高的可靠性和抗干扰能力:SERDES 技术的电路设计和信号处理算法也在不断优化,以提高其可靠性和抗干扰能力。例如,采用前向纠错码(FEC)技术或自适应均衡器等技术,可以提高数据传输的可靠性和抗干扰能力。

      SERDES 技术在高速串行接口领域的地位越来越重要,它将继续发挥重要作用,推动数据中心、云计算和大数据等领域的发展。

3、发展历程

      SERDES 技术的发展历程可以追溯到 20 世纪 80 年代后期,当时在高速串行通信中已经开始采用 SERDES 技术。以下是 SERDES 技术发展的主要历程:

1990 年代初:SERDES 技术在存储器领域的应用
首先,在存储器领域中使用 SERDES 技术,例如高端磁盘阵列、SAN 等存储设备。这些设备需要高速传输大量的数据,并需要采用高速串行接口来实现较长的传输距离。

1990 年代末:SERDES 技术在网络通信领域的应用
随着互联网和局域网技术的发展,网络通信成为 SERDES 技术的另一个重要应用领域。在这个时期,SERDES 开始在多种网络标准中得到广泛应用,例如 Gigabit Ethernet、Fibre Channel 和 InfiniBand 等。

2000 年代:SERDES 技术在计算领域的应用
随着计算机系统性能的提高,计算领域也开始采用 SERDES 技术。例如,PCI Express 和 Serial ATA 就是基于 SERDES 技术的高速串行接口标准,以提供更高的数据传输速率和更好的性能。

当代:SERDES 技术的新进展
随着技术的发展和应用领域的扩展,SERDES 技术依然在不断发展。例如,采用前向纠错码(FEC)技术或自适应均衡器等技术,可以提高数据传输的可靠性和抗干扰能力。同时,SERDES 技术还在不断提高数据传输速率、降低功耗和成本,并扩展应用于各种领域和场景中。

      SERDES 技术不断发展和创新,为现代高速串行通信、网络和存储设备提供了重要的支持和推动。

      目前市场上SerDes的应用,主要有Chip-to-Chip,Board-to-Board, Box-to-Box等形式,如图7(a/b/c)示意图。并在大型数据中心,通信骨干网络,消费电子等场景下都有应用。
在这里插入图片描述

二、Serdes结构

其结构主要包括以下几个部分:

时钟恢复模块(Clock Recovery Module)
时钟恢复模块的作用是从接收到的串行数据中提取时钟信号,以便后续电路正确解析收到的数据。时钟恢复模块通常采用 PLL、DLL 或其他技术实现。

数据编解码模块(Data Encoding and Decoding Module)
数据编解码模块通常用于将发送端的并行数据编码成串行数据,并将接收端收到的串行数据解码为并行数据。常见的数据编解码方式包括 8b/10b、64b/66b 等。

串行器(Serializer)
串行器一般位于发送端,其作用是将并行数据转换成串行数据,并通过串行发射器进行传输。串行器的输出速率取决于时钟频率和数据编码方式等参数,通常可以达到数十 Gbps。

解串器(Deserializer)
解串器一般位于接收端,其作用是将接收到的串行数据转换为并行数据进行处理。解串器通常包括数据解码、时钟恢复、数据缓存和对齐等部分,可以实现高速、稳定的数据传输。

时钟校正(Clock Correction)
在高速串行通信中,由于发送端和接收端时钟的不完全同步,数据可能会出现位移和抖动,导致误码率增加。为了解决这个问题,可以采用Clock Correction技术,该技术会利用特定的算法来对接收端的时钟进行校正,以使其与发送端的时钟同步,从而能够更准确地接收数据。

通道捆合(Channel Bonding)
是一种将多个物理通道绑定在一起,形成一个逻辑通道的技术。在SerDes(串行器/解串器)中,它可以通过将多个高速串行通道捆绑在一起,实现更高带宽的传输。这样做可以显著提高通信速度,并减少通道占用的物理空间。同时,它还有助于提高数据的可靠性和容错性,因为即使其中一个通道发生故障,整个系统仍然可以继续工作。

SERDES 的结构主要包括时钟恢复模块、数据编解码模块、串行器和解串器等部分,是现代高速串行通信和存储设备中不可缺少的关键技术。

在这里插入图片描述

三、在FPGA领域中的运用

      在 FPGA 领域中,SERDES 技术主要应用于高速串行通信和存储接口等方面:
高速串行通信
SERDES 可以将 FPGA 内部的并行数据转换成高速的串行数据,通过 PCB 等介质进行传输,然后再将其转换为并行数据进行处理。这种方式可以大幅提高数据传输速率,降低功耗和硬件成本,特别是在高速网络、光纤通信等场景中具有很大的优势。

存储器接口
SERDES 还可以用于连接 FPGA 和高速存储器(如 DDR3/4),实现高速、稳定的数据传输。在这种场景下,SERDES 可以充分利用存储器接口的带宽,提高存储器读写速度和系统吞吐量。

视频信号处理
SERDES 技术也广泛应用于视频信号处理领域。例如,在 HDMI 接口中采用了 D-PHY 或者 TMDS(Transition minimized differential signaling,过渡最小化差分信号)等 SERDES 技术,可以实现高清视频数据的传输与显示。

高速总线接口
SERDES 还可以用于 FPGA 与其他高速总线接口(如 PCI Express、SATA 等)的连接。它可以将 FPGA 内部的数据转换为这些接口所需的串行数据格式,实现 FPGA 与外部系统之间的高速数据传输。

      Xilinx公司的许多FPGA已经内置了一个或多个MGT(Multi-Gigabit Transceiver)收发器,也叫做SerDes(Multi-Gigabit Serializer/Deserializer)。MGT收发器内部包括高速串并转换电路、时钟数据恢复电路、数据编解码电路、时钟纠正和通道绑定电路,为各种高速串行数据传输协议提供了物理层基础。MGT收发器的TX发送端和RX接收端功能独立,而且均由物理媒介适配层(Physical Media Attachment,PMA)和物理编码子层(Physical Coding Sublayer,PCS)两个子层组成,结构如下图所示。
在这里插入图片描述

      PMA子层内部集成了高速串并转换电路,预加重电路、接收均衡电路、时钟发生电路和时钟恢复电路。串并转换电路的作用是把FPGA内部的并行数据转化为MGT接口的串行数据。预加重电路是对物理连接系统中的高频部分进行补偿,在发送端增加一个高通滤波器来放大信号中的高频分量进而提高信号质量,但预加重电路会导致功耗和电磁兼容(Electro Magnetic Compatibility,EMC)增加,所以如非必要一般情况下都把它屏蔽掉。接收均衡电路主要用来补偿由频率不同引起的阻抗差异。时钟发生电路与时钟恢复电路在发送端把时钟和数据绑定后发送,在接收端再从接收到的数据流中恢复出时钟,这样可以有效地避免在高速串行传输的条件下时钟与数据分开传输带来的时钟抖动问题。

      PCS子层内部集成了8B/10B编/解码电路、弹性缓冲电路、通道绑定电路和时钟修正电路。8B/10B编/解码电路可以有效的避免数据流中出现连续的‘0’或者‘1’,以保证数据传输的平衡性。通道绑定电路的作用是通过在发送数据流中加入K码字符,把多个物理上独立的MGT通道绑定成一个时序逻辑上同步的并行通道进而提高传输的吞吐率。弹性缓冲电路用来解决恢复的时钟与本地时钟不一致的问题并可以通过对缓冲区中的K码进行匹配对齐来实现通道绑定功能。
      具体的时序分析,可以参考Xilinx 有关 serdes的文档(第五节,我列了相关文档)

      下图是一个N对SerDes收发通道的互连演示,一般N小于4。
在这里插入图片描述
可以看到,SerDes不传送时钟信号,这也是SerDes最特别的地方,SerDes在接收端集成了CDR(Clock Data Recovery)电路,利用CDR从数据的边沿信息中抽取时钟,并找到最优的采样位置。

SerDes采用差分方式传送数据。一般会有多个通道的数据放在一个group中以共享PLL资源,每个通道仍然是相互独立工作的。

SerDes需要参考时钟(Reference Clock),一般也是差分的形式以降低噪声。接收端Rx和发送端Tx的参考时钟可以允许几百个ppm的频差(plesio-synchronous system),也可以是同频的时钟,但是对相位差没有要求。

作个简单的比较,一个SerDes通道(channel)使用4个引脚(Tx+/-,Rx+/-), 目前的FPGA可以做到高达28Gbps。而一个16bits的DDR3-1600的线速率为1.6Gbps*16 = 25Gbps,却需要50个引脚。此对比可以看出SerDes在传输带宽上的优势。

相比源同步接口,SerDes的主要特点包括:
SerDes在数据线中时钟内嵌,不需要传送时钟信号。
SerDes通过加重/均衡技术可以实现高速长距离传输,如背板。
SerDes 使用了较少的芯片引脚

四、Serdes跟Lvds的关系

看了这么多,也许你会疑惑,Serdes跟Lvds怎么会这么像?他们的区别是什么?

SERDES 和 LVDS 都是用于高速数字信号传输中的技术,其中 LVDS 是 SERDES 技术中常用的差分传输方式之一。

SERDES 技术是一种将并行数据转换为串行数据,并使用差分信号进行传输的技术。而 LVDS(低电压差分信号)是指通过比较输入的两个不同电压来传输数字信号的技术,其核心原理是采用对称式多段放大器保证差分信号的可靠传输,能够有效抵抗电磁干扰、噪声等干扰信号的影响。

在实际应用中,SERDES 技术中的差分传输方式可以选择多种信号差动标准,其中 LVDS 便是其中一种应用广泛的标准。例如,在一些高速信号处理系统和通信领域中,SERDES 技术一般使用 LVDS 标准来传输差分信号,因为 LVDS 有许多优点,如具备较小的共模噪声、抗干扰性能强、功耗低等。因此,SERDES 技术与 LVDS 技术是紧密相关的,LVDS 技术也是 SERDES 技术中常用的差分传输方式之一。

五、Xilinx 有关 serdes的文档

Xilinx 官网提供了多份文档详细介绍 7 系列 FPGA 的 SERDES 结构和应用,以下是其中的几份:

7 Series FPGAs GTX/GTH Transceivers User Guide (UG476)
这份用户指南详细介绍了 Xilinx 7 系列 FPGA 中采用 GTX/GTH Transceiver 的 SERDES 结构,包括通信接口、时钟频率、数据编解码、时钟恢复等方面的内容。此外,该文档还介绍了如何使用 Vivado Design Suite 进行电路设计、实现和验证。

7 Series FPGAs Transceivers Wizard User Guide (这个文档,现在并入在UG476,在第27页)
这份用户指南主要介绍了使用 Xilinx Transceivers Wizard 工具进行 7 系列 FPGA SERDES 的配置和优化。该文档详细说明了 Transceiver Wizard 工具的使用方法、支持的协议、性能参数等方面的内容,并提供了示例设计和实验步骤。

7 Series FPGAs SelectIO Resources User Guide (UG471)
这份用户指南主要介绍了 7 系列 FPGA 中采用 SelectIO 技术的 SERDES 结构。该文档详细说明了 SelectIO 数据编解码、时钟恢复等方面的实现方法和技巧,同时还提供了多个使用案例和设计建议。

7 Series FPGAs PCB Design Guide (UG483)
这份 PCB 设计指南主要介绍了在 7 系列 FPGA 中设计 SERDES 时需要注意的 PCB 布局和布线规范。该文档详细说明了 PCB 信号完整性、EMI 抑制、时钟分配等方面的实现方法和技巧,同时还提供了多个设计建议和最佳实践。

六、参考文献

1、SerDes概述
2、SERDES关键技术总结
3、FPGA的SerDes接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/10411.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OSI七层网络模型与TCP/IP四层模型

一、OSI七层网络模型 OSI 七层模型 是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: 但由于各方面原因,OSI 七层模型并没有被广泛应用,更多的是作为网络分层的一种基础理论模型。 二、TCP/IP…

NumPy 基础知识 :1~5

原文:Numpy Essentials 协议:CC BY-NC-SA 4.0 译者:飞龙 一、NumPy 简介 “我宁愿使用通用语言进行数学运算,也不愿尝试使用数学语言进行通用编程。” – John D Cook 在过去的十年中,Python 已成为科学计算中最受欢迎…

MVCC

MVCC基本概念 当前读 当前读 : 读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁. 对于我们日常的操作. 如 : select....lock in share mode(共享锁) , select * for update , update ,insert,delete(排他锁) 都是一种当前读. 快…

Java对象模型

介绍 Java是一种面向对象的语言,而Java对象在JVM中存储是由一定结构的。而这个 Java对象自身的存储模型称之为Java对象模型HotSpot虚拟机中,设计了一个OOP-Klass Model.OOP指的是普通对象指针,而Klass用来描述对象的具体类型。如下图所示是一…

文章生成器写出来的原创文章

文章生成机器人 文章生成机器人是一种基于人工智能技术和自然语言处理算法的程序,可以自动地生成高质量、原创的文章。 文章生成机器人的优点如下: 提高工作效率:文章生成机器人能够在较短的时间内自动帮助用户生成大量的文章,提…

Python 小型项目大全 21~25

二十一、DNA 可视化 原文:http://inventwithpython.com/bigbookpython/project21.html 脱氧核糖核酸是一种微小的分子,存在于我们身体的每个细胞中,包含着我们身体如何生长的蓝图。它看起来像一对核苷酸分子的双螺旋结构:鸟嘌呤、…

计算机网络微课堂1-3节

目录 1. TCP/TP协议​编辑 2. 3.调制解调器 4.因特网的组成 5.电路交换 6.分组交换 重要常用 7.报文交换 8.总结电路交换 报文交换和分组交换 9. 1. TCP/TP协议 2. ISP 网络提供商 ISP的三层 国际 国家 和本地 3.调制解调器 什么是调制解调器,它存在的…

Python 小型项目大全 11~15

十一、标题党生成器 原文:http://inventwithpython.com/bigbookpython/project11.html 我们的网站需要欺骗人们去看广告!但是想出有创意的原创内容太难了。幸运的是,有了标题党生成器,我们可以让一台计算机产生数百万个令人发指的…

【Linux】浅析Input子系统

文章目录1. 框架1.1 数据结构1.2 evdev_handler1.3 evdev_init1.4 input_register_handler2. 应用如何打开节点并读取到事件数据2.1 evdev_fops2.2 evdev_open2.3 evdev_release2.4 evdev_read2.5 evdev_write2.6 evdev_poll2.7 evdev_fasync2.8 evdev_ioctl2.9 evdev_ioctl_co…

[考研数据结构]第3章之栈的基本知识与操作

文章目录 栈的基本概念 栈的实现 顺序栈 共享栈 链栈 栈的基本概念 栈的定义 栈(Stack)是只允许在一端进行插入或删除操作的线性表 相关术语 栈顶(Top)线性表允许进行插入或删除的那一端称之为栈顶栈底(Bottom&…

【计算机网络-数据链路层】集线器、网桥、交换机

本文许多文字和图片使用了湖科大教书匠(高军老师)的 PPT,在此表示感谢。正是他让非科班的我能以奇妙的方式走进网络的世界。 文章目录1 【物理层】集线器(Hub)——共享式以太网1.1 为什么使用集线器?1.2 集…

macOS Monterey 12.6.5 (21G531) Boot ISO 原版可引导镜像

本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日(北京…

ESXI 6.7全面系统教程~汇总

ESXI 6.7全面系统教程 许可证:0A65P-00HD0-375M1-M097M-22P7H esxi 是一个脱机系统,也是一个虚拟机系统与vmware 相比,它可以直接运行在硬件上,这样可以减少资源浪费,一般用于服务器上;下面是esxi 的完整…

stable-diffusion-webui-colab部署记录

stable-diffusion-webui-colab 该模型可以在网上云端部署stable-diffusion,减少本地部署的繁琐步骤降低配置要求的依赖。 一、进入stable-diffusion-webui-colab 1.网址:https://github.com/camenduru/stable-diffusion-webui-colab 在分支中选择driv…

我的创作纪念日:Unity CEO表示生成式AI将是Unity近期发展重点,发布神秘影片预告

PICK 未来的AI技术将会让人类迎来下一个生产力变革,这其中也包括生成型AI的突破性革新。各大公司也正在竞相推出AIGC工具,其中微软的Copilot、Adobe的Firefly、Github的chatGPT等引起了人们的关注。然而,游戏开发领域似乎还没有一款真正针对性…

Vulnhub:Digitalworld.local (Development)靶机

kali:192.168.111.111 靶机:192.168.111.130 信息收集 端口扫描 nmap -A -v -sV -T5 -p- --scripthttp-enum 192.168.111.130 查看网站首页源码 访问development目录,提示存在一个流量包 查看流量包发现另一个网站路径:/devel…

java继承类怎么写

继承类是通过把父类的方法和属性继承到一个类中,而子类的方法和属性是子类自己定义的。 Java中有一个很重要的概念叫做继承,这也是 Java语言的精髓所在。Java语言提供了一种机制,叫做派生类。在 Java中,如果没有实现了某个派生类方…

python 调用c++

python中调用c,函数参数用 int类型,返回值为类型1,且返回值为 false。 注意:如果你使用了C中的 false,则返回的是-1。 在 Python中调用C时,你会得到一个名为 bool的类,其中包含了两个成员变量: …

多智能体深度强化学习在移动边缘计算的联合多通道访问和任务卸载中的应用

多智能体深度强化学习在移动边缘计算的联合多通道访问和任务卸载中的应用主要贡献与相关工作比较的贡献三、系统模型(only 2 pages)3.1 网络模型3.2 通信模型3.3 计算模型3.3.1 本地计算3.3.2 卸载计算四、预备知识(only 1 page)五…

SpringCloud-Gateway网关搭建整合nacos配置中心实现动态路由整合sentinel实现服务限流熔点降级

官方文档(更多配置详情直接查看官方文档) 为什么需要服务网关 传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关,客户端只能在本地记录每个微服务的调用地址,当需要调…
最新文章