7Series FPGA高速收发器使用学习——TX发送端介绍

 7Series FPGA高速收发器使用学习——TX发送端介绍

每一个收发器拥有一个独立的发送端,发送端有PMA(Physical Media Attachment,物理媒介适配层)和PCS(Physical Coding Sublayer,物理编码子层)组成,其中PMA子层包含高速串并转换(Serdes)、预/后加重、接收均衡、时钟发生器及时钟恢复等电路。PCS子层包含8B/10B编解码、缓冲区、通道绑定和时钟修正等电路。对于GTX的发送端来说,结构如图1所示。

 7Series FPGA高速收发器使用学习——TX发送端介绍

FPGA内部并行数据通过FPGA TX Interface进入TX发送端,然后经过PCS和PMA子层的各个功能电路处理之后,最终从TX驱动器中以高速串行数据输出,下面将介绍各个功能电路。

FPGA TX Interface(TX用户接口):TX Interface是用户数据发往GTX的接口,该接口的信号如表1所示。

 7Series FPGA高速收发器使用学习——TX发送端介绍

发送数据接口是TXDATA,采样时钟是TXUSRCLK2,在TXUSRCLK2的上升沿对TXDATA进行采样。TXUSRCLK2的速率由线速率、TX Interface接口位宽和8B/10B是否使能决定(TXUSRCLK2频率 = 线速率 / TX_DATA_WIDTH ;比如线速率是10Gb/s,TX_DATA_WHDTH等于80,那么TXUSRCLK2的频率是125MHz)。TXDATA的位宽可以配置成16/20/32/40/64/80位宽,通过TX_DATA_WIDTH 、TX_INT_DATAWIDTH、TX8B10BEN三个属性设置可以配置成不同的位宽,具体属性如表2所示。

 7Series FPGA高速收发器使用学习——TX发送端介绍

GTX的TX Interface分成内部数据位宽和FPGA接口位宽,其中内部数据归属于TXUSRCLK时钟域,FPGA接口数据归属于TXUSRCLK2时钟域,而内部数据位宽支持2byte/4byte,FPGA接口数据位宽支持2byte/4byte/8byte,因此,决定了TXUSRCLK和TXUSRCLK2有一定的时钟倍数关系,TXUSRCLK和TXUSRCLK2的时钟倍数关系如表3所示,其中TX_INT_DATAWIDTH属性设置为“0”,表示内部数据位宽为2byte,如果设置为“1”,则表示内部数据位宽为4byte(线速率大于6.6Gb/s的时候应当置“1”)。

 7Series FPGA高速收发器使用学习——TX发送端介绍

TXUSRLK和TXUSRCLK2时钟是相关联的,在时钟这两个时钟时应该遵循下面两个准则:

1. TXUSRCLK和TXUSRCLK2必须是上升沿对齐的,偏差越小越好,因此应该使用BUFGs或者BUFRs来驱动这两个时钟(因为TX Interface和PCS子层之间没有相位校正电路或者FIFO,所以需要严格对齐,本人自己的理解)。

2. 即使TXUSRCLK、TXUSRCLK2和GTX的参考时钟运行在不同的时钟频率,必须保证三者必须使用同源时钟。

发送端的时钟结构:为了能够更好的理解GTX的发送端如何工作,理解发送端的时钟结构很有必要,图2是发送端的时钟结构图。

 7Series FPGA高速收发器使用学习——TX发送端介绍

其中红框部分和黄底部分的内容是我们需要重点了解的地方,图中的MGTREFCLK是上一篇中提到的GTX的参考时钟,经过一个IBUFDS_GTE2源语之后进入GTX,用以驱动CPLL或者QPLL。对于TX PMA来说,主要实现的功能是并串转换,其并串转换的时钟可以由CPLL提供,也可以由QPLL提供,由TXSYSCLKSEL选择,TX PMA子层里面有三个红色方框部分是串行和并行时钟分频器,作用是产生并行数据的驱动时钟,其中D分频器主要用于将PLL的输出分频,以支持更低的线速率。

÷2/÷4这个选项由TX_INT_DATAWIDTH决定,如果TX_INT_DATAWIDTH为“0”,则选择÷2,反之选择÷4。

对于÷4/÷5,则由TX_DATA_WIDTH决定,如果是位宽是16/32/64,则选择÷4,如果位宽是20/40/80,则选择÷5。

对于TXUSRCLK和TXUSRCLK2由谁驱动呢,官方推荐使用TXOUTCLK驱动,这样做能精简设计,同时稳定,如何使用TXOUTCLK来做TXUSRCLK和TXUSRCLK2的驱动时钟呢,根据TXUSRCLK和TXUSRCLK2的频率关系,以一个Lane为例,图3表示TXUSRCLK=TXUSRCLK2的驱动方式,图4表示TXUSRCLK = 2*TXUSRCLK2的驱动方式。

 7Series FPGA高速收发器使用学习——TX发送端介绍


 7Series FPGA高速收发器使用学习——TX发送端介绍

对于图4,CLKOUT0的值为CLKOUT1的2倍。

TX 8B/10B Encoder:高速收发器的发送端一般都带有8b/10b编码器。目的是保证数据有足够的切换提供给时钟恢复电路,编码器还提供一种将数据对齐到字的方法,同时线路可以保持良好的直流平衡。在GTX应用中,如果发送的是D码,则需要将TXCHARISK拉低,如果是K码,则将相应的TXCHARISK拉高。

