0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

千兆以太网工程模块划分总结与分析

潘文明 来源:明德扬吴老师 作者:明德扬吴老师 2022-11-25 10:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

千兆以太网工程模块划分总结与分析

很多朋友在工程模块划分的时候总会遇到很多问题,比如不知道如何下手、模块划分不合理等;我开始也是这样的,在学习了明德扬的几项工程以后,按照老师分享的思路,也对模块划分有了一定的小经验,今天通过案例的方式与大家分享。

一、模块划分要点总结

1、列出项目的功能要求(客户提出的产品功能要求)

2、画出硬件的系统结构框图(添加外设)

3、框图中每个外围接口都对应有一个接口转换模块

接口转换模块的作用是将外围器件的接口时序转为通用的接口时序,或者将通用接口时序转换为外围器件接口时序,这样使得FPGA内部其他模块不用再关心外围接口的时序了。

MDY规范通用接口时序:

l data以及对应的vld,传输单个数据格式

l MDY的包文格式,din,vld,SOP,EOP,MTY,ERR

l wren,waddr,wdata;rden,raddr,rdata,rdata_vld

4、考虑是否涉及指令系统(操作码+数据格式)

上位机,例如PC,ARMDSP或者其他的器件,只涉及到一个接口,但是却有很多指令或者命令功能要发送,因此就需要一个指令系统。

指令系统一定会涉及到命令、地址和数据。这种情况,肯定会有一个“寄存器解析模块”,根据命令、地址和数据,改变相应的寄存器的值。

5、考虑外围器件是否涉及寄存器配置

项目中有某些外设,上电工作前需要进行配置才能按要求工作。因此需要对外设内部寄存器进行读写,这一流程是通过FPGA来进行配置。

遇到这个情况,使用MDY推荐的模块寄存器配置结构:

寄存器配置表模块+寄存器读写配置模块+外设配置接口时序转换模块

6、根据实际情况,增加、补充或者拆分,优化对应模块,随时调整

原则:根据接口信号,看模块间是否方便对接。接口就决定了模块功能。所以在这一层的调整,一定要清楚接口的定义。

7、考虑是否涉及多路进一路出,要用FIFO

调度FIFO要考虑自身带宽能否满足多路一起突发发送时的数据量情况。如果带宽不满足,就要要输出给上游模块RDY信号。此时RDY信号有效取决于自己设置FIFO的Almost Full信号。如果带宽满足则不必设RDY信号。

8、考虑是否涉及到速率匹配问题,要加上RDY信号或者FIFO

首先考虑与外围器件通信的接口上是否需要rdy信号(FPGA内部运行频率往往与设接口速率不一致),然后考虑FPGA内部模块间数据带宽是否不一致,有等一等的情况。

二、千兆以太网工程案例分析

根据前面总结的要点,通过实际项目案例来分析一下FPGA内部功能模块是怎样划分的。这里我们选取已经做过的千兆以太网工程,接下来按照上面总结的模块划分步骤,一步步完成模块初步划分!

1.列出项目的功能要求

本项目功能要求:FPGA内部产生要发送的包文数据,通过UDP协议,发送给PC;PC发送UDP格式包文数据,FPGA需要解析UDP协议,提取出用户数据;ARP协议实现定期发送ARP协议,获取对方电脑的物理地址。

功能分析:

a) FPGA内部产生发送的包文数据;

b) 要通过UDP协议发送,就需要添加MAC协议头部,IP协议头部,UDP协议头部;

c) FPGA接收到PC发来的UDP报文,要一层层解析协议头部信息,先解析出MAC头,然后是IP头,UDP头,最后才能获取用户数据;

d) FPGA定期发送ARP协议请求报文;

e) FPGA接收到PC发来的ARP协议应答报文,要解析出源MAC地址;并在发送包文数据中,将获取的MAC地址作为目的MAC地址进行打包发送。

2.画出硬件系统结构框图

根据步骤1总结出的功能要求,找到除FPGA外需要哪些外围器件。分析得出:

