找回密码
 立即注册
搜索
查看: 2500|回复: 0

FPGA如何发出高速串行信号

[复制链接]

346

主题

14

回帖

3万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
36982
发表于 2024-8-13 18:25:41 | 显示全部楼层 |阅读模式
本帖最后由 眼镜一米二 于 2024-8-13 18:27 编辑

叁芯智能科技FPGA就业班08月开班中


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

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

       高速串行通信的“高速”一般比较高,基本至少都会上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内部。此时就完成了高速数据的输入和输出的过程。

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|冀ICP备20011060号-2|叁芯智能

GMT+8, 2024-12-22 02:08 , Processed in 0.084174 second(s), 20 queries .

Powered by Discuz! X3.4

© 2017-2018

快速回复 返回顶部 返回列表