高速串行总线设计基础

高速串行总线设计(1)

高速信号设计涉及到方方面面的知识积累,也许你认为即使没有掌握甚至没有听过一些高速设计的专业术语,也没有关系?因为专业集成的IP可以帮你解决这一问题,但殊不知,根基不牢,地动山摇,基础不牢固,你永远成不了一个expert,甚至成不了一个出色的工程师。

芯片间通信的时序模型

高速串行总线设计基础(一)同步时序模型介绍-腾讯云开发者社区-腾讯云

系统同步

所谓的系统同步,即在IC之间通信中,外部公共时钟应用于两个IC之间,并用于数据发送以及接收。系统同步是最常用的同步方式,其示意图如下:

系统同步电路

源同步

所谓的源同步,即两个IC之间通信,发送IC会生成一个伴随数据的时钟,接收IC使用此转发时钟进行数据接收。

源同步电路图
这种同步方式的特点是时钟副本与数据一同发送到目的IC。
由于数据与时钟一起发送,因此需要调整转发时钟的输出时间,数据线与时钟线的走线长度必须匹配。
其时序模型如下:

源同步时序模型

自同步

所谓自同步,即两个IC之间同步,其中发送IC生成的包含数据和时钟的流发送至接收IC。自同步的电路图如下:


自同步电路图
如果你曾使用过高速串口相关的IP或者高速串口相关的协议,你会发现很多高速串口使用这种方式进行数据传输。例如Xilinx的Transceiver以及基于Transceiver的几乎所有其他高速协议,如aurora,srio等。
其时序模型如下:

自同步时序模型
可见,自同步接口主要有三个部分:

  1. 并串转换

  1. 串并转换

高速串行总线设计基础(二)1

高速串行总线设计基础(二)什么是MGTs以及MGTs的优势在哪里?-腾讯云开发者社区-腾讯云
为什么后来就往高速串行总线方向发展了呢?
几乎任何地改变都是趋利避害:拿芯片间通信为例,过去几乎完全是并行总线,碍于技术限制,使用串行总线所需的serialize(串行化)以及deserialize(解串行化)所需的逻辑量远远超过了减少引脚数量所带来的节省。得不偿失!
这样的时代过去了,如今芯片能做到7nm以下,在极小的硅中可以实现数量惊人的逻辑,serdes可以以非常低的成本包含在零件中,优势还远非如此,总之,技术的突破让高速串行总线技术引领了未来。

并行传输

avalon总线,axi总线以及axi 总线的变体axi stream以及axi framing等都是芯片内进行并行传输,以aurora的用户端信号axi framing以及axi streaming总线为例,它们在转换成串行比特流之前都是以并行的形式存在,所以,串并行总线都是相辅相成的,用途不同。
在并行传输中,通常使用附加的控制线为数据赋予不同的含义。如下图axi framing的通过valid,ready以及last等一系列控制信号控制数据的传输。

串行传输


重点
在Xilinx的Transceivers中,我们还可以知道,Xilinx芯片内部会把4个Transceiver通道原语(专用硬件结构)(GTXE2_CHANNEL)以及时钟模块(GTXE2_COMMON)合称为一个Quad,十分好理解,Quad就是四的意思呀。

MGTs的优势

带宽高

这个就不用赘述了吧,上了以Xilix的FPGA为例,说了随随便便一个7系列的FPGA,就有很多个MGT Bank,每个Bank上都有4通道的Transceiver,一个通道的数据率就能达到好几Gbps,多个呢?更何况Ultrascale架构的FPGA呢?带宽大的优势很明显,对于雷达领域,视频领域等都是刚需。

引脚数量少

引脚数是试图将大量数据移入或移出芯片或电路板时遇到的第一个问题。输入和输出引脚的数量始终受到限制。串行总线相对于并行总线而言,很明显的一个优势就是节省引脚,尽管高速串行总线总是使用差分总线来进行数据传输,但相对于并行总线,引脚使用量仍然微不足道。

高速串行总线设计基础(三)SERDES的通用结构介绍

高速串行总线设计基础(三)SERDES的通用结构介绍-腾讯云开发者社区-腾讯云

SERDES的基本构造


SERDES框图
由发送线,接收线,串行化模块核解串行化模块,时钟管理模块,编码解码模块,发射接收缓冲模块(FIFO)以及Alignment模块
一般而言,1对称之为X1模式,2对X2,以此类推,n对即Xn。这类差分信号线越多,传输数据的带宽就越大,假如一对差分信号线的传输带宽为3.125Gbps,则n对为n*3.125Gbps。
为什么会有上图中的Transmit and Receiver buffers/FIFO呢?
该模块的一个最重要的作用就是进行跨时钟域转换!由于SERDES中涉及的时钟不只有一个,拿我们的Xilinx的Transceiver的一个通道的发射部分而言,如下图:

高速串行总线设计基础(四)眼图的形成原理

高速串行总线设计基础(四)眼图的形成原理-腾讯云开发者社区-腾讯云

高速串行总线设计基础(五) 揭秘SERDES高速面纱之多相数据提取电路与线路编码方案

解读ADC采样芯片(EV10AQ190A)的工作模式(单通道模式)_adc芯片怎么采集差分信号_李锐博恩的博客-CSDN博客

