SerDes系列之电路技术概述

        现在的高速电路设计中,SerDes的应用几乎无处不在,如下图所示的一款SoC,其外设接口除了少量普通的IO,几乎都是SerDes专用接口,因此,电路设计中对于SerDes接口电路的熟知程度,几乎就决定了设计的成败。

        本文以概述的形式,陈述了SerDes电路设计中的关键技术元素,让读者了解这些基本概念的同时,也为后续的系列文章进行铺垫。

        SerDes有四种架构: 并行时钟、嵌入式时钟、8b/10b编码、位交错,常见的架构是一种基于8b/10b编码并且时钟嵌入进数据流中的架构。

8b/10b编码

        8b/10b编码是由IBM于1983年发明的,旨在解决系统互联以及吉比特(Gbit)数据传输问题。 是指将8bit的数据通过某种编码规则扩展成10bit,保证数据流中的“0”和“1”数量基本一致,通过降低效率来增加传输的数据恢复的可靠性。8b/10b 主要具有以下优点:

        1. 保证直流(DC)平衡:由于串行链路中会有交流耦合电容,信号频率越高,阻抗越低,反之频率越低,阻抗越高。当码型是高频的时候,基本上可以无损耗的传输,但是当码型为连续“0”或者“1”的情况时,电容的损耗就很大,导致幅度不断降低,带来的严重后果是无法识别到底是“1”还是“0”。因此编码就是为了尽量把低频的码型优化成较高频的码型,从而保证低损耗的传输过去。8b/10b编码方式总输出位数是10个,其中“0”与“1”出现组合总共存在三种,分别为“5个位0与5个位1”、“4个位0与6个位1”、“6个位0与4个位1”;

        2. 有利于提取时钟:时钟恢复依赖于“电平跳变沿“(后面会介绍),所以平衡”0“和”1“的数量,可以简化时钟恢复,降低接收机成本;

        3. 方便错误检查:8b/10b编码采用冗余方式,将8位的数据和一些特殊字符按照特定的规则编码成10位的数据,根据这些规则,能检测出传输过程中单个和多个比特误码。

        如图所示,为8b/10b编码的实例展示:

        一个完整的8b/10b SerDes模块,串行器(Serializer)由8b/10b编码器、PRBS码生成器、并串转换电路、差分信号发送器、PLL等模块构成;解串器(De-serializer)包括差分信号接收器、CDR(时钟数据恢复电路)、串并转换电路及8b/10b解码器。

        SerDes是典型的复杂数模混合系统,除编解码实现外,还有PRBS生成和检查、环回测试、自适应算法实现、系统状态控制数字实现等等,需要数字电路和模拟电路、信号与系统、通信原理、微波和射频电路、电磁场、信号和电源完整性等背景知识,对设计者的综合知识要求比较高。

扰码功能

        扰码是一种将数据重新排列或者进行编码以使其随机化的方法,但是必须能够解扰恢复。目的是为了打乱长的连“0”和长的连“1”序列,将数据随机化。扰码产生是通过循环移位寄存器来实现的,而扰码生成多项式决定循环移位寄存器的结构。 这样做的好处还有:能量被分散开,降低了EMI问题,同时又扩展了基带信号频谱,起到了加密的效果。

对齐逻辑

        接收端除了De-serializer之外,一般还有对齐功能逻辑(Aligner)。相对SerDes发送端,SerDes接收端起始工作的时刻需要判断从什么bit位置开始(哪里开始算是第一个数据),以分解组成正确的并行数据。对齐逻辑通过在串行数据流中搜索特征码字(Alignment Code)来决定串并转换的起始位置,这就需要用到了8b/10b的控制字符集,也就是我们常说的“K”字符,常见的K28.5、K28.0、K28.3、K28.4等。