FPGA与PC通信是以千兆以太网的形式,需要将FPGA输出的信号调制成千兆以太网信号,本项目选取了外部PHY芯片RTL8211来实现此通信调制功能。同理PC端发送的数据通过千兆以太网网线传输,需要经过PHY解调后输出给FPGA;

为了设计方便,FPGA发送的报文数据中,完成FCS校验的计算交给了MAC IP核来完成;同理,接收端接收到PC发来的报文数据也由MAC IP核完成FCS校验;

前期为了验证设计,考虑添加按键作为触发MAC IP核初始化的启动条件。

外围器件总共需要三个:

a) 按键

b) 2PHY(RTL8211)

c) 3PC

画出系统框图如下所示:

16aa1296622d43ef9a8658314d002ab9~noop.image?_iz=58558&from=article.pc_detail&x-expires=1669947223&x-signature=XLsAaDrqax6HaxTsCco8wtdr28E%3D

3.框图中每个外围接口都对应有一个接口转换模块

a) 按键对应的接口转换模块是按键消抖检测模块;

b) PHY对应的接口转换模块是MAC IP核模块。

添加后框图如下所示:

e7c146d96d5f4a3d88d9d903188e9624~noop.image?_iz=58558&from=article.pc_detail&x-expires=1669947223&x-signature=GX%2FSxmI6mP74jhkMlqib7zcV14E%3D

本项目不涉及指令系统

5.考虑外围器件是否涉及寄存器配置

本项目中MAC IP核涉及寄存器配置。使用MDY推荐模板:寄存器配置表模块+寄存器读写配置模块+外设配置接口时序转换模块;

由于MAC IP配置接口使用的是Avalon协议(与MDY接口协议不同之处在于waitrequest信号),所以外设配置接口时序转换模块对外接口也应该是Avalon,对内则是MDY规范接口。

完善后如下所示:

2529a97665f547b1896e0608e410526f~noop.image?_iz=58558&from=article.pc_detail&x-expires=1669947223&x-signature=H%2BjVCptDGjyjL5i4lDhxbv9uqXc%3D

到第6步,根据数据流向,需要对模块间的接口进行详细分析了,补充模块或者将功能相同的模块合并化简。

从发送侧数据流向思考:

a) FPGA内部产生要发送的数据,因此需要一个数据产生模块;

b) 产生的发送数据需要先添加UDP头部,所以需要一个添加UDP协议头部模块;

c) 然后添加IP头部,需要一个添加IP协议头部模块;

d) 最后添加MAC头部,就完成了完整的发送UDP协议报文,因此需要一个添加MAC协议头部模块;

e) 同时需要定期发送ARP协议请求报文,需要一个ARP请求报文模块;

f) 由于ARP报文需要定时产生,所以需要一个计时模块。

从接收侧数据流向思考:

FPGA接收到PHY解调出的PC发送来的UDP报文或者ARP应答报文,经过MAC IP核验证FCS后,解析出正确或者错误的UDP、ARP报文:

a) 经过MAC IP核输出的报文需要进行MAC头部检查,正确则输出UDP、ARP报文,错误则做丢包处理。所以需要一个MAC头部解析模块;

b) 经过MAC头部解析模块处理后输出的是正确的IP报文,此时需要进行IP头部检查,正确则输出报文,错误则做丢包处理。所以需要一个IP头部解析模块;

c) 经过MAC头部解析模块处理后输出的是正确的ARP应答报文,此时需要进行ARP报文解析,获取发送端MAC地址。所以需要一个ARP应答解析模块;

d) 同1、2两步原理,输出UDP报文需要进行UDP头部检查,所以需要一个UDP头部解析模块。

经过UDP头部解析模块解析出来的报文数据即是PC端发来的正确用户数据,输出即可。

补充后如下图所示:

494de3eb4e774d818e83123de37598f2~noop.image?_iz=58558&from=article.pc_detail&x-expires=1669947223&x-signature=RobcVFWZZNYSykQ5I6PS%2FpkpbJE%3D

接下来将功能互斥、数据流向相关,接口一致的模块做合并化简处理,如下图所示:

23dc342928474689a12fb2af8bcaa782~noop.image?_iz=58558&from=article.pc_detail&x-expires=1669947223&x-signature=VtNvpK93orH%2BC1GuLuwTWE7kfJM%3D

本项目数据流方面涉及多路进一路出的问题。

在进行模块优化时,注意到产生的用户数据和定时ARP请求报文不能同时输出给MAC IP核,需要一个发送调度模块来完成多路输入一路输出的调度,是发送打包模块送来的UDP报文还是发送ARP请求报文。

b92a215e5dae45d6b30aec4c0a62f8bb~noop.image?_iz=58558&from=article.pc_detail&x-expires=1669947223&x-signature=a8ZKvRit7GN0vz6abZ7Hrf%2FkGtg%3D

8.考虑是否涉及到速率匹配问题,要加上RDY信号或者FIFO

首先考虑与外围器件通信的接口上是否需要rdy信号。

外围PHY芯片与FPGA通信是经过MAC IP核来处理,时序MAC IP核已经做好了,所以不需要设rdy信号。

再考虑FPGA内部模块间运行速率不匹配的情况,根据数据流方向来考虑:

发送侧:

a) 发送报文打包模块需要时间(计算各个协议头部校验和,长度等信息),所以需要在数据产生模块和数据打包模块间设FIFO并设rdy信号。

b) 数据打包模块和ARP请求报文发送模块同时发送给报文调度模块,发送包文调度模块不能同时响应,需要FIFO来缓存,考虑到突发情况FIFO会溢出,所以需要与数据打包模块和ARP请求报文定时发送模块间设FIFO并设RDY信号。

接收侧:

接收侧模块间速率匹配,不需要设FIFO和RDY信号。

最终得到的模块图如下所示:

aacad42d133f4912b15aae65fe7c1ad1~noop.image?_iz=58558&from=article.pc_detail&x-expires=1669947223&x-signature=8RBdGWz2rI4DZVhCI%2B57SFmk4FA%3D

到此,根据模块划分步骤一步步做下来,千兆网工程的模块划分雏形初步已经完成。具体实践中需要根据FPGA内部信号的调整,随时拆分或独立来增减功能模块。

今天分享的案例是千兆以太网工程。该工程是明德扬的网络班、就业班的其中一个项目,涉及到MAC协议、ARP协议、IP协议和UDP协议的实现,协议较多,划分的模块也较多。