多相数据提取电路

采取多相位时钟处理数据的技术应用十分广泛,例如ADC芯片:EV10AQ190A,它的单通道模式就利用了多相位时钟技术对模拟信号进行采样:

8B/10B编解码

8b / 10b编码方案是由IBM开发的,已经被广泛采用。它是Infiniband,千兆位以太网,光纤通道和10千兆位以太网的XAUI接口中使用的编码方案。它是一种值查找类型的编码方案,其中将8位字转换为10位符号。这些符号确保了时钟恢复的跳变次数。

运行差异(Running Disparity)

通过一种称为运行差异的方法,可以在8b / 10b中实现DC平衡。实现DC平衡的最简单方法是仅允许具有相同数目的1和0的符号,但这将限制符号的数量。 相反,8b/10b使用两个不同的符号分配给每个数据值。**在大多数情况下,其中一个符号有6个0和4个1,另一个符号有4个0和6个1。监视1和0的总数,并根据需要选择下一个符号,使线路恢复直流平衡。这两个符号通常被称为+和-符号。**符号示例见下表。

控制字符

刚才的表格中的以D开头的字符成为数据字符,它代表的是数据信息;其实不只有数据信息,高速串行总线传输的还有控制字符,如下: 下表列出了12个特殊符号的编码,这些符号称为控制字符或K字符。

Comma 检测

我们怎么知道符号的边界在哪里?**符号是由逗号划定的。**在这里,逗号是指定为逗号或对齐序列的一个或两个符号。这个序列通常在收发器中可设置,但在某些情况下,它可能是预定义的。

加扰技术

由于8B/10B编码技术,会添加额外的bit对数据进行编码,从而增加了带宽的开销;例如要获得2.5Gb的带宽,需要3.125Gbps的线速率。 加扰技术可以轻松解决时钟转换和直流偏置问题,而无需增加带宽。

什么是加扰技术呢? 即一种对数据进行重新排序或编码的方法,以使其看起来是随机的,但可以被加密。
加扰是一种对数据进行重新排序或编码的方法,以使其看起来是随机的,但仍然可以不加扰。我们希望随机化器可以打破长期的零和一。显然,我们希望解扰器对比特进行解扰,而无需任何特殊的对齐信息。此特性称为自同步编码。

高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求

高速串行总线设计基础(六)揭秘SERDES高速面纱之数据包与参考时钟要求

数据包介绍

熟悉Xilinx的Transceiver的工程师一定知道,Xilinx有很多基于Transceiver的高速串行协议,例如aurora,srio,pcie等,它们都有自己的数据包,当然自己还可以自定义协议,例如跑Transceiver裸核时候就可以自由定义协议,协议也定义数据包等,只要通信双方都按照这个协议走,就没有任何问题。 下面给出数据包的定义:数据包即定义明确的字节集合,由头,数据和尾部组成。


总结:包中的不同的数据段,可以通过发送符号进行标注,在没有信息发送时也可以通过发送符号实现链路保持对齐的功能

千兆位收发器(MGT)的输入或参考时钟具有非常严格的规格。它包括严格的频率要求,通常以频率误差的百万分之几(PPM)指定。它还将有严格的抖动要求,以时间单位(皮秒)或单位间隔(UI)来定义。 下面介绍这几个专业术语:
PPM( Parts per million):百万分之一;一种描述很小比例的方法。 PPM的应用很广泛,在其他领域也有应用,例如:
UI(Unit intervals): 时间间隔
Jitter:抖动,理想过渡位置的变化

这样严格的要求使得PLL和时钟提取电路能够工作。这往往需要在使用MGT的系统中的每块印刷电路板(PCB)上安装一个精确的晶体振荡器。这些晶体振荡器比大多数用于数字系统的晶体振荡器高一档,成本会更高。
在很多情况下,时钟生成芯片和PLL的抖动太多,无法使用,因此需要选择一种低抖动的晶体振荡器。

高速串行总线设计基础(七)揭秘SERDES高速面纱之时钟校正与通道绑定技术

高速串行总线设计基础(七)揭秘SERDES高速面纱之时钟校正与通道绑定技术

时钟校正

时钟校正技术是高速串行总线中几乎必要的技术,例如Xilinx 7系列的Transceiver**,使用了一个弹性缓冲空间即FIFO**来做时钟校正:

因为CDR得到的时钟与接收时钟可能不相同,那么通过FIFO进行一个缓冲:
缓冲的算法:

  1. 如果FIFO太空,往里面加一些无用的字
  2. 如果FIFO太满,则把无用的字读出来

为了使得两端的时钟速率近似,不出现FIFO满以及FIFO空的情况

通道绑定技术


由于在进行多lane的数据传输时,为了使得多lane 的数据能够快速的串行输出,需要通过发送多个字符,使得知道字符的偏移量从而确定偏移的大小,并将之修正,实现通道绑定
通道绑定允许MGT补偿多个通道之间的偏移。MGT都会同时传输一个通道绑定字符(或字符序列)。当接收到该序列时,接收的MGT可以确定它们之间的偏移,然后调整其接收数据通路中的FIFO的延迟来进行补偿。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值