1

腾搏tengbo168官网-www.tengbo168.com-官网

腾搏tengbo168官网
解决方案

光润通网络传输解决方案

技术解决方案 行业解决方案 定制化解决方案

客户成功案例

查看光润通网络解决方案在各行业的成功应用,了解客户对光润通的评价。

了解更多信息>
服务与支持

服务宗旨

你的满意是光润通毕生的追求,

您的烦恼也是困扰光润通的烦恼,

请将你的声音传达给我们,

让我们为你竭心尽力!

光纤网卡
关于光润通

我们的使命

加强产业核心技术和前沿技术研发并转换成生产力,让中国自己的民族企业支撑和指引整个高端光产业的健康发展。

光纤网卡
官方商城
选择语言
  • 中文简体 English
  • 腾搏tengbo168官网 > 新闻资讯 > 技术解析
  • 详解FPGA的10G以太网接口调试

  • 发表时间:2021年03月22日
  • 随着FPGA在数据中心加速和Smart NIC在SDN和NFV领域的广泛应用,基于以太网接口的FPGA开发板越来越受到关注。而更高速率的以太网接口技术则是应用的关键,本文将详细介绍基于FPGA的10G以太网接口的原理及调试技术。


    1、10G以太网结构

    10G以太网接口分为10G PHY和10G MAC两部分。如下图所示。

    详解FPGA的10G以太网接口调试(图1)


    本设计中使用了Xilinx公司提供的10GEthernet PCS/PMA IP核充当连接10GMAC的PHY芯片,然后将该IP核约束到光模块上构建完整的物理层。需要说明的是本设计主要是完成以太网二层逻辑设计,不涉及PHY层的逻辑设计,如:bit同步、字节同步、字同步、64b/66b编解码等。


    2、10G以太网接口PHY

    10G EthernetPCS/PMA的整体结构如图5.2所示,其核心是基于RocketIO GTH/GTX来实现的。从图中可知,该模块分为PCS层和PMA层,对于发送数据,PCS层主要功能是对数据进行64B/66B编码、扰码、发送变速等功能。同时在测试模式下还提供了一个测试激励源,用于对链路进行检测。PMA层的主要功能是提供并串转换、对串行信号进行驱动并发送等功能。对于接收数据,PMA层的主要功能是将接收到的高速差分信号进行串并转换、bit同步、时钟恢复等功能,PCS层对于从PMA层接收到的数据进行块同步、解扰码、64B/66B解码、弹性缓存等。同时在测试模式下还提供测试激励检测功能,用于检测链路工作状态。


    详解FPGA的10G以太网接口调试(图2)


    在接口调试过程中,可能用到PMA层的近端环回和远端环回功能。PMA近端回环,用于测试IP核内部自回环;PMA远端回环,用于将接收到的远端10G PHY发送的的数据在PMA层直接回环发送给远端10G PHY,而不经过本地的PCS层。


    3、10G以太网接口时钟布局设计


    由于10G Ethernet PCS/PMA是Xilinx官方提供的一款IP核,所以我们需要做的工作是结合开发板的实际情况,为该IP核以及其他模块设计合理的时钟电路,使其能够正常工作。本文选用Xilinx VC709开发板作为上板调试的硬件平台,因此我们的时钟布局需要充分考虑此开发板的结构来设计,具体的时钟布局如图5.3所示。


    详解FPGA的10G以太网接口调试(图3)


    由于VC709开发板连接光模块的Quad并没有直接输入的参考时钟,而是连接到一对SMA接口,因此我们将156.25Mhz晶振产生的时钟经过FPGA内部的IBUFDS、OBUFDS驱动后输出到另一对SMA接口,并通过同轴电缆将两对SMA接口互联,从而使连接光模块的Quad具有输入参考时钟。


    对于FPGA内部的时钟布局主要分为以下4部分:

    (a)输入的差分参考时钟经过一个参考钟专用缓存(IBUFDS_GTE2)变为单端时钟refclk,然后将refclk分为两路,一路接到QPLL(QuadraturephasePhase Locking Loop),另一路时钟经过一个BUFG后转变为全局时钟coreclk,继续将coreclk分为两路,一路作为10G MAC核XGMII接口的收发时钟(xgmii_rx_clk和xgmii_tx_clk),另一路用于驱动10G Ethernet PCS/PMA IP核内部用户侧的逻辑。


    (b) 对于QPLL输出的两路时钟qplloutclk和qplloutrefclk,主要是用于IP核内GTH收发器使用的高性能时钟,其中qplloutclk直接用于驱动GTH内发送端的串行信号,其频率为5.15625GHz。qplloutrefclk用于驱动GTH内部部分逻辑模块,频率为156.25MHz。


    (c) txoutclk是由10G Ethernet PCS/PMA IP产生的一个322.26MHz的时钟,该时钟经过BUFG后分为两路,其中txusrclk用于驱动IP核内GTH的32bits总线数据,txusrclk2用于驱动IP核内PCS层部分模块。


    (d)200MHz的晶振产生差分时钟输入到FPGA内的PLL(Phase LockingLoop)模块,PLL模块以200MHz差分钟为驱动时钟生成192MHz用户钟(sys_clk)发送给10G MAC核用户侧。


    4、仿真验证

    在本节中我们主要是对10G MAC核和10G Ethernet PCS/PMA IP核进行联合仿真测试,用于检测两个模块结合后能否稳定运行。具体的测试原理如图5.4所示。

    详解FPGA的10G以太网接口调试(图4)

    将10G Ethernet PCS/PMA IP核的高速串行差分信号的输入输出相连,实现回环测试。我们在10G MAC核的用户侧的设置一个数据源用于发送数据帧,数据经过MAC核后转变为标准以太网帧,通过XGMII接口发送到10G Ethernet PCS/PMA IP核,10G Ethernet PCS/PMA IP核将其变为高速串行差分信号输出,高速串行差分信号经过回环被10GEthernet PCS/PMA IP核接收,重复上述过程的逆过程,最终数据在10G MAC核的用户侧接收接口被恢复。本测试具体分为3个步骤:定长最短帧(64Bytes)仿真测试、定长最长帧(1518Bytes)仿真测试、随机帧长仿真测试。在每一个测试步骤中,我们要尽可能模拟10Gbps的业务流。对于数据的检测,我们不但要对比波形是否正确,还要将10GMAC核用户侧的收发数据分别记录到两个文档内,并使用软件对两个文档内的数据对比来判断收发数据是否一致。由于篇幅限制,我们只给出定长最短帧的仿真结果截图。

    详解FPGA的10G以太网接口调试(图5)

    图5.5 定长最短帧仿真图

    详解FPGA的10G以太网接口调试(图6)


    随着以太网接口速率的提升,10G、20G、40G甚至100G的以太网接口应用越来越广泛,具体来讲主要有两个关键的应用领域。


    1、数据中心加速。

    在一些数据中心采用10G或者更高速率的以太网接口加FPGA的模式,可以在数据进入到服务器之前采用硬件的方式进行快速的处理,降低服务器CPU的负荷,见本公众号之前文章:深度 | 如何评价微软在数据中心使用 FPGA ?;


    2、SDN/NFV

    把上面的应用场景扩展一下,就可以把带有FPGA的以太网卡用来降低各种各样场景下的CPU负荷,目前较为流行的概念是SMART NIC即智能网卡,其核心是通过FPGA(现场可编程门阵列)协助CPU处理网络负载,编程网络接口功能,具有以下特征:

    通过FPGA本地化编程支持数据面和控制面功能定制,协助CPU处理网络负载;

    通常包含多个端口和内部交换机,快速转发数据并基于网络数据包、应用程序套接字等智能映射到到相关应用程序;

    检测和管理网络流量。


    Smart NIC能够提升应用程序和虚拟化性能,实现软件定义网络(SDN)和网络功能虚拟化(NFV)的诸多优势,将网络虚拟化、负载均衡和其他低级功能从服务器CPU中移除,确保为应用提供最大的处理能力。与此同时,智能网卡还能够提供分布式计算资源,使得用户可以开发自己的软件或提供接入服务,从而加速特定应用程序。


    目前业界提供基于FPGA的Smart NIC的厂商包括Accolade、BittWare、Enyx、Ethernity、Napatech、Netcope、Reflex CES、Silicom和Solarflare,通常集成自Intel或Xilinx的FPGA来实现。此外,Broadcom,Cavium,Intel,Kalray,Mellanox,Netronome,Silicom和SolidRun均可提供基于处理器的Smart NIC,使用带有集成处理器内核或FPGA的处理器或智能I/O处理器;亚马逊和谷歌已经开发了Smart NIC ASIC。

    分享:
    Baidu
    sogou