RX 路径控制信号和状态端口 - 3.2 简体中文

40G/50G High Speed Ethernet 子系统 v3.2 产品指南 (PG211)

Document ID
PG211
Release Date
2021-02-04
Version
3.2 简体中文

下表描述了其它状态端口和控制端口。

表 1. RX 路径控制信号和状态信号
名称 I/O 时钟域 描述
ctl_rate_mode 输入 static 此信号可以使 IP 核在 50G 运行 (0) 和 40G 运行 (1) 之间切换。请注意,必须针对选中的模式纠正时钟频率。
ctl_rx_enable 输入 rx_serdes_clk RX 启用。在正常操作期间,此输入必须设置为 1。当此输入设置为 0 时,RX 完成接收当前包(如果有)之后,就会停止接收包并阻止 PCS 继续对传入数据进行解码。在此模式下,不报告任何统计数据,并且 AXI4-Stream 接口处于空闲状态。
ctl_rx_check_preamble 输入 rx_serdes_clk 此输入断言有效时,会使 Ethernet MAC 检查接收到的帧的前导码。
ctl_rx_check_sfd 输入 rx_serdes_clk 此输入断言有效时,会使 Ethernet MAC 检查接收到的帧的帧起始定界符。
ctl_rx_force_resync 输入 rx_serdes_clk

RX 强制再同步输入。此信号用于强制 RX 路径进行复位、再同步和重新对齐。值为 1 即强制执行复位操作。值为 0 允许正常操作。

注释: 此输入通常应为低电平 (Low) 并且仅限用于强制重新对齐时才应进行脉冲(单周期最小脉冲)。CTL_RX_FORCE_RESYNC 会重新启动同步状态机,但是不会复位 GT 逻辑。在大多数情况下,如果发生 RX 故障,则需要复位 GT RX。
ctl_rx_delete_fcs 输入 rx_serdes_clk 启用由 RX 核执行 FCS 移除。如果将此位设置为 0,则 40G/50G High Speed Ethernet 子系统不会移除传入包的 FCS。如果将此位设置为 1,则 40G/50G High Speed Ethernet 子系统会删除所接收包的 FCS。对于长度小于等于 8 个字节的包,将不删除 FCS。仅当对应的复位输入断言有效时,才应更改此输入。
ctl_rx_ignore_fcs 输入 rx_serdes_clk

允许 RX 核在

AXI4-Stream 接口上执行 FCS 错误检查。如果将此位设置为 0,则将随在上次传输期间断言有效(rx_eopout 和 rx_enaout 采样为 1)的 rx_errout 管脚一起发送所接收的含 FCS 错误的包。如果将此位设置为 1,则 40G/50G High Speed Ethernet 子系统不会标记 AXI4-Stream 接口上的 FCS 错误。

注释: 报告的统计数据中显示此数据包有效。但是,stat_rx_bad_fcs 信号会报告错误。
ctl_rx_max_packet_len[14:0] 输入 rx_serdes_clk

长度超过该值的任何包都将被视为大小过大。如果包的大小大于该值,则该包将被截断至该值,并且 rx_errout 信号随 rx_eopout 信号一起断言有效。小于 16 个字节的包将被丢弃。该总线允许的值范围为 64 到 16,383。

ctl_rx_max_packet_len[14] 保留并且必须设置为 0。

ctl_rx_min_packet_len[7:0] 输入 rx_serdes_clk

长度小于该值的任何包都将被视为大小过小。如果包的大小小于该值,则在 rx_eopout 断言有效的周期内,rx_errout 信号将断言有效。小于 16 个字节的包将被丢弃。

注释: 该值应大于或等于 64B。
ctl_rx_vl_length_minus1[15:0] 输入 rx_serdes_clk

PCS 通道标记间的字数减 1。IEEE 802.3-2015 标准中定义的默认值应设置为 16,383。仅当对应的复位输入断言有效时,才应更改此输入。

