当前位置: 代码网 > it编程>操作系统>苹果Mac > FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录(二)——IP学习使用

FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录(二)——IP学习使用

2024年08月03日 苹果Mac 我要评论
FPGA平台以太网学习:涉及1G/2.5G Ethernet 和Tri Mode Ethernet MAC两个IP核的学习记录(二)——IP学习使用


  学习不能稀里糊涂,要学会多思考,发散式学习以及总结:
  fpga作为一种器件,只是实现目的的一种方法,过度追求实现的技术细节(用hdl还是hls,用啥芯片,用啥接口)容易只见树木不见森林。工具软件的用法也好,器件的架构也好,语言孰优孰劣的争论也罢。工程应用里大概更多应该去考虑适合的实现方式,现在software define network/flash/xxx,已然大势所趋,算法是纲,纲举目张。是因为在实现上需要有流水线,多路并行,快速部署的目的所以考虑使用fpga,而不是为了使用而使用。
  不管实现目的的方法是fpga还是dsp甚至是gpu,这些都是工具,工程师的核心竞争力除了在于熟练地掌握开发的技巧。更重要的在于信号与系统、数字信号处理、图像处理之类的让你了解算法、优化算法的基石;以及数字电路、微机原理、处理器体系结构这些让你了解为什么这些工具要这样设计,要这样发展的课程(系统学习一点体系结构,那么这些数据级并行、指令级并行、线程级并行的处理器就不再陌生了)工程师应该顶天(了解应用,了解算法)也应该立地(了解工具,掌握技巧)。
                    ——引用某个大佬的话,作为学习共勉
  简单来说就是:fpga是工具用来搬砖,更多的知识在fpga之外


选择ethernet下的“1g/2.5g ethernet pcs/pma or sgmii”ip核

ip核配置

一、传输速率

  1:ip核的名字;
  4:点击是否展开所有引脚(没必要点击);
  2、3:ip核提供了两种数据速率1gmbps和2.5gmbps,选择1g;
在这里插入图片描述

二、网口标准选择

  该ip提供了用于生成1000base-x,2500base-x,1g sgmii和2.5g sgmii四种标准应用。关于选择basex还是sgmii我们需要根据我们实际应用的接口选择;在这里我们参考该ip核文档pg047中的介绍:
查找文档以及使用方法可以参考这篇文章:
vivado的docnav学习;fpga芯片外挂ddr个数_fpga_青年的博客-csdn博客
  1)、(figure1-1)设备专用gt收发器支持pma连接到外部现成的千兆接口转换器 (gbic) 或小型可插拔 (sfp) 光收发器,以完成以太网端口,basex只能连接这两种器件(本次设计使用gbic )。这里可以理解为mac层+pcs层+pma层以串型的方式与phy层的pmd相连,tx/rx分别为从pma到pmd的串行传输的差分输出,从pmd到pma的串行传输的差分输入。

在这里插入图片描述
  2)、(figure1-2)设备专用gt收发器也支持1g或2.5g sgmii连接到外部现成以太网phy设备(rj-45电口)。它也能为1g提供三模式phy芯片的10base-t, 100base-t, and 1000base-t。
  sgmii本质上并没有对以太网协议的分层做改动,还是mac层,pcs层和pma层。原来gmii模式下,mac层一般做在fpga侧,phy层包括pcs+pma做在另一个单独的芯片上。而sgmii的实施是将pcs层也同时放在了原来的mac侧。这样fpga芯片和phy芯片各有一个pcs层。
  对于fpga发送来说,数据包有mac层过来,经过tx的pcs,从sgmii接口发送出去。在phy芯片上,有一个rx的pcs先将sgmii的信号解出gmii信号,然后再经过传统的phy层处理发送到介质上。对于fpga接收来说,则反过来。
关于phy层的知识,大家可以参考此文章。
以太网学习之mac与phy间通信_fpga_青年的博客-csdn博客
在这里插入图片描述
  3)、(figure1-3)它也可以作为三速以太网(tri mode ethernet mac)ip核sgmii转换成gmii的桥梁。
在这里插入图片描述
  1:1000basex:将生成iee802.3 1000basex的标准,是千兆以太网光口的物理接口命名,属于物理层接口,可以称为物理相关接口,1000basex只支持1000速率,后缀base不持支自协商;采用光口(sfp)作为网络接口时使用( 本次设计我们选择1000basex );
  2:sgmii:将生成gmii到serial-gmii(sgmii)桥;可以称为媒体独立接口,sgmii支持10/100/1000速率,可以根据实际进行自协商速率转换,采用电口(rj45)或是需要转换成gmii等信号时使用;
  3:both:在1000base-x和sgmil标准之间进行动态切换,哪个稳定先与哪个建立连接;
  4:附加收发器控制和状态端口;(暂时没有用到附加端口,不选择)
补充:
  在编写代码的时候,是在用户端即上图中的user logic处编写代码,中间为ip核内部逻辑不用管,右侧为外接接口,需要上板测试的时候需要分配此引脚(rx、tx等)。
  1000表示千兆速率,base表示基带传输,x表示采用了8b/10b分组码编码方式,详细介绍可以看上一篇文章的第三部分内容:
