端口列表 - 仅限 PCS - 3.3 简体中文

40G/50G High Speed Ethernet Subsystem 产品指南 (PG211)

Document ID
PG211
Release Date
2022-11-03
Version
3.3 简体中文

下表显示了 40G/50G PCS IP 核端口。这些是在提供仅限 PCS 选项时可用的端口。没有 FCS 功能,也不存在 AXI4-Stream 相关端口。

PCS 不包含“暂停”和“流量控制”端口。系统接口是 XLGMII/50GMII,而非 AXI4-Stream。

可在 *wrapper.v 层级中找到这些信号。如需了解时钟域定义,请参阅“PCS 时钟”。

表 1. PCS 变体端口
名称 I/O 时钟域 描述
收发器 I/O
rx_serdes_data_n0 输入 rx_serdes_clk 来自通道 0 线路的串行数据;差分信号的负相
rx_serdes_data_p0 输入 rx_serdes_clk 来自通道 0 线路的串行数据;差分信号的正相
tx_serdes_data_n0 输出 tx_serdes_clk 到通道 0 线路的串行数据;差分信号的负相。
tx_serdes_data_p0 输出 tx_serdes_clk 到通道 0 线路的串行数据;差分信号的正相。
rx_serdes_data_n1 输入 rx_serdes_clk 来自通道 1 线路的串行数据;差分信号的负相
rx_serdes_data_p1 输入 rx_serdes_clk 来自通道 1 线路的串行数据;差分信号的正相
tx_serdes_data_n1 输出 tx_serdes_clk 到通道 1 线路的串行数据;差分信号的负相。
tx_serdes_data_p1 输出 tx_serdes_clk 到通道 1 线路的串行数据;差分信号的正相。
GT_reset (ctl_gt_reset_all) 输入 异步 收发器启动 FSM 的高电平有效复位。请注意,此信号还会启动整个 IP 核的复位序列。
refclk_n0 输入   SerDes 的差分参考时钟输入,负相。
refclk_p0 输入   SerDes 的差分参考时钟输入,负相。
XLGMII/50GMII 接口信号
rx_mii_d[127:0] 输出 rx_mii_clk 接收 XLGMII/50GMII 数据总线。
rx_mii_c[15:0] 输出 rx_mii_clk XLGMII/50GMII 接收控制总线。
rx_mii_clk 输入   接收 XLGMII/50GMII 时钟输入。
tx_mii_d[127:0] 输入 tx_mii_clk 发射 XLGMII/50GMII 数据总线。
tx_mii_c[15:0] 输入 tx_mii_clk XLGMII/50GMII 控制总线。
tx_mii_clk 输入 tx_mii_clk XLGMII/50GMII 发射时钟输入。
rx_mii_reset 输入   RX XLGMII/50GMII 接口的复位输入。
tx_mii_reset 输入   TX XLGMII/50GMII 接口的复位输入。
rx_serdes_clk 输入   用于对 RX PCS 核逻辑进行时钟设置的输入时钟信号。
tx_core_clk 输入   用于对 TX PCS 核逻辑进行时钟设置的输入时钟信号。
rx_reset 输入 rx_serdes_clk

与 rx_serdes_clk 逻辑关联的复位。

必须与 rx_serdes_clk 同步。

tx_reset 输入 tx_core_clk 与 tx_core_clk 逻辑关联的复位。必须与 tx_core_clk 同步。
XLGMII/50GMII 接口 - 控制/状态信号
ctl_rx_vl_length_minus1[15:0] 输入 static

PCS 通道标记间的字数减 1(对于 RX)。根据 IEEE 802.3 中的定义,默认值应设置为 16,383。

仅当对应的复位输入断言有效时,才应更改此输入。

注释: 在 50G 核配置中启用 RS-FEC 时,此值将设置为 20479。
ctl_tx_vl_length_minus1[15:0] 输入 static

PCS 通道标记间的字数减 1(对于 TX)。根据 IEEE 802.3 中的定义,默认值应设置为 16,383。

仅当对应的复位输入断言有效时,才应更改此输入。

注释: 在 50G 核配置中启用 RS-FEC 时,此值将设置为 20479。
ctl_rx_vl_marker_id0[63:0] 输入 static

RX PCS lane0 的 PCS 通道标记。如需了解 IEEE

802.3 默认值,请参阅“RX 和 TX PCS 通道标记值”。仅当对应的复位输入断言有效时,才应更改此输入。

ctl_rx_vl_marker_id1[63:0] 输入 static RX PCS lane1 的 PCS 通道标记。
ctl_rx_vl_marker_id2[63:0] 输入 static RX PCS lane2 的 PCS 通道标记。
ctl_rx_vl_marker_id3[63:0] 输入 static RX PCS lane3 的 PCS 通道标记。
ctl_tx_vl_marker_id0[63:0] 输入 static

TX PCS lane0 的 PCS 通道标记。如需了解 IEEE

802.3 默认值,请参阅“RX 和 TX PCS 通道标记值”。仅当对应的复位输入断言有效时,才应更改此输入。