注释: 在 50G 核配置中启用 RS-FEC 时,此值将设置为 20479。
ctl_rx_vl_marker_id[VL_LANES-1:0][63:0] 输入 rx_serdes_clk 这些输入为每个 PCS 通道设置 PCS 通道标记。这些输入应设置为 IEEE 802.3-2015 标准中定义的值。如需了解 IEEE 802.3 默认值,请参阅第 5.3 节 [ IEEE 以太网标准IEEE 802.3-2015 标准]。仅当对应的复位输入断言有效时,才应更改此输入。
stat_rx_framing_err_[VL_LANES-1:0][3:0] 输出 rx_clk_out RX 同步报头位成帧错误。每个 PCS 通道都有一个 4 位总线,用于指示针对该 PCS 通道接收到的同步报头错误的数量。仅当对应的 stat_rx_framing_err_valid_[VL_LANES-1:0] 为 1 时,该总线的值才有效。这些总线上的值可随时更新,并且这些值旨在作为递增值以供同步报头错误计数器使用。
stat_rx_framing_err_valid_[VL_LANES-1:0] 输出 rx_clk_out stat_rx_framing_err_[VL_LANES-1:0] 的有效指示符。当这些输出之一采样为 1 时,对应 stat_rx_framing_err_[VL_LANES-1:0] 上的值有效。
stat_rx_local_fault 输出 rx_clk_out 当 stat_rx_internal_local_fault 或 stat_rx_received_local_fault 断言有效时,此输出为高电平 (High)。此输出对电平敏感。
stat_rx_synced[VL_LANES-1:0] 输出 rx_clk_out

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

对应于第 82.3 条中所定义的管理数据输入/输出 (MDIO) 寄存器位 3.52.7:0 和 3.53.11:0。此输出对电平敏感。

stat_rx_synced_err[VL_LANES-1:0] 输出 rx_clk_out 字边界同步错误。这些信号用于指示在相应的 PCS 通道内进行字边界同步期间,是否发生错误。值为 1 表示由于同步报头成帧位错误或者从未收到 PCS 通道标记,对应 PCS 通道已丢失字边界同步。此输出对电平敏感。
stat_rx_mf_len_err[VL_LANES-1:0] 输出 rx_clk_out

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

它将保持高电平 (High),直至消除错误状况为止。

stat_rx_mf_repeat_err[VL_LANES-1:0] 输出 rx_clk_out PCS 通道标记连续错误。这些信号用于指示相应通道内是否发生了 4 个连续 PCS 通道标记错误。值为 1 表示对应通道内存在错误。此输出将保持高电平 (High),直至消除错误状况为止。
stat_rx_mf_err[VL_LANES-1:0] 输出 rx_clk_out PCS 通道标记字错误。这些信号用于表示在相应通道内检测到构成的 PCS 通道标记字错误。值为 1 表示发生了错误。此输出将脉冲 1 个时钟周期,以指示错误状况。脉冲可在连续周期内发生。
stat_rx_aligned 输出 rx_clk_out 所有 PCS 通道均已对齐/去歪斜。此信号表示是否所有 PCS 通道均已对齐并去歪斜。值为 1 表示所有 PCS 通道均已对齐并去歪斜。当此信号为 1 时,表示 RX 路径已对齐并且可接收包数据。当此信号为 0 时,表示存在本地故障状况。这也对应于第 82.3 条中所定义的 MDIO 寄存器位 3.50.12。此输出对电平敏感。
stat_rx_status 输出 rx_clk_out

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

对应于第 82.3 条中所定义的 MDIO 寄存器位 3.32.12。此输出对电平敏感。

stat_rx_block_lock[VL_LANES-1:0] 输出 rx_clk_out 每个 PCS 通道的块锁定状态。值为 1 表示对应通道已达到第 82 条中定义的块锁定状态。对应于第 82.3 条中所定义的 MDIO 寄存器位 3.50.7:0 和 3.51.11:0。此输出对电平敏感。
stat_rx_aligned_err 输出 rx_clk_out 通道对齐/去歪斜丢失。此信号表示 PCS 通道对齐期间发生错误或者 PCS 通道对齐已丢失。值为 1 表示发生了错误。此输出对电平敏感。
stat_rx_misaligned 输出 rx_clk_out

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

