千兆以太网链路GEM

1. GEM概述

主要包括:

  1. 介质访问控制层MAC,主要控制发送、接收、地址检测和回路。
  2. 配置寄存器,提供控制状态寄存器、统计寄存器和同步逻辑。
  3. 物理编码子层PCS,提供8B/10B编解码,PCS发送,PCS接收和PCS自协商。(该模块也是可选项)
  4. 直接内存访问DMA,控制DMA发送,DMA接收和AHB/AXI仲裁逻辑。(某些应用场景,GEM可以不用DMA,需要在GEM和CPU之间实现一个外部FIFO缓冲接口)
  5. 时间戳TSU,计算定时器的数值,提供实时时钟。

 2. MAC

        MAC发送模块从外部FIFO接口获取数据,增加前导位,如果有必要的话就填充无效位和帧检验序列FCS。支持半双工和全双工两种模式。在半双工模式下,,MAC发送模块负责根据冲突检测协议数据:发送之前检测到载波crs时,就延迟数据发送;发送过程中检测到冲突col时,就发送拥塞序列,然后随机二进制等待一段时间后重新发送。在全双工模式下,忽略载波crs和冲突col信号。

        MAC接收模块检测有效前导位,帧检验序列FCS,对齐和长度,然后将接收到数据帧送给MAC地址检测逻辑和外部FIFO接口。通过软件配置,可以接收到最大16383字节的巨帧。 在数据帧发送给FIFO接口之前,可以选择将数据帧中的FCS剥离。

        地址检测逻辑,可识别若干(数量可配)具有标记的源/目的48位地址,可识别4种数值不同的类型ID,还包括了一个64位哈希寄存器在需要的时候用于匹配多目和单目地址。地址检测逻辑还识别全1的广播地址,还可以拒绝无VLAN标签的数据帧,识别网络唤醒事件。地址检测逻辑进行地址比较时,如果使用SAR(专用地址寄存器)1寄存器,SAMR(专用地址屏蔽寄存器)寄存器可以按照位来屏蔽。其他专用地址过滤器是按照字节来屏蔽的。

        MAC接收模块支持IP,TCP和UDP校验计算,自动抛弃错误校验帧。

        MAC接收模块可设置识别802.1 CB流,自动消除重复数据帧。并对异常帧,乱序帧,错误,和定时器复位事件进行统计。

3. PCS

        PCS与1000BASE-X协同工作,给PMA(物理介质附件)层提供可配置接口。一个PCS发送模块和8B/10B编码一起组成发送通路,一个PCS接收模块和两个8B/10B解码一起组成接收通路。提供用于网络配置的自协商功能。PMA接口可配置成10或20位。通过网络配置寄存器可以配置PCS,支持MAC和外部PHY之间的SGMII接口。对于一个完整的SGMII方案而言,中间还需要一个SerDes的硬IP。

4. 配置寄存器

        控制寄存器模块:管理数据的输入输出MDIO接口、DMA的配置、帧数据的传输、半/全双工和10/100/1000Mbps模式的选择。寄存器接口兼容AMBA APB2.0。

        统计寄存器模块:发送和接收操作相关的各种类型事件进行计数。利用这些寄存器和接收缓冲列表中的状态字,软件可以进行兼容IEEE802.3Clause30的网络管理统计。

5. DMA

        DMA配置成两种模式:采用内部发送/接收FIFO低延迟缓冲模式,或者采用外部缓冲的单数据包缓冲模式。在所有数据速率条件下支持32/64/128位的数据宽度(注意:选择AHB接口时,128位不可用)。DMA从系统主存的发送数据缓冲中聚拢收集发送数据,将接收数据发散存放到系统主存的接收数据缓冲中。地址检测逻辑先决定哪些数据帧应该被拷贝,然后DMA才将这些数据帧发送到系统主存。

        接收或发送数据帧占用一个或若干个DMA缓冲。接收缓冲长度可配置为64B或16KB。发送缓冲长度在1到16383字节之间,发送数据帧最大占用128个DMA缓冲。DMA模块管理发送和接收帧缓冲队列。

        如果不需要DMA,GEM需要一个外部发送和接收FIFO接口。

        注意:DMA模块不支持AHB总线的分裂和重传操作。

6. TSU

        IEEE1588时间戳逻辑是一个102位的定时器:

  1.         高48位是秒计数
  2.         中间30位是纳秒计数
  3.         中间24位是亚纳秒计数
  4.         最后52位回滚,当计数到1秒时回滚

        定时器的递增周期与PCLK或TSU_CLK相关,也可以通过APB寄存器调整,调整精度为1纳秒。可以选择使用外部TSU,默认选用内部TSU。 

        

猜你喜欢

转载自blog.csdn.net/lsshao/article/details/121414865