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

news2024/10/5 17:24:37

目录

  • 引入
  • 一、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.coloradmin.cn/o/413318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

202307读书笔记|《双向奔赴的爱,才是人间理想》——爱是双向奔赴,共同成长

《双向奔赴的爱,才是人间理想》作者燕七,读作者的第一本书是《鲸鱼安慰🐳了大海》可太美了,这次订阅通知这本,立马加入了书架,跑完步读了起来。没有第一本惊艳,但也不错,值得一读&am…

JavaScript对象的属性描述符(Property Descriptor)介绍

JavaScript对象的属性描述符(Property Descriptor)介绍 JavaScript 中的对象(Object)是一个包含相关数据和方法的集合,通常由一些变量和函数组成,我们称之为对象里面的属性(property&#xff0…

java springboot工程RESTful入门案例 认识请求类型 参数

我们先创建一个java的springboot工程 然后 我们先用老方式试一下 在启动类的同级创建目录controller 下面创建一个类 叫 UserController 参考代码如下 package com.example.threshold.controller;import org.springframework.web.bind.annotation.GetMapping; import org.spri…

负载均衡与DNS轮询

负载均衡 load balance 负载均衡(Load Balancing)是一种将工作负载(Workload)分摊到多个计算资源(服务器、存储设备、网络设备等)上的技术,目的是提高系统的可用性、性能和扩展性。负载均衡可以…

序列化和反序列化二叉树 -----前序,中序,后序,层序

目录 一.序列化和反序列化 1.什么是序列化和反序列化 二.前序遍历 1.序列化 1.问题分析 2.代码实现 2.反序列化 1.问题分析 2.代码实现 三.后序遍历 1.序列化 1.思路分析 2.代码实现 2.反序列化 1.思路分析 2.代码实现 四.中序遍历 1.序列化 1.思路分析 2.代…

SpringBoot 使用Prometheus采集自定义指标数据

一、我们需要什么指标 对于DDD、TDD等,大家比较熟悉了,但是对于MDD可能就比较陌生了。MDD是Metrics-Driven Development的缩写,主张开发过程由指标驱动,通过实用指标来驱动快速、精确和细粒度的软件迭代。MDD可使所有可以测量的东…

RPC调用框架简单介绍

一.Thrift Apache Doris目前使用的RPC调度框架。Thrift是一款基于CS(client -server)架构的RPC通信框架,开发人员可以根据定义Thrift的IDL(interface decription language)文件来定义数据结构和服务接口,灵活性高,支持…

Leetcode.2583 二叉树中的第 K 大层和

题目链接 Leetcode.2583 二叉树中的第 K 大层和 Rating : 1374 题目描述 给你一棵二叉树的根节点 root和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和(不一定不同)。如果树少于 k 层,则返…

INFINONE XC164单片机逆向记录(5)C166地址系统

本人所写的博客都为开发之中遇到问题记录的随笔,主要是给自己积累些问题。免日后无印象,如有不当之处敬请指正(欢迎进扣群 24849632 探讨问题); 写在专栏前面https://blog.csdn.net/Junping1982/article/details/129955766 INFINONE XC164单片机逆向记录(1)资料准备

Python爬虫知识回顾

之前一直沉溺于java,jsp,ssh,db等爬虫,现在又要开始走python的老路了。常用的requests库,通过requests对象的get方法,获取一个response对象。jsp的东西。 其中timeout,proxies,headers,cookies,verify,是我…

webgl-画指定颜色三角形

html <!DOCTYPE html> <head> <style> *{ margin: 0px; padding: 0px; } </style> </head> <body> <canvas id webgl> 您的浏览器不支持HTML5,请更换浏览器 </canvas> <script src"./main.js"></script&g…

JUC之CountDownLatch与CyclicBarrier

1.前言 在java.util.concurrent包中为我们提供了很多的线程同步工具类&#xff0c;例如CountDownLatch与CyclicBarrier&#xff0c;那么它们主要的用途是什么呢&#xff1f;且看后续分析。 2.CountDownLatch 2.1 什么是CountDownLatch CountDownLatch&#xff0c;顾名思义&…

从ReentrantLock角度解析AQS

一、概述 闲来不卷&#xff0c;随便聊一点。 一般情况下&#xff0c;大家系统中至少也是JDK8了&#xff0c;那想必对于JDK5加入的一系列功能并不陌生吧。那时候重点加入了java.util.concurrent并发包&#xff0c;我们简称为JUC。JUC下提供了很多并发编程实用的工具类&#xf…

风光及负荷多场景随机生成与缩减

目录 1 主要内容 计算模型 场景生成与聚类方法应用 2 部分程序 3 程序结果 4 程序链接 1 主要内容 该程序方法复现了《融合多场景分析的交直流混合微电网多时间尺度随机优化调度策略》3.1节基于多场景技术的随机性建模部分&#xff0c;该部分是随机优化调度的重要组成部分…

记录-css实现交融文字效果

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 CSS是有魔法的&#xff0c;我们今天来实现一个CSS的动画效果&#xff0c;只需要几行代码就可以搞定。 第一步、我们要将一行文字从中间展开 <!DOCTYPE html> <html lang"en"> &…

面试官:聊聊js原型

一分钟了解原型对象 js分为函数对象和普通对象 &#xff0c;每个对象都有__proto__属性&#xff0c;但是只有函数对象才有prototype属性&#xff0c;prototype属性就是函数的原型对象。 比如说 构造函数通过new 实化一个实例对象&#xff0c;实例对象的__proto__ 指向原型对象…

NumPy 基础知识 :6~10

原文&#xff1a;Numpy Essentials 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 六、NumPy 中的傅立叶分析 除其他事项外&#xff0c;傅立叶分析通常用于数字信号处理。 这要归功于它在将输入信号&#xff08;时域&#xff09;分离为以离散频率&#xff08;频域&am…

Spring Boot集成Druid实现多数据源的两种方式

目录 项目场景&#xff1a; 一、集成com.baomidou的方式 1、maven依赖&#xff1a; 2、 配置文件&#xff1a; 3、 使用注解切换数据源&#xff1a; 二、基于AOP手动实现多数据源原生的方式 1、maven依赖&#xff1a; 2、 配置文件&#xff1a; 3、 多数据源名称类 4…

数字中国理念引领国企人力资源数字化转型与实践

3月初&#xff0c;《数字中国建设整体布局规划》出台&#xff0c;作为中国数字经济发展的重要指导性文件&#xff0c;规划提出了数字中国建设的总体目标和战略方向&#xff0c;文件详细阐述了数字中国内涵&#xff0c;包含数字经济、数字社会、数字政府以及数字生态等内涵。《规…

制造企业该如何选择MES生产管理系统?盘点四大生产管理系统软件

本文将介绍&#xff1a;1、如何选择MES(生产管理系统&#xff09;&#xff1b;2、盘点四款好用的生产管理系统 生产管理系统即MES(Manufacturing Execution System)&#xff0c;制造执行系统。是面向车间生产的管理系统。在产品从工单发出到成品完工的过程中&#xff0c;MES系…