UDP_千兆光通信(四)Tri Mode Ethernet MAC ip核


在这里插入图片描述
软件架构如下图所示:
在这里插入图片描述

一、 Tri Mode Ethernet MAC ip核功能

支持 10M、100M、1000M、2.5G 等多种速度,支持 RGMII、GMII、MII、SGMII、internal 等多种 PHY 接口。下图展示了 TEMAC 的功能框图。
在这里插入图片描述
其中 Transmit Engine 从 AXI-Stream TX 接口接收数据,并添加前导码 Preamble、帧起始界定符 SFD、帧校验序列 FSC 等,并在必要时(长度小于最小 MAC 帧长度)填充数据,因此在使用 TEMAC 时,MAC 帧的这几个部分就不需要我们自己添加了(不过其他的 MAC 帧部分,如目的MAC地址、源MAC地址、类型/长度、MAC数据段等部分,还是要用户按字节流给入 TEMAC 的)。

流量控制模块 Flow Control 可发送和接收可编程的暂停帧。

用户使用三个 AXI4 接口进行数据收发以及 MAC 控制器/ PHY 芯片配置,其中数据发送和接收使用 AXI4_Stream 接口,而配置接口使用 AXI4-Lite 接口,实现对 MAC 的配置和 MDIO 接口的读写。

可选的帧过滤器 Frame Filter 用于过滤与一组可配置过滤器匹配的帧,一般用于过滤掉目的 MAC 地址与本设备不一致的帧,TEMAC 默认开启帧过滤器。

统计计数器 Statistics Counters 用于记录 TX 和 RX 的帧数量,达到最大值后回绕,可配置为 32 或 64 位宽。

二、 Tri Mode Ethernet MAC ip核配置

该IP核作为MAC层,对PHY层接收数据进行处理;对于千兆以太网而言,MAC与PHY层之间使用GMII接口连接。

数据传输速率

在这里插入图片描述

  • 1Gb/s 支持高达1Gb/s的以太网速度。支持四种类型的物理接口,即GMII,MII,RGMII和内部接口均可用。(千兆网选这个
  • 2.5 Gb / s 指的是以太网速度设置为2.5Gb/s,只支持内部连接。

主要设置接口

在这里插入图片描述

  • PHY Interface:在这里插入图片描述
    在这里插入图片描述

  • MAC Speed:
    在这里插入图片描述
    在这里插入图片描述
    internal mode clock source

  • user clk2
    这是用户逻辑时钟,通常由用户提供,用于MAC IP核内部逻辑和用户接口的时钟同步。
    在internal mode下,这个时钟通常来自PCS/PMA IP核或外部时钟源,频率一般为125MHz(千兆以太网)12.5MHz(百兆以太网)。

  • rx user clk2
    这是接收用户时钟,专门用于MAC接收数据路径的时钟。
    在internal mode下,这个时钟通常来自PCS/PMA IP核的接收时钟输出,用于同步接收数据流

managemant type
在这里插入图片描述

帧滤波功能选择,以及流控选择

在这里插入图片描述
1) 帧过滤器选项(Frame Filter Options)

可以使用帧过滤器生成内核,从而阻止接收与此MAC不匹配的帧。这最常用于识别专门针对此MAC的数据包。默认为使用帧过滤器。

2)表条目数(Number of Table Entries)

可以使用查找表来生成帧过滤器,该查找表最多可以包含16个其他有效MAC帧匹配模式。您可以选择0到16之间的整数来定义表中存在的匹配模式的数量。默认值为使用四个表条目。

3)启用优先流控制(Enable Priority Flow Control)

选择此选项可在核心中包括Priority Flow Control支持。如果包括在内,则包括在发送时生成PFC帧并在接收时解释PFC帧的电路,以及对IEEE 802.3暂停请求的增强XON / XOFF支持。默认设置为禁用。

4)统计计数器(Statistics Counters)

可以使用内置的统计计数器生成内核。可用的计数器数量取决于内核的双工设置,全双工需要34个计数器,半双工需要41个计数器。仅当内核配置有AXI4-Lite管理接口时,才能选择此选项。默认值为包括统计信息计数器

5)统计宽度(Statistics Width)

统计信息计数器可以是32位或64位宽。这使您可以控制必须轮询计数器的频率,以避免由于溢出而导致信息丢失。默认值为使用64位宽的计数器。

6)统计重置(Statistics Reset)

当包括统计计数器时,可以包括逻辑以确保在硬件复位时将计数器清除为零。没有此逻辑,计数器值将在复位后保持不变,并且仅在设备配置时清除。默认值为包括计数器重置功能

三、 Tri Mode Ethernet MAC ip核使用

3.1 ip核接口

在这里插入图片描述

3.2 ip核接口说明

全局时钟与复位接口