如果从未正确接收到任何通道标记,则此信号不会断言有效。通道标记错误通过对应的 stat_rx_mf_err 信号来指示。

此输出将脉冲 1 个时钟周期,以指示错误状况。脉冲可在连续周期内发生。

stat_rx_remote_fault 输出 rx_clk_out 远端故障指示状态。如果该位采样为 1,则表示检测到远端故障状况。如果该位采样为 0,则表示不存在远端故障状况。此输出对电平敏感。
stat_rx_vl_number_[3:0]|1:0] 输出 rx_clk_out

总共有 VL_LANES 个独立的 stat_rx_vl_number[4|1:0] 总线。stat_rx_vl_number_# 指示在对应的物理通道上接收到的 PCS 通道。仅当 stat_rx_synced[VL_LANES-1:0] 的对应位为 1 时,该总线才有效。这些输出对电平敏感。

stat_rx_vl_demuxed[VL_LANES-1:0] 输出 rx_clk_out 已找到 PCS 通道标记。如果该总线的信号采样为 1,则表示接收器已对该 PCS 通道进行了正确的逆多路复用。这些输出对电平敏感。
stat_rx_bad_fcs[n:0] 输出 rx_clk_out 无效 FCS 指示符。该总线上的值用于指示接收到的包带有无效 FCS,但不带有含 stomp 标记的 FCS。含 stomp 标记的 FCS 定义为期望的有效 FCS 的按位反转。此输出将脉冲 1 个时钟周期,以指示错误状况。脉冲可在连续周期内发生。
stat_rx_stomped_fcs[n:0] 输出 rx_clk_out 含 stomp 标记的 FCS 指示符。该总线上的值用于指示接收到的包带有含 stomp 标记的 FCS。含 stomp 标记的 FCS 定义为期望的有效 FCS 的按位反转。此输出将脉冲 1 个时钟周期,以指示含 stomp 标记。脉冲可在连续周期内发生。
stat_rx_truncated 输出 rx_clk_out 包截断指示符。值为 1 表示当前进行中的包因长度超过 ctl_rx_max_packet_len[14:0] 而被截断。此输出将脉冲 1 个时钟周期,以指示截断状况。脉冲可在连续周期内发生。
stat_rx_internal_local_fault 输出 rx_clk_out 当由于以下任一操作导致生成内部本地故障时,此信号将转为高电平 (High):测试模式生成、通道对齐错误或误码率过高。只要故障状况仍然存在,此信号就会保持高电平 (High)。
stat_rx_received_local_fault 输出 rx_clk_out 当接收到来自链路伙伴的本地故障字数足以触发 IEEE 故障状态机所指定的故障条件时,此信号将转为高电平 (High)。只要故障状况仍然存在,此信号就会保持高电平 (High)。
stat_rx_bip_err[VL_LANES-1:0] 输出 rx_clk_out BIP8 错误指示符。非 0 值表示 BIP8 签名字节针对对应 PCS 通道存在错误。非 0 值将脉冲 1 个时钟周期。此输出将脉冲 1 个时钟周期,以指示错误状况。脉冲可在连续周期内发生。
stat_rx_hi_ber 输出 rx_clk_out 误码率 (BER) 过高指示符。设置为 1 时,BER 过高(根据 IEEE 802.3-2015 标准的定义)。对应于第 82.3 条中所定义的 MDIO 寄存器位 3.32.1。此输出对电平敏感。
ctl_rx_custom_preamble_enable 输入 rx_clk_out 此信号断言有效时,会导致在 rx_preambleout 上呈现前导码。
rx_preambleout[55:0] 输出 rx_clk 当 ctl_rx_custom_preamble_enable 信号断言有效时,该总线表示前导码字节。它在包的第一个周期内有效。