FPGA如何发出高速串行信号

描述

欢迎各位朋友关注“郝旭帅电子设计团队”公众号,本公众号会定时更新相关技术类资料、软件等等,感兴趣的朋友可以浏览一下本公众号的其他“模块”,希望各位朋友都能在本公众号获得一些自己想要的“东西”。

本篇主要讨论FPGA如何发出高速串行信号。

高速串行通信的“高速”一般比较高,基本至少都会上G。如果利用FPGA内部的LUT、触发器和普通IO是无法满足这样高的输入输出速率的。

例:假设线速度需要跑到1G,那么我们FPGA内部逻辑就需要跑到1GHz,才可以对外发出1G的bit流(即使采用DDR的方式发出,也需要内部500MHz)。这么高的频率,FPGA内部一般是无法达到的。

那么FPGA是如何实现这种高速输出和输入的呢?

FPGA内部除了LUT、触发器和IOB以外,厂商还在FPGA内部加入了很多可配置的硬核电路,高速收发器就是其中之一(并不是所有的FPGA都有)。

那么这个高速收发器的电路怎么理解呢?

可以先这么认为,对于输出来说它就是一个升频降位宽的电路。

FPGA

注:输出不一定有时钟输出

例:输入时钟125MHz,数据并行10bit;经过高速发送器后,可以变为输出速率为1.25GHz,数据为串行1bit;

此时FPGA内部只需要运行再一个相对较低的频率,进行并行处理数据即可。

对于输入来说它就是一个降频增位宽的电路。

FPGA

注:输入不一定有时钟输入

例:输入时钟1.25GHz,数据串行1bit;经过高速接收器后,可以变为输入速率为125MHz,数据为并行10bit;

此时FPGA内部只需要运行再一个相对较低的频率,进行并行处理数据即可。

下面简单介绍一下FPGA内部的高速收发器(主要以Xilinx的A7 FPGA为例,其他的“大概”大同小异)。

FPGA内部的高速收发器一般称为GT(GT的意思是Gigabyte Transceiver),速度根据器件的不同能够支持的速率也不相同。在Xilinx 7系列的FPGA中,按支持的最高线速率排序,GTP是最低的,GTZ是最高的。GTP被用于A7系列,GTZ被用于少数V7系列。从K7到V7,最常见的是GTX和GTH。GTH的最高线速率比GTX稍微高一点点。

下图是Xilinx A7 FPGA内部的高速收发器(GTP)。

FPGA

GTP对外的管脚也不是普通的IO,必须得是专门的IO(单独的bank)。

下图为A7 FPGA 的支持GTP的bank(一般称为MGT:Multi-Gigabit Transceiver         bank)。

FPGA

上述的电路图中有四路收发器(一发一收称为1路收发器,收发都是差分信号)。四路收发器被称为一个 Quad GT。

FPGA

每一路的收发器的内部如下:

发送器:

FPGA

接收器:

FPGA

在分析发送器和接收器之前,我们先了解几个名词。

PMA:

PMA是物理介质子层(Physical Medium Attachment),它负责管理电气、时钟和定时等物理层面的信号特性。PMA还处理高速数据传输所需的时序控制和信号重建,并确保信号能够正确地传输到远端接收器。

PCS:

PCS是物理编码子层(Physical Coding Sublayer),它处理数据信号的编码和解码,以及错误检测和校正。PCS负责将逻辑上的数据流转换为物理层面上的数字信号,并通过使用8b/10b编码或128b/130b编码等技术来确保数据传输的可靠性和正确性。

发送器和接收器都是由PCS和PMA组成。相对简化理解:PMA就是发送端并转串,就是接收端串转并。

那么此时我们就可以利用PMA来完成高速串行输入输出。那么PCS有什么作用呢?

在高速串行通信中,为了能够使信号完整的发送到发送方、能够使接收方可以进行CDR,需要对发送的数据进行编码(如果不明白可以查看本公众号文章“高速远距离通信之bit同步和字节同步”)。除了基本的编码外,我们还需要一些通信协议(PCIE、SATA等等)、多通道对齐等一些功能。此时PCS将可以为我们完成一部分。

在使用GT资源时,我们只需要将原码(可能附带一些协议规则)发送给PCS,PCS经过调整后,发送给PMA,PMA就会将数据发送到FPGA外部;外部高速信号进入PMA,PMA将数据交付给PCS,PCS经过调整交付为FPGA内部。此时就完成了高速数据的输入和输出的过程。

当然是用起来还是有一定的难度,后续慢慢的介绍相关内容。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分