低延迟10G MAC Intel Stratix 10 FPGA IP设计实例用户指南

ID 683026
日期 9/24/2018
Public
文档目录

8.3.1. 1G/2.5G/5G/10G多速率PHY

本话题罗列了 Intel® Stratix® 10 器件1G/2.5G/5G/10G多速率系列寄存器的字节偏移。

寄存器映射

可通过 Avalon® -MM接口访问16-bit/32-bit配置寄存器。

表 35.  寄存器映射概述
地址范围 使用 寄存器宽度 配置
0x00 : 0x1F 1000BASE-X/SGMII 16 2.5G, 1G/2.5G, 10M/100M/1G/2.5G, 10M/100M/1G/2.5G/10G, 1G/2.5G/10G
0x400 : 0x41F USXGMII 32 1G/2.5G/5G/10G (USXGMII)
0x461 串行环回 32 1G/2.5G/5G/10G (USXGMII)

寄存器定义

访问寄存器时请遵循如指导:
  • 不要写入保留或未定义寄存器。
  • 写寄存器时,执行读-修改-写操作以确保保留和未定义寄存器位不被覆盖。
表 36.  1G/2.5G/5G/10G多速率寄存器定义
地址 名称 说明 访问权限 HW复位值
0x00 control Bit [15]: RESET。将该位设置为1触发一次软复位。

复位完成后,PHY清除该位。复位器件寄存器值保持不变。

RWC 0
Bit[14]: LOOPBACK。将该位设置为1使能串行接口上的环回。 RW 0
Bit [12]: AUTO_NEGOTIATION_ENABLE。将该位设置为1使能自动协商。

仅1GbE支持自动协商。因此,当切换到其他非1GbE速度时,将该为设置为0。

RW 0
Bit [9]: RESTART_AUTO_NEGOTIATION。将该位设置为1重新启动自协商。

自动协商重新启动后,PHY即刻清除该位。

RWC 0
保留所有其他位。
0x01 status Bit [5]: AUTO_NEGOTIATION_COMPLETE。值”1“显示自动协商已完成。 RO 0
Bit [3]: AUTO_NEGOTIATION_ABILITY。值”1“显示PCS功能支持自动协商。 RO 1
Bit [2]: LINK_STATUS。值”0“显示链路丢失。值”1“表示链路已建立。 RO 0
保留所有其他位。
0x02:0x03 phy_identifier PHY_IDENTIFIER参数中设置的值。 RO PHY_IDENTIFIER参数值
0x04 dev_ability 使用此寄存器通告自动协商期间的器件性能。
Bits [13:12]: RF。指定远程错误。
  • 00: 无错误。
  • 01: 链路错误。
  • 10: 离线。
  • 11: 自动协商错误。
RW 00
Bits [8:7]: PS。指定PAUSE支持。
  • 00:无PAUSE。
  • 01: 对称PAUSE。
  • 10: 与链路partner不对称的PAUSE。
  • 11: 与链路器件不对称和对称的PAUSE。
RW 11
Bit [5]: FD。确保该位始终设置为1。 RW 1
保留所有其他位。
0x05 (1000BASE-X mode) partner_ability 自动协商期间链路partner的器件性能。
Bit [14]: ACK。值”1“表示链路partner已接收来自器件的3个连续匹配性能值。 RO 0
Bits [13:12]: RF。远程错误。
  • 00: 无错误。
  • 01: 链路错误。
  • 10: 离线。
  • 11: 自动协商错误。
RO 0
Bits [8:7]: PS。PAUSE支持。
  • 00: 无PAUSE。
  • 01: 对称PAUSE。
  • 10: 与链路partner不对称的PAUSE。
  • 11: 与链路partner不对称和对称的PAUSE。
RO 0
Bit [6]: HD。值“1”表示支持半双工。 RO 0
Bit [5]: FD。值“1”表示支持全双工。 RO 0
保留所有其他位。
0x05 (SGMII mode) partner_ability 自协商期间链路partner的器件性能。
Bit [11:10]: COPPER_SPEED
链路partner速度::
  • 00: 铜接口速度为10 Mbps
  • 01: 铜接口速度为100 Mbps
  • 10: 铜接口速度为1 Gigabit
  • 11: 保留
RO 00
Bit [12]: COPPER_DUPLEX_STATUS
l链路lpartner能力:
  • 1: 铜接口可用于全双工操作。
  • 0: 铜接口可用于半双工操作。
RO 0
Bit [14]: ACK。链路partner应答。值“1”表示器件接收到来自其链路partner的3个连续匹配性能值。 RO 0
Bit [15]: COPPER_LINK_STATUS
链路partner状态:
  • 1: 铜接口链路已连接
  • 0: 铜接口链路已断开
RO 0
保留所有其他位。
0x06 an_expansion PCS能力和自动协商状态。
Bit [1]: PAGE_RECEIVE。值“1”表示partner_ability寄存器已更新。一旦读取该位后,就自动将其删除。 RO 0
Bit [0]: LINK_PARTNER_AUTO_NEGOTIATION_ABLE。值“1”表示链路支持自动协商。 RO 0
0x07 device_next_page PHY不支持next page功能。这些寄存器总是设置为0。 RO 0
0x08 partner_next_page RO 0
0x09:0x0F 保留

