"); //--> 什么是同源染色体| 什么人喜欢天天下雨| 不自觉摇头是什么病| 什么是员额制| 骏字五行属什么| 8月7日是什么星座| 脸上长黑痣是什么原因| 县教育局局长是什么级别| 改编是什么意思| 脑筋急转弯什么东西越洗越脏| 梦见吃梨是什么意思| 椰子不能和什么一起吃| 男性尿很黄是什么原因| 塑料是什么材料| 拔罐后发痒是什么原因| tct检查是什么检查| senda是什么牌子| 酵母是什么东西| 什么茶属于绿茶| 头发软化和拉直有什么区别| 医生是什么生肖| 鳌虾吃什么| 高考四百分左右能上什么学校| 溦是什么意思| 产妇可以吃什么水果| 女性尿频尿急是什么原因| 汧是什么意思| 胆矾是什么| 中级职称是什么| 医美是什么专业| 什么茶对胃好| 临床路径是什么意思| 为什么低血糖| 痈是什么| cpi指数上涨意味着什么| 耳钉后面的塞子叫什么| 香薰是什么| 蚂蚁的天敌是什么| 乳房钙化灶是什么意思| 不能吃辣是什么原因| 物理压榨油是什么意思| 健康的舌苔是什么样的| 痰多是什么问题| 96122是什么电话| 灵五行属性是什么| 什么药和酒一起吃必死| 什么是靶向药| 咳嗽能吃什么| 打生长激素有什么副作用| 小便浑浊是什么原因| 子息克乏是什么意思| 表现优异是什么意思| 青枝骨折是什么意思| 心脏跳的快吃什么药| 拉肚子拉水是什么原因| 尿液特别黄是什么原因引起的| 心梗有什么症状| 检查血脂挂什么科| 吃避孕药对身体有什么影响| 骨龄偏小意味着什么| 更年期有什么表现| 海尔兄弟叫什么| 乳腺癌长在什么位置| 钓鱼有什么好处| 什么是孤独| 胃炎有什么症状| 祈禳是什么意思| 猝死是什么意思| 尿隐血阳性是什么病| 眼视光医学是干什么的| 什么是善| 失眠吃什么药见效快| 煸是什么意思| 叶酸每天什么时候吃最好| 吃什么代谢快有助于减肥| bkg是什么意思| 肝郁吃什么食物好| 长白班是什么意思| 中性粒细胞绝对值高是什么原因| 养性是什么意思| 直男癌是什么意思| 4.4是什么星座| 着重号是什么符号| 冬虫夏草是什么| 什么是蜘蛛痣图片| 头痛到医院挂什么科| 辛属什么五行| 血糖高的人能吃什么水果| 脚背发麻是什么原因引起的| 魁罡贵人是什么意思| 淋巴结转移是什么意思| 幽门螺杆菌感染有什么症状| 大便黑色的是什么原因| 1904年属什么生肖| 脖子长痘是什么原因引起的| 大圣归来2什么时候上映| 东莞有什么好玩的地方| 口水多是什么原因引起的| 致癌是什么意思| 小丑叫什么| 药店加盟需要什么条件| 排骨烧什么好吃| 土豆与什么食物相克| 吃什么降尿酸最快| 438是什么意思| 什么是天珠| 扁桃体炎吃什么药| 为什么抽烟会上瘾| 扁桃体发炎咳嗽吃什么药效果好| 什么高什么低| 君王是什么生肖| 男人吃韭菜有什么好处| 珠联璧合是什么意思| 冬练三九夏练三伏是什么意思| 二甲双胍不能和什么药一起吃| 肺大泡是什么| 喝酒前吃什么不容易醉| 胎儿腹围偏大说明什么| 什么检查需要空腹| 血压高可以吃什么水果| 夏天吃什么蔬菜| 肺结节不能吃什么食物| 雨对什么字| fzl什么意思| 为什么蝙蝠会飞进家里| 大肠杆菌感染吃什么药| 1981年属什么生肖| 淀粉和面粉有什么区别| 肺部拍片挂什么科| 吃完榴莲后不能吃什么| ebv病毒是什么| 猫不喜欢什么味道| 13什么意思| 什么是幸福| 梦见买衣服是什么意思| 百合是什么植物| 三月29号是什么星座| 中国最高学位是什么| 7.23是什么星座| 多动症看什么科室| 一事无成是什么生肖| 五行木是什么颜色| 早泄吃什么补| 氨是什么| 阴道瘙痒是什么原因造成的| 红色加黑色是什么颜色| 生命线分叉代表什么| 吃什么增强记忆力| 玉屏风治什么病最好| 狗喜欢吃什么食物| 关节痛挂号挂什么科| 炖鸭汤放什么食材最好| 食指戴戒指代表什么| 清影是什么意思| 什么方法减肥最快| cn是什么意思二次元| 三峡大坝什么时候建成的| 下午四点到五点是什么时辰| 促甲状腺激素偏低是什么意思| 忌讳什么意思| 踏马什么意思| 下巴长痘是什么原因| 新生儿黄疸是什么原因引起的| 老是流眼泪是什么原因| 晚上睡觉脚酸痛什么原因| 风情万种的意思是什么| 包皮瘙痒用什么药| 湿气重的人喝四物汤会有什么| 项羽的马叫什么名字| 黑蛇是什么蛇| 黑卡是什么意思| 正月十二是什么星座| 麻疹是什么| 二级以上医院是什么意思| 水漂是什么意思| 晕车药吃多了有什么副作用| 小孩上火了吃什么降火最快| 身上遇热就痒是什么病| 为什么会长闭口| 办理港澳通行证需要什么材料| 阴道菌群失调用什么药| 月经推迟挂什么科| 什么级别可以配秘书| 探囊取物是什么意思| 爱是个什么东西| 大臣是什么意思| 梦见死去的姥姥是什么意思| 呼吁是什么意思| 什么白酒好喝| 白色加红色等于什么颜色| 沉脉是什么意思| 股票放量是什么意思| 男人早泄吃什么药| 儿童流鼻涕吃什么药| sm是什么意思啊| 为什么会得痔疮| 栀子花黄叶是什么原因| 胆汁反流是什么意思| 雀舌是什么茶| 心有余而力不足什么意思| 猴子尾巴的作用是什么| 摩羯座哭了代表什么| 睡觉小腿抽筋是什么原因| 白细胞偏高什么原因| 原始分是什么意思| 脚膜炎用什么药最好| 老虎下山下一句是什么| 侄女叫我什么| 05年属鸡的是什么命| 什么原因不来月经| 7.17是什么日子| 阑尾炎吃什么药见效快| 肚脐眼左边疼是什么原因| 什么东西倒立后会增加一半| 血糖是什么意思| 白细胞正常c反应蛋白高说明什么| 男人补身体吃什么好| 擎天柱是什么车| 小暑吃什么水果| 鸟加衣念什么| 牙周炎挂什么科| vps是什么| 7月8号什么星座| 西红柿和什么搭配最好| 什么可以代替润滑油| imax是什么意思| 家里出现蜈蚣是什么预兆| 丝瓜只开花不结果是什么原因| 云南有什么少数民族| 芊芊学子是什么意思| 脚凉是什么原因造成的| 椰子水是什么味道| 陶和瓷有什么区别| 尿路感染吃什么药消炎| 余田是什么字| 肾积水吃什么药| 01年属什么的| 啤酒花是什么| 办理残疾证需要什么材料| 张三李四王五赵六后面是什么| 儿茶是什么中药| 牙髓炎吃什么药最有效| 灵魂契合是什么意思| 为什么广西女孩子好娶| 频发室性早搏吃什么药| 身份证后4位代表什么| 牙釉质是什么| 煤气是什么味道| 渝北区有什么好玩的地方| 如法炮制是什么意思| 泰州有什么好玩的地方| 吃鱼有什么好处| 维生素b12又叫什么| 月经期间不能吃什么水果| 脑梗原因是什么引起的| 私生粉是什么意思| 草包是什么意思| 肚子容易饿是什么原因| 蹒跚什么意思| 脱落细胞学检查是什么| 血脂高可以吃什么水果| 河虾吃什么| 在水一方是什么意思| 就这样吧是什么意思| 百度
新闻  |   论坛  |   博客  |   在线研讨会
10G 以太网接口的FPGA实现,你需要的都在这里了
FPGA小师兄 | 2025-08-04 11:14:35    阅读:4833   发布文章