fpga平台以太网学习:涉及1g/2.5g ethernet 和tri mode ethernet mac两个ip核的学习记录(一)——知识补给_fpga_青年的博客-csdn博客。
在这里插入图片描述

  在下图中,左图是选择1000basex产生的外接接口sfp,中间图为选择sgmii产生的外接接口sgmii,最右边的是三速以太网ip(tri mode ethernet mac)的rgmii接口(还可以更换成gmii/mii/internal),后边将会讲解三速以太网,到时候可以对比学习;
  我们可以看到1g/2.5g ethernet pcs/pma or sgmii 以太网ip核采用的是rxn,rxp,txn,txp差分串行数据接口,此ip核采用的是fpga芯片的gt(gigabit transceiver )高速收发器作为千兆网通信对外的接口。(关于gt高速收发器的知识后续有时间整理)大家可以在此大佬的文章进行学习:
xilinx fpga平台gtx简易使用教程(汇总篇)_fpga gtx_子墨祭的博客-csdn博客
  采用1g/2.5g ethernet pcs/pma or sgmii 以太网ip核时:
  1、 fpga相当于mac层+pcs层+pma层(属于phy层中的一部分,选择1000basex);
  2、 fpga相当于mac层+pcs层(属于phy层的一部分,选择sgmii)。
   在这里我补充一下:我们的数据在数据链路层(mac)进行数据组帧以后,都需要经过编码pcs层和串并转换pma层,sgmii接口属于串型接口,因此它只需要经过pcs层。
  关于phy芯片内部协议以及gt收发器的pcs和pma可以参考这个文章:
fpga平台以太网学习:mac与phy间通信_fpga_青年的博客-csdn博客
  采用tri mode ethernet mac以太网ip核时:
  1、 fpga只是mac层。
在这里插入图片描述
  可以看下采用1g/2.5g ethernet pcs/pma or sgmii 以太网ip核实际用到的原理图接口,下图中共有4对高速接口port0-port3:
在这里插入图片描述
可以看下采用zynq系列时ps端进行千兆网通信的原理引脚图,tri mode ethernet mac ip核使用到的引脚同样如此。采用rgmii接口。
在这里插入图片描述

三、核功能选择

  1: 物理接口:设备专用收发器;物理接口将是设备特定的收发器即gt高速收发器,即上边原理图的rt与tx(此处只有一个选项默认);
  2:接收gmii时钟源:输入ip核内部的mmcm的时钟源选择为gt收发器输出的时钟txoutclk(默认选项即可),该mmcm将产生我们所需要的接口时钟;
  3:管理选项:mdio管理接口和自协商,这里提一下,采用sgmii外接phy芯片时候,mdio是为了配置phy芯片用的,一般phy默认配置就可以正常使用(暂时都用不到,不选);可以参考下官方的回答
以太网ip核1g/2.5g ethernet pcs/pma or sgmii的问题咨询 (xilinx.com)
在这里插入图片描述

四、共享逻辑

  1:核内共享逻辑:设计只采用一个该ip核的时候,就选择此项
  2:示例设计中包含共享逻辑:当设计中需要同时使用若干个此ip核,且所使用的gtx均位于同一个gtx bank中,只需其中1个ip核内部的共享资源(mmcm、gtx pll、gtx 参考时钟等)便可以满足所有ip核的需求,即选择将共享资源包含在ip核内部。通过共享逻辑可以较小硬件资源的消耗,并且各个接口输出时序是一致的。(暂时没有用到,不选)
在这里插入图片描述
  在此ip核的配置就结束了,后边将讨论以太网应用中的设计方案
  再次强调下,fpga是工具,要学会使用工具就要看配套资料,ip配置以及接口使用在文档中讲解的都很清楚,不过都是英文的,以下链接简单介绍如何查找文档
vivado的docnav学习;fpga芯片外挂ddr个数_fpga_青年的博客-csdn博客

五、总结(重点)

  关于网口选择部分,我写的挺多的,主要这里边涵盖的知识非常多。主要是想说的时,在做千兆网的时候,fpga通常采用两种外界接口。
  1、一种就是普通接口mii/rmii/gmii/rgmii这些接口,rgmii是最常用的接口,这些接口都属于低速接口。例如上边介绍的zynq的ps端以太网和三速以太网tri mode ethernet mac ip核这两种都是使用rgmii,与外部phy芯片进行连接,然后再通过网口。即:fpga=mac<–>phy<–>rg45。
  2、还有一种就是采用高速收发器即gt接口作为外接接口,外部接的是txp/txn和rxp/rxn这种串型接口,上边普通的采用的是并行接口。gt用于千兆以太网物理编码子层/物理介质连接子层 (physical coding sublayer/physical media dependent pcs/pma)。
  例如本次使用的1g/2.5g ethernet pcs/pma or sgmii ip核。这个ip是将phy芯片的的pma层和pcs层集合到了fpga中。即fpga=mac+ pcs / pma。
  (1)当采用1000basex时候,ip核作为pcs层(编码)+pma层(并转串),通过收发器向pmd发送,此时fpga与外部千兆接口转换器 (gbic) 或小型可插拔 (sfp) 光收发器进行连接。如下图所示:
在这里插入图片描述
  (2)当采用sgmii时候,ip核作为pcs层,通过收发器向phy芯片的pcs层发送,此时fpga与现成以太网phy设备(rj-45电口)进行连接。如下图所示:
在这里插入图片描述

下一节,将会做接口与框架介绍。

记录美好学习,从总结开始;💪

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com