前向反馈均衡(feed-forward equalization/equalizer)

        SerDes信号从发送芯片到达接收芯片所经过的路径称为信道(channel),包括芯片封装、PCB走线、过孔、电缆、连接器等元件。

        从频域看,信道可以简化为一个低通滤波器(LPF)模型(趋肤效应及介质损耗的影响),如果SerDes的速率大于信道的截止频率,就会一定程度上损伤信号(高频被滤掉了,数字信号边沿会变得平滑)。均衡器的作用就是补偿信道对信号的高频损伤。发送端的均衡器采用FFE(Feed forward equalizers)结构,从频域上看,FFE是一个高通滤波器(容易理解,信道损伤是一个低通滤波器,会抑制高频,那么均衡就补偿高频)。从时域上看,又叫加重器(emphasis)。加重分为去加重(De-emphasis)和预加重(Pre-emphasis)。De-emphasis 降低差分信号上升下降沿处的摆幅(swing)。Pre-emphasis增加差分信号上升下降沿处的摆幅。大部分应用会使用De-emphasis的方式,因为去加重补偿后的信号摆幅小,眼图高度低,从而功耗小、EMC辐射量小。

接收均衡器

        接收端均衡器的目标和发送均衡器是一致的。对于低速(<5Gbps)SerDes,通常采用连续时间域、线性均衡器(CTLE)实现,如尖峰放大器(peaking amplifier), 均衡器对高频分量的增益大于对低频分量的增益,增益补偿一般在10dB左右。对于高速(>5Gbps)SerDes,由于信号的抖动(如ISI相关的确定性抖动)可能会超过或接近一个符号间隔(UI,Unit Interval),单单使用线性均衡器不再适用。线性均衡器将噪声和信号一起放大,并没有改善信噪比(SNR)或者误码率(BER)。

        对于高速SerDes,采用一种称作判决反馈均衡(Decision Feedback Equalizer - DFE)的非线性均衡器。DFE通过跟踪过去多个UI的数据(history bits)来预测当前bit的采样门限,从而预测码间干扰。DFE只对信号放大,不对噪声放大,可以有效改善SNR。目前常见的CTLE+DFE均衡的最大增益在20dB左右。

        DFE设计的关键是确定DFE系数,如果DFE的系数接近信道的脉冲响应,就可以获取比较理想的结果。但是信道是一个时变的媒介,比如温度电压工艺的快慢(PVT corner)变化等因素会改变信道的特性。因此DFE的系数需要自适应算法(Self adaptive algorithm),自动补获和跟随信道的变化。这也是实际应用中DFE功能开启的时候,做环境试验的结果很多时候会出问题,因为DFE在信道特性变化的时候,自适应的速度没有跟上。DFE系数自适应算法非常学术,每个厂商的算法都是保密的,不对外公布。

        实际设计中,可以根据通道的插入损耗程度,进行大致的设计评估和功能预判:

        不论是发送端还是接收端的均衡器,本质上都是高通滤波器,因为数字信号采样都希望边沿越抖越好,边沿变缓之后就会产生码间干扰ISI。

时钟数据恢复(CDR)

        CDR( Clock and Data Recovery)即时钟和数据的恢复,是SerDes设计中非常重要的环节。CDR常用的技术有基于数字锁相环(PLL)和基于相位插值器两种。当数据经过时,CDR就会捕获数据边沿跳变的频率,如果数据长时间没有跳变,CDR就无法得到精确的训练,CDR采样时刻就会漂移,可能采到比真实数据更多的“0”或“1”。这就是前文所述为什么在发送的时候采用8b/10b编码或扰码来避免重复出现“0”或“1”,原因之一也在此。所以CDR有一个指标叫做最长连“0”或连“1”长度容忍(Max Run Length或者Consecutive Identical Digits)能力。 恢复了时钟之后,需要恢复数据。首先要将恢复出来的时钟与数据进行对齐(通过调整本地时钟的相位完成对带有通道损伤和各级模块噪声的TX 串行数据的重定时,找到最佳的采样时刻,以使RX本地时钟边沿与TX数据中心位置对齐,实现最佳采样,同时减小Jitter ),然后再将数据给读出来。在硬件原理上,就是使用PLL电路以及触发器。

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

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