名称 输入输出类型 说明
gtx_clk input 全局 125MHz 时钟,2.5G 以太网时为 312.5MHz 时钟;
glbl_rstn input 全局复位信号(低有效),复位整个MAC IP核

发射端接口

名称 输入输出类型 说明
tx_mac_aclk output 物理接口数据传输的时钟。该时钟应用于物理接口发送电路和TX AXI4-Stream发送电路。
312.5MHZ对应2.5Gb/s
125MHZ对应1Gb/s
312.5MHZ对应2.5Gb/s
25MHZ对应100Mb/s
2.5MHZ对应10Mb/s
tx_reset output 发送模块复位信号,复位接收逻辑
tx_axis_mac_tdata[7:0] input, 要传输的帧数据;
tx_axis_mac_tvalid input, 数据有效信号;
tx_axis_mac_tready output, 握手信号,当数据被正确接收时,该信号被断言(注意到而非指示 TEMAC TX 空闲,这与一般的 ready 握手信号工作原理不同,因此不能用于判断是否可以传递数据,而是判断数据是否被正确传输了,从而决定是重传本字节还是继续传输下一字节);
tx_axis_mac_tlast input 帧结束信号;
tx_axis_mac_tuser input 端口控制信号,指示发生一个错误;当在传输期间断言该信号时,则 MAC 会插入一个错误代码以损坏当前帧,中止传输并回到空闲状态。
tx_ifg_delay[7:0], input, IFG = Inter-Frame Gap(帧间间隔),tx_ifg_delay = 发送帧间延迟,控制MAC发送器在连续发送以太网帧之间的时间间隔
10Mbps:最小帧间间隔 = 9.6μs(96位时间)
100Mbps:最小帧间间隔 = 960ns(96位时间)
1000Mbps:最小帧间间隔 = 96ns(96位时间)
tx_collision, output, 指示在发送过程中检测到冲突(collision),全双工模式下恒输出 0(全双工时,实际生成 IP 时该接口不生成);
tx_statisitics_vector[31:0], output, 发送帧统计向量;提供发送方向的详细统计信息;通常为32位,包含多个统计字段
tx_statistics_valid output 统计向量有效标志。

接收端接口

名称 输入输出类型 说明
rx_mac_aclk output 物理接口数据传输的时钟。该时钟应用于物理接口发送电路和TX AXI4-Stream接收电路。
312.5MHZ对应2.5Gb/s
125MHZ对应1Gb/s
312.5MHZ对应2.5Gb/s
25MHZ对应100Mb/s
2.5MHZ对应10Mb/s
rx_reset output 接收模块复位信号,复位接收逻辑
rx_axis_mac_tdata[7:0] output 接收到的帧数据;
rx_axis_mac_tvalid output 数据有效信号;
rx_axis_mac_tlast, output, 帧结束信号;
rx_axis_mac_tuser, output, 控制信号,在帧
### 关于 Tri Mode Ethernet MAC (TEMAC) 1Gbps 规格与应用 #### TEMAC 基础概述 Vivado 中的三速以太网MAC IPTri Mode Ethernet MAC, TEMAC),能够支持多种速率下的以太网通信,包括但不限于10/100/1000 Mbps。该IP旨在简化FPGA中的以太网协议栈实现过程[^1]。 #### 1Gbps 特定配置需求 当使用1G光通讯时,特别是对于1G/2.5G Ethernet PCS/PMA 或 SGMII 接口而言,遵循的是1000BASE-X标准,这意味着数据传输速率被设定为固定的1Gbps。因此,在这种情况下,必须将TEMAC的`MAC speed`参数设置成1000Mbps来匹配相应的物理层(PHY)设备的工作频率[^2]。 #### 实现细节 为了使TEMAC能够在FPGA上正常工作并达到预期性能,除了正确配置其运行速度外,还需要注意几个方面: - **接口选择**:通常会选用RGMII作为PL侧同外部PHY芯片之间的连接方式。这是因为RGMII可以很好地适应不同类型的PHY器件,并且具有良好的信号完整性表现。 - **定制化调整**:尽管Xilinx提供了预构建好的TEMAC模块供开发者快速集成到项目当中去,但是针对特定应用场景可能仍需对原有代码做出一定改动。比如要确保能兼容所选PHY的具体特性以及优化整体链路质量等[^4]。 ```verilog // Verilog example of configuring the core's interface to RGMII module top ( input wire clk_125mhz, output reg [7:0] rgmii_txd, ... ); // Instantiate the Xilinx Tri-mode Ethernet MAC here with appropriate parameters set. endmodule ``` #### 应用实例 在实际工程项目里,如果是以ZYNQ系列处理器为例,则PS端通过内置的千兆位以太网控制器经由RGMII总线与外界相联接;而PL部分则可通过调用上述提到过的TEMAC完成更高级别的网络功能开发,如UDP/IP堆栈处理或是更高层次的应用程序逻辑编写[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值