随着FPGA在数据中心加速和Smart NIC在SDN和NFV领域的广泛应用,基于以太网接口的FPGA开发板越来越受到关注。而更高速率的以太网接口技术则是应用的关键,本文将详细介绍基于FPGA的10G以太网接口的原理及调试技术。欢迎留言讨论。

10G以太网接口简介

1、10G以太网结构

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


本设计中使用了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解码、弹性缓存等。同时在测试模式下还提供测试激励检测功能,用于检测链路工作状态。


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

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

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


将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核用户侧的收发数据分别记录到两个文档内,并使用软件对两个文档内的数据对比来判断收发数据是否一致。由于篇幅限制,我们只给出定长最短帧的仿真结果截图。


图5.5 定长最短帧仿真图

图5.6 定长最短帧收发数据对比图

10G以太网接口板级调试

1、工程设置

软件环境为VIVADO2016.2,芯片设置为xc7vx690tffg1761-2 (active),板子采用Xilinx的VC709开发板。

VC709开发板实物图

Vivado选择FPGA型号界面

首先选择IP核,在界面中选择10G Ethernet Subsystem,PCS/PMA选择 BASE-R,位宽选择为64bit,其他标签中的选项默认即可。





待IP核生成结束之后,右键IP核,选择Open Ip Example Design,VIVADO便会自动生成一个Example Design,如下图所示:

此时example design设置完成,此时的工程中自带一个数据源,即

axi_10g_ethernet_0_gen_check_wrapper模块,但此数据源通过函数产生数据,不能综合,所以为配合Testcenter打流测试,将此数据源删掉。

为方便进行管脚分配,在生成的example design上新生成了一个顶层文件,并在此顶层模块中将用户侧输入输出的数据接在一起,实现MAC核的自回环。


此外在xdc文件中,管脚分配如下图所示:


2、上板验证

板级验证环境连接图如下,通过10G TestCenter用光口给VC709板子打流,在VC709板子的690T FPGA内部编写逻辑进行用户侧的环回,通过观察连接TestCenter的配置PC机上界面,就可以判断回环的测试是否成功。

通过10G Testcenter打流测试,首先配置测试环境,帧长为随机帧长(64~1518),速率设置为10G(实际设置为9.9G,当满速10G时Testcenter会出现一些丢帧错误,9.9G不会出现问题,但我们采用自己写的10G以太网MAC核,而非Vivado工具生成的MAC核时,可以支持满负荷线速处理,本文只给出采用Vivado生成的MAC核的演示结果)。


测试结果如下图所示,可以发现数据可以正常收发,且没有丢帧。

并在VIVADO中抓取了用户侧信号,结果如下图所示,数据收发正常。

本例程仅说明回环测试,在实际应用中,数据进来后,就可以用FPGA进行各种需要的处理。如矩阵运算、图像处理、机器学习、压缩、非对称加密、Bing 搜索等。可以大幅度的降低CPU软件的负荷,提高整体的处理能力。

参考时钟管脚分配注意事项

根据第一部分图5.3有关VC709板子时钟布局的介绍,给10G以太网接口提供参考时钟的SMA接口如下图VC709开发板上红色框内标记7和8两个接口,在实际上板调试过程中,需要手动用同轴电缆将两个接口连接起来。

用同轴线连接后的实物图如下所示:

查看用户手册,可以发现7和8接口描述如下。

查看VC709原理图,可以发现对应690T FPGA管脚的参考时钟如下图:

另外,在Xilinx系列开发板中,VC707板子也具有10G的以太网接口,使用方法与VC709相同。

在VC707板子上,需要用同轴线连接的管脚是上图中的9和10。

VC709板子上VC707板子上与10G接口相关的FPGA管脚对比图如下,从图中可以看出,VC709开发板可以接10G的接口数明显多于VC707开发板。

上板调试过程中遇到的问题

1、时序违例问题。

问题描述:在使用软件vivado 2016.2完成对10G以太网接口综合实现后,发现软件报告该工程有几处时序路径的建立时间无法满足,可能会出现时序错误。

