UDP_千兆光通信(四)Tri Mode Ethernet MAC ip核 - 指南
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 sourceuser 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, | 控制信号,在帧 |





浙公网安备 33010602011771号