相关文章

小米电脑管家-非小米电脑安装教程

​​第一步&#xff1a;去浏览器搜索小米跨终端智联官网 下载小米电脑管家 如果是小米电脑&#xff0c;直接安装就行了 这里主要讲的是不是小米电脑&#xff0c;怎么去安装&#xff1f; 不是小米电脑就需要下载免检测机型插件&#xff0c;不然安装不了的 第二步&#xff1a;…

[Algorithm][回溯][字母大小写全排列][优美的排列][N皇后]详细讲解

目录 1.字母大小写全排列1.题目链接2.算法原理详解3.代码实现 2.优美的排列1.题目链接2.算法原理详解3.代码实现 3.N 皇后1.题目链接2.算法原理详解3.代码实现 1.字母大小写全排列 1.题目链接 字母大小写全排列 2.算法原理详解 本题逻辑与子集大致相同 思路一&#xff1a;每…

STM32-08-串口

文章目录 STM32 串口1. 数据通信的基本概念2. 串口通信协议3. 串口4. 相关寄存器5. MSP回调机制6. HAL库中断回调机制7. USART/UART异步通信配置步骤8. IO引脚复用功能9. 代码实现 STM32 串口 1. 数据通信的基本概念 通信方式&#xff1a; 数据传输方向&#xff1a; 数据同…

革命性GPT-4o:重塑人机交互体验

OpenAI 发布的 GPT-4o 模型无疑是一个巨大的突破&#xff0c;特别是在其能够处理多种输入媒介&#xff08;文本、音频、图像&#xff09;并生成相应输出方面。这种能力使得人机交互更加自然和直观&#xff0c;极大地提升了 AI 的实用性和可用性。GPT-4o 的几个关键亮点包括&…

Springboot+Vue项目-基于Java+MySQL的火锅店管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

【Linux:环境变量】

环境变量一般是指在操作系统中用来指定操作系统环境的一些参数 常见的环境变量&#xff1a; PATH 指定可执行程序的搜索路径 系统级的文件&#xff1a;/etc/bashrc 用户级文件&#xff1a;~/.bashrc ~/.bash_profile HOME 指定用户的主要工作目录&#xff08;当前用…

如何下载小米壁纸到本地分享给他人

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 操作方法 📒🚥 注意事项⚓️ 相关链接 ⚓️📖 介绍 📖 你是否曾被小米主题壁纸软件中的精美壁纸所吸引,却苦于无法将其下载到本地或与朋友分享?本文将为你揭晓如何将小米壁纸下载到本地分享给他人! 🏡 演示环境 �…

UVM寄存器模型——手写Ralf问题debug

寄存器模型是UVM中至关重要的一部分&#xff0c;如果没有寄存器模型&#xff0c;那么验证平台对于DUT内寄存器的访问方式将十分有限&#xff0c;对DUT运行状态的把控也会变得更为复杂。 在验证过程中&#xff0c;scoreboard或者其他验证组件经常需要了解当前时间某个寄存器的值…

【Python】图像批量合成视频,并以文件夹名称命名合成的视频

一个文件夹中有多个子文件夹&#xff0c;子文件夹中有多张图像。如何把批量把子文件夹中的图像合成视频&#xff0c;视频名称是子文件夹的名称&#xff0c;生成的视频保存到指定文件夹&#xff0c;效果记录。 代码 import os import cv2def create_video_from_images(image_f…

位运算概述

首先 位运算这个东西在考试中十分容易考&#xff0c;所以要多多看一看位运算的相关知识&#xff0c;多刷一刷题之类的。 位运算的概念 位运算就是二进制数据进行运算的运算符。 注意&#xff1a;通常我们用二进制补码来表示&#xff0c;补码的符号位也是要参与运算的。 通常的…

