学习论文:用于数字化传输到处理 FPGA 的高速数据链路优化
( A High speed data link optimization for digitalized transfer to processing FPGA )
ADC 板和运算 FPGA 之间的显著带宽不匹配,收发器数量有限,数据采集速率低于带宽,造成带宽浪费。
通过时域多路复用,解决ADC 板和运算 FPGA 之间的显著带宽不匹配,从而允许使用低成本且收发器数量有限 FPGA。
效果示例:可以将多条线路从 1-5Gbps 组合到大约 5-20Gbps 的更高速度链路。
实现方式:
找到其他应用程序中使用的特定商业 ASIC (Application Specific Integrated Circuit,专用集成电路)来实现 TDM (例如,Texas 仪器的 TDM 系列可对 1-5 Gb 串行链路执行 2:1、4:1 或 8:1 多路复用)。
优点:直接降低了 FPGA 成本和设计,允许使用性能较低的 FPGA,并提供了使用 SOM(System on Module,嵌入式核心板)、COTS板的可能性。
SoM 是一个小型模块,它将 SoC 以及必要的存储器(如 RAM、闪存)、电源管理电路、时钟电路等集成在一个模块上,并提供标准化接口(如 GPIO、I2C、SPI、UART 等)供外部连接。SoM 通常直接焊接或插入到主板上使用。
COTS即Commercial Off-The-Shelf,翻译为“商用现成品或技术”或者“商用货架产品”,指可以采购到的具有开放式标准定义的接口的软件或硬件产品,可以节省成本和时间。
具有聚合概念的 IDM 中间层:
整个FMC模块由子板模块(或称中间层模块)、载卡两部分构成。
子板模块和载卡之间由连接器连接;子板模块上连接器使用公座(male),载卡上连接器使用母座(female)。
载卡连接器引脚与具有可配置IO资源的芯片(例如,FPGA)引脚通过PCB设计连接在一起;子板模块上连接器引脚与IO接口也是通过PCB设计连接起来。
子板PCB上可以设计不同的IO接口实现不同的功能,这样,同一个载卡可以通过子板的设计实现不同的扩展功能,使芯片的应用更加灵活。
按引脚数来分,有400引脚的FMC HPC(high pin connector)和160引脚的FMC LPC(low pin connector)。其排列方式为40行x10列,行由数字1-40排列,列由ABCDEFGHJK顺序表示,LPC相比于HPC行不变,列只有CDGH,且相应引脚定完全一致, 所以LPC和HPC在机械结构和电气特性上是可以互相兼容的。
FMC的引脚分为电源信号引脚、JTAG信号引脚、IIC信号引脚、地址设置引脚、相应的控制检测信号引脚、以及吉比特接口信号引脚(gigabit interface)和普通用户信号引脚(user defined pins)及其时钟信号引脚。其中的信号传输及其时钟信号引脚都是按照差分对标准来定义的。
吉比特接口信号(用DP表示,data pairs)引脚有20对,能够传输10组差分输入输出信号,其电平峰峰值不能超过1V,速度最大能够设计到10Gbit/s。
普通用户在使用时,FMC的部分引脚最好连接到同一个FPGA的Bank上面,保证其引脚电平相等。定义建议连到相同FPGA Bank的引脚分别称为bank A、bank B。对于低引脚数的FMC其bank A信号有34对,高引脚数的有58对,分别可以传输34对和58对差分信号;而bank B只在高引脚数FMC上有,信号对引脚有22对,可以传输22对差分信号。用户定义引脚信号电平采用LVDS和LVTTL信号标准,速度可以设计100Mbps到2Gbps。
参考博客:xilinx的高速收发器构成原理和连接结构、Ultrascale/Ultrascale+ FPGA GTH IP及结构详解
应用场景:高速数据通信场景,如:千兆以太网、光纤通道、串行快速I/O接口等。
zynq UltraScale+ 的GTH最高线率约为13.1Gb/s。
高速接口是以 QUAD 为单位的, 4 对收发器(channel)组成一个 QUAD ,这是收发器的最小单元。
QUAD组成:
QUAD结构图:
注释:
一个channel包含一对tx和rx,每个链路有两个子层:PCS(物理编码子层)和 PMA(物理媒体连接子层)。
tx、rx分别代表发送数据线和接收数据线。
PCS 子层:包含 8B/10B 编解码、缓冲区、通道绑定和时钟修正等电路; PMA 子层:主要进行串并、并串转换、预加重、去加重、串行数据的发送和数据时钟的提取。
tx链路数据处理过程:数据从FPGA逻辑层以并行形式输入,经过PCS层编码、插入控制字符和字对齐后,进入PMA层进行串行化、预加重处理,最终以差分信号的形式传输到物理介质。
详细内容:
数据的直流平衡(DCBalance):在传输数据时,信号的高低电平出现的频率大致相等,从而使得信号的平均电压接近零或一个恒定值。
作用:简化时钟数据恢复(CDR)、减少直流偏移、改善传输距离和质量.
rx链路数据处理过程:数据以差分串行信号从物理介质输入,经过PMA层的CDR、均衡、串行到并行转换,进入PCS层进行解码、字对齐和控制字符处理,最终以并行形式输出到FPGA逻辑层。
详细内容:
因为每一个QUAD有两个外部参考时钟,因此对于每一个QUAD来说,可以选择两个不同的参考时钟,每一个CHANNEL的接收端和发送端都可以独立选择参考时钟,可以选择GTREFFCLK0或GTREFFCLK1。
此外,还可以使用其他Quad的参考时钟(south clk 或 north clk)。
在图中可以看到,REFCLK进来必须要经过一个IBUFDS_GTE,完成差分转单端。
mux可以根据QPLL0REFCLKSEL和 QPLL1REFCLKSEL 选择不同时钟输入端。如下图:
QPLL,其中的Q含义就是QUAD,即一个GTX QUAD公用的PLL。
高速接口时钟连接网络结构:
时钟资源可以布线到任意一个 common 和 channel。每个 QUAD 有一个COMMON 和四个 CHANNEL。高端的高速接口 CHANNEL 中有 CPLL,低端的 GTP 没有 CPLL。
CPLL,即Channel PLL,含义是每一个Channel单独拥有的PLL。
本文章使用limfx的vscode插件快速发布