FPGA GT 高速收发器的一些认识(一)

高速串行通信的“高速”一般比较高,基本至少都会上G。如果利用FPGA内部的LUT、触发器和普通IO是无法满足这样高的输入输出速率的。
例:假设线速度需要跑到1G,那么我们FPGA内部逻辑就需要跑到1GHz,才可以对外发出1G的bit流(即使采用DDR的方式发出,也需要内部500MHz)。这么高的频率,FPGA内部一般是无法达到的。
那么FPGA是如何实现这种高速输出和输入的呢?
FPGA内部除了LUT、触发器和IOB以外,厂商还在FPGA内部加入了很多可配置的硬核电路,高速收发器就是其中之一(并不是所有的FPGA都有)。
那么这个高速收发器的电路怎么理解呢?
可以先这么认为,对于输出来说它就是一个升频降位宽的电路。如图:
在这里插入图片描述
例:输入时钟125MHz,数据并行10bit;经过高速发送器后,可以变为输出速率为1.25GHz,数据为串行1bit;
此时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)。
在这里插入图片描述
GTP对外的管脚也不是普通的IO,必须得是专门的IO(单独的bank)。
下图为A7 FPGA 的支持GTP的bank(一般称为MGT:Multi-Gigabit Transceiver bank)。
在这里插入图片描述
上述的电路图中有四路收发器(一发一收称为1路收发器,收发都是差分信号)。四路收发器被称为一个 Quad GT。
在这里插入图片描述
在这里插入图片描述
在分析发送器和接收器之前,我们先了解几个名词。
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内部。此时就完成了高速数据的输入和输出的过程。
当然是用起来还是有一定的难度,后续慢慢的介绍相关内容。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值