审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22288

    浏览量

    630340
  • 千兆以太网
    +关注

    关注

    0

    文章

    78

    浏览量

    14230
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LAN8814 4端口千兆以太网收发器数据手册总结

    Microchip Technology LAN8814 4端口千兆以太网收发器是低功耗、四端口、三速(10BASE-T/100BASE-TX/1000BASE-T)以太网物理层收发器(PHY
    的头像 发表于 10-14 10:50 480次阅读
    LAN8814 4端口<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>收发器数据手册<b class='flag-5'>总结</b>

    LAN8831千兆以太网收发器技术解析与应用指南

    Microchip Technology LAN8831千兆以太网收发器(带GMII/MII/RGMII )是完全集成的三速 (10BASE-T/100BASE-TX/1000BASE-T
    的头像 发表于 10-13 11:51 462次阅读
    LAN8831<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>收发器技术解析与应用指南

    LAN9370汽车级以太网交换机芯片技术解析

    Microchip Technology LAN937x千兆以太网交换机是可扩展、紧凑型100BASE-T1以太网千兆位交换机,基于IEEE 802.3bw-2015规范。
    的头像 发表于 10-13 11:48 528次阅读
    LAN9370汽车级<b class='flag-5'>以太网</b>交换机芯片技术解析

    LAN8804四端口千兆以太网收发器技术解析

    Microchip Technology LAN8804 4端口千兆以太网收发器是低功耗、四端口、三速(10BASE-T/100BASE-TX/1000BASE-T)以太网物理层收发器(PHY
    的头像 发表于 10-11 11:47 471次阅读
    LAN8804四端口<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>收发器技术解析

    基于LAN9646六端口千兆以太网交换机的技术解析与应用

    Microchip Technology LAN9646六端口千兆以太网交换机是一款完全集成的托管第2层、六端口千兆以太网交换机,具有高级特性。Microchip Technolo
    的头像 发表于 09-30 11:02 892次阅读
    基于LAN9646六端口<b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>交换机的技术解析与应用

    通信模块(4G / 以太网)断联除了模块坏还有哪些原因?

    通信模块(4G / 以太网)断联是典型的 “多环节故障”,除模块硬件损坏外,问题可能出在 物理连接、供电、信号环境、配置参数、协议兼容、外部干扰、系统软件 等多个链路,需按 “从底层到上层、从局部到
    的头像 发表于 09-23 11:15 1775次阅读
    通信<b class='flag-5'>模块</b>(4G / <b class='flag-5'>以太网</b>)断联除了<b class='flag-5'>模块</b>坏还有哪些原因?

    千兆以太网防护:3 步搞定电涌威胁

    EMC 小哥围绕以太网接口核心威胁,提供三层防护方案,助力千兆设备实现 “电涌 + 静电可靠防护”。 一、 以太网接口面临的三类威胁 以太网接口在运行中易受多种电磁干扰影响,不同干扰
    的头像 发表于 09-11 10:38 592次阅读
    <b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>防护:3 步搞定电涌威胁

    以太网模块被忽视的角落 #电磁兼容EMC #电子工程师 #电子元器件 #磁珠 #滤波电容 #以太网

    以太网
    深圳市韬略科技有限公司
    发布于 :2025年07月25日 17:35:35

    WiFi和以太网哪个更快

    以太网通常比WiFi更快、更稳定,尤其在理想条件下差距显著;而WiFi胜在灵活便捷,但实际速度受环境干扰较大。 以下是具体分析: 一、理论速度对比 以太网 千兆
    的头像 发表于 07-01 09:54 1504次阅读

    双通道CAN转以太网#CAN转以太网#三格电子

    以太网
    三格电子科技
    发布于 :2025年05月12日 13:17:05

    AD9574以太网 千兆以太网时钟发生器技术手册

    AD9574具有多路输出时钟发生器功能,内置专用锁相环(PLL)内核,针对以太网千兆以太网线路卡应用进行了优化。 整数N PLL设计基于ADI公司成熟的高性能、低抖动频率合成器产品系列,确保实现高的网络性能。 AD9574还适
    的头像 发表于 04-10 10:43 808次阅读
    AD9574<b class='flag-5'>以太网</b> <b class='flag-5'>千兆</b><b class='flag-5'>以太网</b>时钟发生器技术手册

    串口转以太网芯片选型指南:2025十大以太网模块品牌盘点与应用方案解析

    ,不同品牌的以太网模块在性能、稳定性、功能支持等方面存在差异,如何选择合适的芯片成为了众多研发工程师关注的重点。 本文基于权威数据平台的分析,盘点了2025年十大主流
    的头像 发表于 04-09 15:30 1647次阅读

    广成科技CAN转以太网模块的作用和应用

    CAN转以太网模块是一类能够将CAN总线数据转换为以太网数据的设备,通常用于实现CAN总线与以太网总线之间的互联互通。在智能锁柜和智能文件交换箱中,CAN转
    的头像 发表于 03-20 13:58 1012次阅读
    广成科技CAN转<b class='flag-5'>以太网</b><b class='flag-5'>模块</b>的作用和应用

    广成科技CAN FD转以太网模块的应用场景

    CAN FD转以太网模块在多个领域和项目中都有广泛应用,主要用于实现CAN FD总线与以太网之间的数据转换和通信。
    的头像 发表于 02-17 10:38 869次阅读

    以太网带宽总是跑不满,是什么原因?

    导读随着网络需求增长,千兆以太网速率问题备受关注。本文针对其实际速率低的情况,详细分析布线不佳等原因,并从等长走线、阻抗匹配等硬件方面及软件调试角度,提供全面提升速率与稳定性的有效方法。正常的
    的头像 发表于 12-26 11:34 4730次阅读
    <b class='flag-5'>以太网</b>带宽总是跑不满,是什么原因?