0x10

scratch 提供存储器位置以测试读和写操作。

RW

0
Bit [31:16]: 保留
0x11 rev PHY IP核的当前版本。 RO Current version of the PHY
Bit [31:16]: 保留
0x12:0x13 link_timer 21-bit自动协商链路定时器。
  • Offset 0x12: link_timer[15:0]。Bits [8:0]始终设置为0。
  • Offset 0x13: link_timer[20:16]占据较低的5个位。其余11个位被保留且始终设置为0。
RW 0
0x14 if_mode 接口模式寄存器
Bit [0]: SGMII_ENA

确定PCS功能操作模式。将该位设置为1b'1使能SGMII模式。将该位设置为1b'0使能1000BASE-X gigabit模式。

RW 0
Bit [1]: USE_SGMII_AN

SGMII模式中,将该位设置为1b'1,并按照自动协议期间通告的链路partner abilitie性能配置PCS。如果该位被设置为1b'0,则应通过SGMII_SPEED位配置PCS功能。

RW 0
Bit [3:2]: SGMII_SPEED
PCS运行于SGMII模式中(SGMII_ENA = 1),不会被编程用于自动协商(USE_SGMII_AN = 0),以下编码指定速度:
  • 2'b00: 10 Mbps
  • 2'b01: 100 Mbps
  • 2'b10: Gigabit
  • 2'b11: 保留
SGMII_ENA = 0或USE_SGMII_AN = 1时这些位被保留。
RW 0
All other bits are reserved.
0x15:0x1F 保留
0x400 usxgmii_control 控制寄存器
Bit [0]: USXGMII_ENA:
  • 0: 10GBASE-R模式
  • 1: USXGMII模式
RW 0
Bit [1]: USXGMII_ENA设置为1时,使用USXGMII_AN_ENA:
  • 0: 禁用USXGMII Auto-Negotiation,并通过USXGMII_SPEED寄存器手动配置操作速度。
  • 1: 使能USXGMII Auto-Negotiation,根据USXGMII Auto-Negotiation期间通告的链路partner性能自动配置操作速度。
RW 1
Bit [4:2]: USXGMII_SPEED是USXGMII模式中PHY的操作速度,且USE_USXGMII_AN设置为0。
  • 3’b000: 10M
  • 3’b001: 100M
  • 3’b010: 1G
  • 3’b011: 10G
  • 3’b100: 2.5G
  • 3’b101: 5G
  • 3’b110: 保留
  • 3’b111: 保留
RW 0
Bit [8:5]: 保留
Bit [9]: RESTART_AUTO_NEGOTIATION

写1重新启动Auto-Negotiation序列。Auto-Negotiation重启后,该位被硬件清除。

RWC 0
Bit [31:10]: 保留
0x401 usxgmii_status 状态寄存器
Bit [1:0]: 保留
Bit [2]: LINK_STATUS表示USXGMII所有速度的链路状态
  • 1: 链路已建立
  • 0: 链路同步丢失,0表示锁存。
RO 0
Bit [4:3]: 保留
Bit [5]: AUTO_NEGOTIATION_COMPLETE

值“1”表示Auto-Negotiation处理完成。

RO 0
Bit [31:6]: 保留
0x402:0x404 保留
0x405 usxgmii_partner_ability Auto-Negotiation期间对链路partner通告的器件性能
Bit [6:0]: 保留
Bit [7]: EEE_CLOCK_STOP_CAPABILITY
表示是否支持energy efficient Ethernet(EEE,节能以太网)时钟停止。
  • 0: 不支持
  • 1: 支持
RO 0
Bit [8]: EEE_CAPABILITY
表示是否支持EEE。
  • 0: 不支持
  • 1: 支持
RO 0
Bit [11:9]: SPEED
  • 3'b000: 10M
  • 3'b001: 100M
  • 3'b010: 1G
  • 3'b011: 10G
  • 3'b100: 2.5G
  • 3'b101: 5G
  • 3'b110: 保留
  • 3'b111: 保留
RO 0
Bit [12]: DUPLEX
表示双工模式。
  • 0: 半双工
  • 1: 全双工
RO 0
Bit [13]: 保留
Bit [14]: ACKNOWLEDGE

值“1”表示器件接收到来自链路partner的3个连续匹配性能值。

RO 0
Bit [15]: LINK
表示链路状态。
  • 0: 链路断开
  • 1: 链路连接
RO 0
Bit [31:16]: Reserved
0x406:0x411 保留
0x412 usxgmii_link_timer

自动协商链路计时器。将链路计时器位[19:14]中的值以大约0.05-ms steps的时间从0设置为2 ms。必须编程链路计时器以确保其与外部NBASE-T PHY IP核的链路计时器值相匹配。

其余值将链路计时器设置为大约1.6 ms。

Bits [13:0]被保留并始终设置为0。

[19:14]: RW

[13:0]: RO

[19:14]: 1F

[13:0]: 0

0x413:0x41F 保留
0x461 phy_serial_loopback 将PMA中的收发器串行环回从TX配置为RX。
Bit [0]
  • 0: 禁用PHY串行环回
  • 1: 使能PHY串行环回
RW 0
Bit [31:1]: 保留