ctl_tx_vl_marker_id1[63:0] 输入 static TX PCS lane1 的 PCS 通道标记。
ctl_tx_vl_marker_id2[63:0] 输入 static TX PCS lane2 的 PCS 通道标记。
ctl_tx_vl_marker_id3[63:0] 输入 static TX PCS lane3 的 PCS 通道标记。
ctl_rx_test_pattern 输入 rx_serdes_clk 对 RX 核启用测试模式以接收扰码空闲模式。具有第三优先级。
ctl_tx_test_pattern 输入 tx_core_clk 针对 TX 核启用扰码空闲测试模式生成。值为 1 表示启用测试模式。具有第三优先级。
stat_rx_fifo_error 输出 rx_serdes_clk

接收时钟补偿 FIFO 错误指示符。值为 1 表示时钟补偿 FIFO 发生下溢或上溢。仅当恢复的时钟与局部参考时钟之间的 PPM 差超过 ±200 ppm 时,才会发生此状况。

如果在任意时钟周期内此输出采样为 1,那么对应端口必须复位才能恢复正常运行。

stat_rx_local_fault 输出 rx_serdes_clk

值为 1 表示接收解码器状态机处于 RX_INIT 状态。

此输出对电平敏感。

stat_rx_hi_ber 输出 rx_serdes_clk

误码率 (BER) 过高指示符。设置为 1 时,BER 过高(根据 IEEE 802.3 的定义)。

对应于第 82.3 条中所定义的 MDIO 寄存器位 3.32.1。

此输出对电平敏感。

stat_rx_block_lock[3:0] 输出 rx_serdes_clk

每个 PCS 通道的块锁定状态。值为 1 表示对应通道已达到第 82 条中定义的块锁定状态。

对应于第 82.3 条中所定义的 MDIO 寄存器位 3.50.7:0 和 3.51.11:0。

此输出对电平敏感。

stat_rx_error[7:0] 输出 rx_serdes_clk

测试模式不匹配数递增值。任一周期内的非 0 值

均表示 RX 核在测试模式下发生的不匹配次数。

仅当 ctl_rx_test_pattern 设置为 1 时,此输出才有效。

此输出可用于根据第 82.3 条的定义生成 MDIO 寄存器 3.43.15:0。

此输出将脉冲 1 个时钟周期。

stat_rx_error_valid 输出 rx_serdes_clk 增量有效指示符。如果在任意时钟周期内此信号为 1,则 stat_rx_error 的值有效。
stat_rx_bad_code[1:0] 输出 rx_serdes_clk

此信号为递增值,对应 64B/66B 编码违例数。此信号指示接收到的包含无效块的 64b/66b 字的数量,或者指示是否检测到错误的 64b/66b 块序列。

此输出可用于根据第 82.3 条的定义生成 MDIO 寄存器 3.33:7:0。

stat_rx_bad_code_valid 输出 rx_serdes_clk 增量有效指示符。如果在任意时钟周期内此信号为 1,则 stat_rx_bad_code 的值有效。
stat_rx_framing_err_0[3:0] 输出 rx_serdes_clk 针对 PCS 通道 0 检测到的同步报头错误数量的增量值。该总线的值仅在 stat_rx_framing_err_valid_0 为 1 的周期内才有效。
stat_rx_framing_err_1[3:0] 输出 rx_serdes_clk 针对 PCS 通道 1 检测到的同步报头错误数量的增量值。
stat_rx_framing_err_2[3:0] 输出 rx_serdes_clk 针对 PCS 通道 2 检测到的同步报头错误数量的增量值。
stat_rx_framing_err_3[3:0] 输出 rx_serdes_clk 针对 PCS 通道 3 检测到的同步报头错误数量的增量值。
stat_rx_valid_0 输出 rx_serdes_clk PCS 通道 0 的增量有效指示符。如果在任意时钟周期内此信号为 1,则 stat_rx_framing_err_0 的值有效。
stat_rx_valid_1 输出 rx_serdes_clk PCS 通道 1 的增量有效指示符。
stat_rx_valid_2 输出 rx_serdes_clk PCS 通道 2 的增量有效指示符。
stat_rx_valid_3 输出 rx_serdes_clk PCS 通道 3 的增量有效指示符。
stat_rx_aligned 输出 rx_serdes_clk

所有 PCS 通道均已对齐/去歪斜。此信号表示是否所有 PCS 通道均已对齐并去歪斜。值为 1 表示所有 PCS 通道均已对齐并去歪斜。

当此信号为 1 时,表示 RX 路径已对齐并且可接收包数据。

当此信号为 0 时,表示存在本地故障状况。

还对应于 MDIO 寄存器位

3.50.12(根据第 82.3 条中的定义)。此输出对电平敏感。

stat_rx_aligned_err 输出 rx_serdes_clk

通道对齐/去歪斜丢失。此信号表示 PCS 通道对齐期间发生错误或者虚拟通道对齐已丢失。值为 1 表示发生了错误。

此输出对电平敏感。

stat_rx_misaligned 输出 rx_serdes_clk

