本篇文章给大家分享的是有关SERDES的通用结构是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
简单说来,SERDES的基本框图如下:
大概就是由发送线,接收线,串行化模块核解串行化模块,时钟管理模块,编码解码模块,发射接收缓冲模块(FIFO)以及Alignment模块。其实还有一个由用户根据接口协议的具体内容而自定制的用户逻辑模块,用来产生发送数据以及解析接收数据,这是唯一用户可以灵活处理的地方,也是逻辑工程师可以进行电路设计(Verilog设计)的地方。
其中,发送线即图中tx Line interface以及接收线(Rx Line Interface)是与外部芯片进行交互的串行线路,具体可以分别由一对或者多对差分信号线组成。一般而言,1对称之为X1模式,2对X2,以此类推,n对即Xn。这类差分信号线越多,传输数据的带宽就越大,假如一对差分信号线的传输带宽为3.125Gbps,则n对为n*3.125Gbps。
串行化模块(Serializer)即并串转换(PISO)模块,用户逻辑产生待发送数据,经过8B/10B编码或者其他类型的编码,加扰,进入缓冲区等待操作,最终经过并串转换模块,转换成串行数据通过发送线发送出去。同理,解串行化模块(Deserializer)是串行化模块的逆过程,就是将串行差分线接收的串行数据经过串并转换(SIPO)模块转换为并行数据,之后经过解码,解扰,等操作后的并行数据,交给用户接口,用户进行对该并行数据进行解析。
为什么会有上图中的Transmit and Receiver buffers/FIFO呢?
该模块的一个最重要的作用就是进行跨时钟域转换!由于SERDES中涉及的时钟不只有一个,拿我们的Xilinx的Transceiver的一个通道的发射部分而言,如下图:
可以暂时不用管其他部分,关于Xilinx家的Transceiver,后续文章我会专门介绍。我们仅仅看它的时钟域划分就知道,为什么存在跨时钟域处理这回事了。上图中的Phase Adjust FIFO的作用就是通用SERDES中的Transmit and Receiver Buffers/FIFO的具体设计,解决的问题就是要在两个时钟域之间传输数据,必须进行速率匹配,并且要解决两个时钟域之间的所有相位差,简单来说,就是跨时钟域处理。跨时钟域处理中,FIFO是两个不同时钟域之间数据传输的最常用的处理方式,这无论在什么时候都是笔试面试的重点,我在学生时期准备过相关的内容,见:
FPGA基础知识极简教程(7)详解亚稳态与跨时钟域传输
至于时钟管理模块,那就很明显了,它管理了各种时钟的问题,包括时钟分频倍频以及时钟恢复等。
上面对SERDES的一般架构进行了简单的口述,好像没什么条理,下面给出一个通用的SERDES框图,并对各模块进行简单定义。
如下图,为SERDES的通用框图,它是对上一节中的SERDES框图的一个细化。下面给出各个模块的定义。
可以包括其他可能的功能,例如循环冗余校验(CRC)生成器,CRC检查器,4b / 5b,8b / 10b,64b / 66b的多种编码和解码,可设置的加扰器,各种对齐方式和菊花链选项以及可配置时钟的前端和后端。
下面列举了两家的吉比特收发器的架构,但本文暂时不做具体解释,具体内容会在本系列的后面介绍。
为了简化浏览,我们仅仅给出一个通道的Transceiver的结构(7系列FPGA为例):
Virtex™-II Pro X RocketIO™ SERDES结构框图:
Virtex-II Pro RocketIO SERDES结构框图:
以上就是SERDES的通用结构是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。