用户喜欢...

FPGA加速器卡的PCB设计注意事项

本应用笔记概述了PCI Express卡机电规范3.0版定义的加速器卡形状因子。 它解决了印刷电路板(PCB)设计挑战,从叠层设计到介电材料选择,再到PCB设计过程中使用的PCB制造技术。 该图呈现了典...


使用Zynq UltraScale +器件开发防篡改设计

本应用笔记提供了防篡改(AT)指南和实际示例,以帮助保护ZynqUltraScale+器件支持的系统中可能存在的知识产权(IP)和敏感数据。 这种保护(以防篡改的形式)需要在Zynq UltraScale +器件通过软...


USB Type-C:您需要了解的有关在设备中提供高速串行连接的所有信息

除了比其前代产品更快且能够提供更多功率外,USB Type-C还对这种无处不在的连接标准做出了一些明显的改变。首先,有一个新的可逆连接器,它没有键入,因此可以插入端口。其次,USB Type-C将...


Arduino 环境中的 FPGA:使用 Alorium 的 Snō 模块支持预配置和定制 IP

当固件在微控制器或微处理器上的运行速度过慢时,现场可编程门阵列 (FPGA) 可解决实时嵌入式设计的硬件问题。同时,FPGA 还具有外设灵活性。然而,要使用 FPGA,设计工程师就需要学习全新的...


通过 Arduino MKR Vidor 4000 快速轻松地应用 FPGA

许多设计人员迟早都会发现,微控制器或微处理器上运行的固件可能会变得太慢。现场可编程门阵列 (FPGA) 为此提供了一种可编程方法,以硬件速度来解决高速、实时、嵌入式设计问题。然而,...


使用Arduino MKR Vidor 4000快速轻松地应用FPGA

正如许多设计人员迟早会发现的那样,在微控制器或微处理器上运行的固件可能会变得太慢。这就是现场可编程门阵列(FPGA)提供可编程方式,以硬件速度解决高速,实时,嵌入式设计问题。...


使用FPGA通过机器学习构建高性能嵌入式视觉应用

本文将介绍ML处理的要求以及FPGA解决许多性能问题的原因。然后,它将介绍一个合适的基于FPGA的ML平台以及如何使用它。...


FPGA配置采用高速NOR闪存

NOR闪存被广泛部署为FPGA的配置器件。工业,通信和汽车ADAS应用中的FPGA使用取决于NOR Flash的低延迟和高数据吞吐量特性。快速启动时间要求的一个很好的例子是汽车环境中的摄像机系统。点火后...


为物联网设计添加高性能语音关键字检测:第 1 部分 - 使用 FPGA

随着Alexa、Hey Siri或Hi Google等多个产品成功响应关键词,关键字检测 (KWS) 已成为越来越多嵌入式应用的一项重要要求。虽然典型的先进 KWS 解决方案依赖于复杂的卷积神经网络 (CNN) 和其他深度神...


使用 FPGA 构建具有机器学习能力的高性能嵌入式视觉应用

随着摄像头和其他设备产生的数据在快速增长,促使人们运用机器学习从汽车、安防和其他应用产生的影像中提取更多有用的信息。专用器件有望在嵌入式视觉应用中实现高性能机器学习 (ML...


QDR SRAM接口FPGA 详细Verilog代码

QDR SRAM介绍 QDR 具有独立的读、写数据通路,均使用DDR,在每个时钟周期内会传输四个总线宽度的数据 (两个读和两个写),这就是QDR四倍数据速率的由来。 这里用到的是典型2字突发的QDR,...


Aldec的边缘计算示例: Zynq SoC 的 FPGA架构将嵌入式视觉/ ADAS性能提升了10倍

Aldec的一个应用工程师 Farhad Fallah 在 New Electronics 网站上发表的一篇题​​为生活在边缘的文章最近引起了我的注意,因为它简洁地描述了为什么 FPGA 对于许多高性能的边缘计算应用如此有用...


恒扬数据携手OpenPOWER多家成员共同推进基于CAPI SNAP框架的FPGA加速应用开发

日前,以“智慧链接新智能 创新加速助中国” 为主题2017年OpenPOWER 中国高峰论坛在京隆重召开,包括IBM、赛灵思、英伟达、浪潮、中太服务器、恒扬数据等在内的联盟成员出席了此次盛会并...


LVDS高速ADC接口, Xilinx FPGA实现

LVDS 即Low-Voltage Differential Signaling。FPGA的selecteIO非常强大,支持各种IO接口标准,电压电流都可以配置。其接口速率可以达到几百M甚至上千M。使用lvds来接收高速ADC产生的数据会很方便。像IS...


在机器学习的应用上,软件工程师和FPGA真的有着难以逾越的鸿沟吗?

人工智能和机器学习正在渗透所有的行业。随着人工智能算法的成熟,支持这些算法的硬件平台也日趋成熟。目前,这些硬件平台包括 ASIC,CPU,GPU以及 FPGA 。在 Plunify,尽管我们的强项是F...


FPGA竟然使Apple II个人电脑做回了自己!

背景: 微处理器软核代码开放,那么将源代码用工具例化到FPGA里面是不是就能实现其逻辑功能,当年流行的微处理器成就的一些产品是不是可以再拿出来回味回味呢?答案是肯定的, Micro...