对齐错误。此信号表示通道对齐器并未在所有通道上都接收到期望的 PCS 通道标记。在所有通道上都至少接收到 1 个 PCS 通道标记后,此信号才会断言有效。

此输出将脉冲 1 个时钟周期,以指示错误状况。

stat_rx_status 输出 rx_serdes_clk

PCS 状态。值为 1 表示 PCS 已对齐且未处于 hi_ber 状态。

对应于第 82.3 条中所定义的 MDIO 寄存器位 3.32.12。

此输出对电平敏感。

stat_rx_vl_demuxed[3:0] 输出 rx_serdes_clk

已找到 PCS 通道标记。如果该总线的信号采样为 1,则表示接收器已对该 PCS 通道进行了正确的逆多路复用。

此输出对电平敏感。

stat_tx_local_fault 输出 tx_core_clk

值为 1 表示发射编码器状态机当前处于 TX_INIT 状态。

此输出对电平敏感。

stat_tx_fifo_error 输出 tx_core_clk

发射时钟补偿 FIFO 错误指示符。值为 1 表示时钟补偿 FIFO 发生下溢或上溢。仅当发射器时钟与局部参考时钟之间的 PPM 差超过 ±200 ppm 时,才会发生此状况。

如果在任意时钟周期内此输出采样为 1,那么对应端口必须复位才能恢复正常运行。

stat_rx_vl_number_0[1:0] 输出 rx_serdes_clk

该总线的值指示 PCS 通道 0 上出现的物理通道。

仅当 stat_rx_synced[PCS_LANES-1:0] 的对应位为 1 时,该总线才有效。

这些输出对电平敏感。

stat_rx_vl_number_1[1:0] 输出 rx_serdes_clk 该总线的值指示 PCS 通道 1 上出现的物理通道。
stat_rx_vl_number_2[1:0] 输出 rx_serdes_clk 该总线的值指示 PCS 通道 2 上出现的物理通道。
stat_rx_vl_number_3[1:0] 输出 rx_serdes_clk 该总线的值指示 PCS 通道 3 上出现的物理通道。
stat_rx_bip_err_0 输出 rx_serdes_clk

BIP8 错误指示符(对应 PCS 通道 0)。非 0 值表示 BIP8

签名出错。非 0 值将脉冲 1 个时钟周期。

此输出将脉冲 1 个时钟周期,以指示错误状况。

stat_rx_bip_err_1 输出 rx_serdes_clk BIP8 错误指示符(对应 PCS 通道 2)。
stat_rx_bip_err_2 输出 rx_serdes_clk BIP8 错误指示符(对应 PCS 通道 2)。
stat_rx_bip_err_3 输出 rx_serdes_clk BIP8 错误指示符(对应 PCS 通道 3)。
stat_rx_synced[3:0] 输出 rx_serdes_clk

字边界已同步。这些信号用于指示 PCS 通道是否已完成字边界同步。值为 1 表示对应 PCS 通道已实现字边界同步,并且已接收到 PCS 通道标记。

对应于第 82.3 条中所定义的 MDIO 寄存器位 3.52.7:0 和 3.53.11:0。

此输出对电平敏感。

stat_rx_synced_err[3:0] 输出 rx_serdes_clk

字边界同步错误。这些信号用于指示在相应的 PCS 通道内进行字边界同步期间,是否发生错误。值为 1 表示由于同步报头成帧位错误或者从未收到 PCS 通道标记,对应 PCS 通道已丢失字边界同步。

此输出对电平敏感。

stat_rx_mf_len_err[3:0] 输出 rx_serdes_clk

虚拟通道标记长度错误。这些信号用于指示相应通道内是否发生了 PCS 通道标记不匹配(即,接收到的 PCS 通道标记间隔字数并非 ctl_rx_vl_length_minus1)。值为 1 表示对应通道接收 PCS 通道标记的间隔错误。

此输出将脉冲 1 个时钟周期,以指示错误状况。

stat_rx_mf_repeat_err[3:0] 输出 rx_serdes_clk

PCS 通道标记连续错误。这些信号用于指示相应通道内是否发生了 4 个连续 PCS 通道标记错误。值为 1 表示对应通道内存在错误。

此输出将脉冲 1 个时钟周期,以指示错误状况。

stat_rx_mf_err 输出 rx_serdes_clk

PCS 通道标记字错误。这些信号用于表示在相应通道内检测到构成的 PCS 通道标记字错误。值为 1 表示发生了错误。

此输出将脉冲 1 个时钟周期,以指示错误状况。

杂项状态信号和控制信号
dclk 输入 rx_serdes_clk 动态重配置端口 (DRP) 时钟输入。通过在 Vivado® IDE 的“GT Selection and Configuration”选项卡中的“GT DRP Clock”字段中提供值,设置必需的频率。这必须是自由运行的输入时钟。
gt_loopback_in[12|6:0] 输入 异步

每个收发器的 GT 环回输入信号。请参阅 GT 用户指南。

针对 50G 单核,位宽为 6 位,针对 40G 单核或 50G 双核,位宽为 12 位。