查找原因:通过查看时序报告,并结合工程的实际设计了解到,出现问题的位置是10G MAC核的异步FIFO,由于此FIFO的两个时钟为异步时钟,导致软件在对其进行布局布线时无法同时满足两个时钟域的要求,因此出现建立时间报红的问题。

解决方法:由于此FIFO内的核心是一个双口RAM,此RAM本身就可以实现数据的跨时钟域传输,所以,此问题并不会出现时序错误。通过时序约束对几处时序违例的位置的时序路径进行忽略,解决该问题。

2、10G以太网接口无法接收数据的问题

问题描述:在对10G以太网接口进行上板测试时,发现此接口无法从交换机接收数据,10G EthernetPCS/PMA IP核的状态信号显示链路失同步、链路状态为低。

查找原因:由于是接口出现问题,因此使用Xilinx官方提供的专用测试接口的ibertIP核对其进行测试,发现ibert的近端PCS回环和PMA回环都可以通过测试,但是在使用外部光纤进行回环时无法通过测试,因此分析可能是光模块的问题导致10G以太网接口无法接收数据。通过查阅开发板VC709的官方手册后发现,此开发板的光模块的默认状态是关闭的,要通过代码对其进行配置才能使光模块正常工作。

解决方法:查阅手册,根据手册对光模块进行配置。再次进行测试,10G以太网接口可以接收数据,问题解决。

3、Vivado 2016.2软件BUG问题

见本公众号之前文章:发现了vivado2016.2版本的一个BUG!

参考文献

[1] Xilinx.ug887-2013.VC709evaluation board for the Virtex-7 FPGA user guide[S].Xilinx, 2013.

[2] Xilinx.ug885-2016.VC707evaluation board for the Virtex-7 FPGA user guide[S].Xilinx, 2016.

[3] 付新宇. 10G HIMAC协处理器关键技术研究.[D].西安电子科技大学,2018.

应用场景

VC709和VC707开发板上还有千兆的接口模式。同时,随着以太网接口速率的提升,10G、20G、40G甚至100G的以太网接口应用越来越广泛,具体来讲主要有两个关键的应用领域。

1、数据中心加速。

在一些数据中心采用10G或者更高速率的以太网接口加FPGA的模式,可以在数据进入到服务器之前采用硬件的方式进行快速的处理,降低服务器CPU的负荷。

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。

后期我们还将继续推出相关的介绍。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
专注网络与交换领域的FPGA实现和芯片化,如TSN、TTE等
推荐文章
最近访客
现象是什么意思 什么是百分数 一倍是什么意思 乌鸦嘴是什么意思 7.1什么星座
骨头坏死是什么感觉 基因突变是什么意思 院感是什么意思 风声鹤唳什么意思 额头上长痘痘是什么原因
一什么春雷 顺风耳是什么意思 一只什么 梦见租房子住是什么意思 鼻子旁边有痣代表什么
下肢肿胀是什么原因 亦字五行属什么 什么是亚麻籽油 hrv什么意思 性早熟是什么意思
腻歪是什么意思hcv9jop6ns8r.cn 怀孕一个月出血是什么情况hcv7jop6ns1r.cn 万足读什么hcv8jop0ns5r.cn 心肌炎是什么症状sanhestory.com 圆圆的什么hlguo.com
全品类是什么意思hcv8jop2ns5r.cn 提上日程是什么意思hcv7jop4ns8r.cn 段泥紫砂壶适合泡什么茶hcv7jop4ns7r.cn 电磁炉滴滴响不加热是什么原因hcv8jop7ns9r.cn 身上起红疙瘩是什么hcv9jop3ns3r.cn
朦胧是什么意思hcv7jop5ns0r.cn 火车票无座是什么意思hcv9jop2ns3r.cn 舌头疼吃什么药好得快shenchushe.com 共青团书记是什么级别hcv9jop1ns3r.cn 一什么茶imcecn.com
海苔吃多了有什么坏处wzqsfys.com 太阳线是什么意思hcv8jop4ns6r.cn 尿结晶高是什么原因aiwuzhiyu.com 紫菜不能和什么一起吃hcv8jop3ns4r.cn 每天吃三颗红枣有什么好处hcv8jop0ns7r.cn
百度