在每个方向(发射和接收)上,GLOBAL_MODE 寄存器均可设置 2 种 AXI 模式:
- 耦合 MAC+PCS 模式:分段式 AXI4‑Stream
- 独立 MAC 和 PCS+FEC 模式:通道化分段式 AXI4‑Stream
在 DCMAC Subsystem 上,可用的 16 字节 AXI4‑Stream 分段总数为 12。通道化分段式 AXI4‑Stream 始终使用全部 12 个分段,聚合吞吐量由时钟频率来确定。在某些部分,最大时钟频率会有所降低,通道化分段式 AXI4‑Stream 带宽上限为 400G;但这并非通过模式来选择,而是时钟速率的一项功能。
选中耦合 MAC+PCS 模式时,分配到给定端口的分段数首先根据选定 AXI‑S 带宽来确定,其次根据 data_rate 控制来决定。AXI‑S 宽度选项有 2 个,即正常宽度或双倍 (2x) 宽度,可在 GLOBAL_MODE 寄存器内选择 (ctl_tx_axis_cfg, ctl_rx_axis_cfg
)。在 AXI‑S 宽模式(允许使用时钟降频)下,忽略 data_rate 控制,针对 3 个端口配置 AXI4‑Stream 总线(每个端口 100G),每个端口含 4 个分段(允许每个周期传输 1 帧)。
在 AXI‑S 正常宽度模式下,C0_TX_MODE_REG、C2_TX_MODE_REG、C4_TX_MODE_REG、C0_RX_MODE_REG、C2_RX_MODE_REG 和 C4_RX_MODE_REG 寄存器中的数据速率控制会判定分配给各端口的分段数量:
- c0_ctl_rx_data_rate[1:0] 和 c0_ctl_tx_data_rate[1:0]
- 2'd2 / 400G:端口 0 含 8 个分段
- 每个周期最多 2 帧
- 禁用端口 1、2 和 3
- 2'd1 / 200G:端口 0 含 4 个分段
- 每个周期最多 1 帧
- 禁用端口 1
- 2'd0 / 100G:端口 0 含 2 个分段
- 每 2 个周期最多 1 帧
- 端口 1 可用 - 同时含 2 个分段
- 2'd2 / 400G:端口 0 含 8 个分段
- c2_ctl_rx_data_rate 和 c2_ctl_tx_data_rate(仅当端口 0 未处于 400G 模式下时才可选)
- 1'd1 / 200G:端口 2 含 4 个分段
- 每个周期最多 1 帧
- 禁用端口 3
- 1'd0 / 100G:端口 2 含 2 个分段
- 每 2 个周期最多 1 帧
- 端口 3 可用 - 同时含 2 个分段
- 1'd1 / 200G:端口 2 含 4 个分段
- c4_ctl_rx_data_rate 和 c4_ctl_tx_data_rate
- 1'd1 / 200G:端口 4 含 4 个分段
- 每个周期最多 1 帧
- 禁用端口 5
- 1'd0 / 100G:端口 4 含 2 个分段
- 每 2 个周期最多 1 帧
- 端口 5 可用 - 同时含 2 个分段
- 1'd1 / 200G:端口 4 含 4 个分段
下表显示的分段为 AXI4‑Stream 聚合数据总线的 128 位部分,并展示了可用配置。
通道化分段式 AXI4‑Stream | 位索引 | 分段式 AXI4‑Stream | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
600G 实例 0 | 1535:1408 | 100G 实例 5 |
100G 实例 3 |
100G 实例 3 |
200G 实例 0 |
100G 实例 1 |
200G 实例 1 |
200G 实例 1 |
200G 实例 2 |
100G 实例 1 |
200G 实例 0 |
1407:1280 | |||||||||||
1279:1152 | 100G 实例 4 |
100G 实例 2 |
100G 实例 2 |
100G 实例 1 |
100G 实例 0 |
||||||
1151:1024 | |||||||||||
1023:896 | 100G 实例 3 |
100G 实例 1 |
200G 实例 0 |
100G 实例 3 |
200G 实例 1 |
200G 实例 0 |
100G 实例 1 |
200G 实例 1 |
400G 实例 0 |
400G 实例 0 |
|
895:768 | |||||||||||
767:640 | 100G 实例 2 |
100G 实例 0 |
100G 实例 2 |
100G 实例 0 |
|||||||
639:512 | |||||||||||
511:384 | 100G 实例 1 |
200G 实例 0 |
100G 实例 1 |
100G 实例 1 |
200G 实例 0 |
100G 实例 1 |
200G 实例 0 |
200G 实例 0 |
|||
383:256 | |||||||||||
255:128 | 100G 实例 0 |
100G 实例 0 |
100G 实例 0 |
100G 实例 0 |
|||||||
127:0 |
通道化分段式 AXI4‑Stream | 位索引 | 分段式 AXI4‑Stream |
---|---|---|
400G 实例 0 | 1535:1408 | 100G 实例 2 |
1407:1280 | ||
1279:1152 | ||
1151:1024 | ||
1023:896 | 100G 实例 1 |
|
895:768 | ||
767:640 | ||
639:512 | ||
511:384 | 100G 实例 0 |
|
383:256 | ||
255:128 | ||
127:0 |