番外篇 | 一文读懂卷积神经网络(CNN)的基础概念及原理

前言:Hello大家好,我是小哥谈。卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,主要用于图像识别和计算机视觉任务。本文旨在对卷积神经网络进行详细的讲解,从基本原理到实际应用,帮助读者全面了解CNN的工作原理、优势和基本组成等,以及其在现实生…

HNU-算法设计与分析-作业3

第三次作业【动态规划】 文章目录 第三次作业【动态规划】<1>算法实现题 3-1 独立任务最优解问题<2>算法实现题 3-4 数字三角形问题<3>算法实现题 3-8 最小m段和问题<4>算法实现题 3-25 m处理器问题 <1>算法实现题 3-1 独立任务最优解问题 ▲问…

巴伦电路的原理及设计

本文档是针对Appcad帮助文档及si4468等电路设计内容的整合&#xff0c;参考了其中的内容。 1.巴伦的传输线与集总电路转换简述 巴伦是一种在平衡和非平衡电路连接之间进行转换的电路。balun 一词是由 BALanced 和UNbalanced 两个词的缩写衍生而来的首字母缩写词。不平衡连接也…

svn如何远程访问?

svn&#xff08;Subversion&#xff09;是一种版本控制系统&#xff0c;广泛应用于软件开发领域。它能够追踪文件和目录的变化&#xff0c;记录每个版本的修改内容&#xff0c;并允许多人协同开发。svn的远程访问功能允许开发人员可以在不同的地点访问和管理代码&#xff0c;提…

AIGC时代已至,你准备好抓住机遇了吗?

一、行业前景 AIGC&#xff0c;即人工智能生成内容&#xff0c;是近年来人工智能领域中发展迅猛的一个分支。随着大数据、云计算、机器学习等技术的不断进步&#xff0c;AIGC已经取得了显著的成果&#xff0c;并且在广告、游戏、自媒体、教育、电商等多个领域实现了广泛应用。…

24年湖南三支一扶报名流程图及报名照片要求

24湖南三支一扶报名流程图&#xff0c;照片要求☑️ ✔️报名时间&#xff1a;5月15日9:00至5月23日17:00 ✔️报名方式 报考人员登录市州人力资源社会保障局官网、市州人事考试网等查看各地公告&#xff0c;按要求报名。 ✔️报名流程&#xff08;湖南各地市单独报名&…

EtherCAT通信特点_7

一个 EtherCAT 数据帧足以完成所有节点控制数据的发送和接收。 question&#xff1a;数据会不会超过限制&#xff1f; 一个 EtherCAT 数据帧足以完成所有节点控制数据的发送和接收&#xff0c;这种高性能的运行模式克服了前面章节描述的各种问题&#xff01; EtherCAT 主站发送…

分布式计算、并行计算、网格计算、边缘计算

分布式计算 分布式计算是一种计算方法&#xff0c;它将一个大型的计算任务分解成多个子任务&#xff0c;并将这些子任务分布在网络上的多台计算机&#xff08;节点&#xff09;上同时执行。这些节点通过通信网络协同工作&#xff0c;共同完成任务。每个节点可以独立处理自己的…

VS2022如何添加现有项

以 想在队列里&#xff0c;使用堆栈的.c&#xff0c;.h文件 为例 目录 1.复制堆栈的.c&#xff0c;.h文件 ​编辑 2.打开队列所在项目的文件夹 3.粘贴堆栈的.c&#xff0c;.h文件 4.在头文件和源文件添加相应的堆栈的.c&#xff0c;.h文件 1.复制堆栈的.c&#xff0c;.h文件…

【Python探索之旅】元组

元组的作用 遍历 修改 元组运算符 索引和切片 加法运算符 重复运算符 比较运算符 完结撒花 前言 元组(tuple)是一种静态的(immutable)或者说是不可变(unchangeable)的数据结构&#xff0c;里面的元素按照一定的顺序排列。它是静态的&#xff0c;所以元组里的元素不能被…