端口列表 - 自动协商 - 3.3 简体中文

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

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

以下额外信号均用于自动协商功能。可在 *wrapper.v 层级中找到这些信号。

表 1. 自动协商端口
端口名称 I/O 时钟域 描述和注释
an_clk 输入   自动协商电路的输入时钟。在相应版本的 README 自述文件中标示了所需的频率。此信号应为自由运行的时钟。
an_reset 输入 an_clk 同步高电平有效复位,对应于 an_clk 域。
ctl_autoneg_enable 输入 an_clk 自动协商的使能信号。
ctl_autoneg_bypass 输入 an_clk 输入信号,用于禁用自动协商并绕过自动协商功能。如果断言此输入有效,将关闭自动协商,但 PCS 将连接到输出以允许执行操作。
ctl_an_nonce_seed[7:0] 输入 an_clk

8 位种子,用于初始化随机数 (nonce) 字段多项式生成器。非零值。如果该值为零 (0),则自动协商无法运行。

ctl_an_pseudo_sel 输入 an_clk 选择位 49 随机位生成器的多项式生成器。如果此输入为 1,则多项式为 x7+x6+1。如果此输入为 0,则多项式为 x7+x3+1。
ctl_restart_negotiation 输入 an_clk 此输入用于触发重新启动自动协商,与当前电路状态无关。
ctl_an_local_fault 输入 an_clk 此输入信号用于设置发射链路代码字的 remote_fault 位。
用于 PAUSE 功能播发的信号
ctl_an_pause 输入 an_clk 此输入信号用于设置发射链路代码字的 PAUSE 位 (C0)。如果该核不支持暂停,则此信号可能不存在。
ctl_an_asmdir 输入 an_clk 此输入信号用于设置发射链路代码字的 ASMDIR 位 (C1)。如果该核不支持暂停,则此信号可能不存在。
功能信号输入
ctl_an_ability_1000base_kx 输入 an_clk 这些输入用于识别发射链路代码字中播发到链路伙伴的以太网协议功能。值为 1 表示接口支持此协议并播发此信息。
ctl_an_ability_100gbase_cr10 输入 an_clk
ctl_an_ability_100gbase_cr4 输入 an_clk
ctl_an_ability_100gbase_kp4 输入 an_clk
ctl_an_ability_100gbase_kr4 输入 an_clk
ctl_an_ability_10gbase_kr 输入 an_clk
ctl_an_ability_10gbase_kx4 输入 an_clk
ctl_an_ability_25gbase_krcr 输入 an_clk
ctl_an_ability_25gbase_cr1 输入 an_clk
ctl_an_ability_25gbase_krcr_s 输入 an_clk
ctl_an_ability_25gbase_kr1 输入 an_clk
ctl_an_ability_40gbase_cr4 输入 an_clk
ctl_an_ability_40gbase_kr4 输入 an_clk
ctl_an_ability_50gbase_cr2 输入 an_clk
ctl_an_ability_50gbase_kr2 输入 an_clk
ctl_lt_polynomial_select 输入 an_clk
ctl_an_ability_2_5gbase_kx 输入 an_clk
ctl_an_ability_5gbase_kr 输入 an_clk
ctl_an_ability_50gbase_krcr 输入 an_clk
ctl_an_ability_200gbase_kr4cr4 输入 an_clk
ctl_an_ability_100gbase_kr2cr2 输入 an_clk
ctl_an_fec_10g_request 输入 an_clk 用于在发射链路代码字中设置第 74 条 FEC 请求位。此信号仅适用于以 10 Gb/s 运行的 PMD。在以任何其它状态运行的 PMD 中,忽略此信号。
ctl_an_fec_ability_override 输入 an_clk 用于在发射链路代码字中设置第 74 条 FEC 功能位。如果设置此输入,则清除发射链路代码字中的 FEC 功能位。如果该 IP 核不支持第 74 条 FEC,则此信号可能不存在。
ctl_an_cl91_fec_ability 输入 an_clk 该位用于设置第 91 条 FEC 功能。
ctl_an_cl91_fec_request 输入 an_clk 该位用于请求第 91 条 FEC。
ctl_an_fec_25g_rs_request 输入 an_clk 用于在发射链路代码字中设置 RS-FEC 请求位。此信号仅适用于以 25 Gb/s 运行的 PMD。在以任何其它状态运行的 PMD 中,忽略此信号。
ctl_an_fec_25g_baser_request 输入 an_clk 用于在发射链路代码字中设置第 74 条 FEC 请求位。此信号仅适用于以 25 Gb/s 运行的 PMD。在以任何其它状态运行的 PMD 中,忽略此信号。
stat_an_rxcdrhold 输出 an_clk 用于在自动协商期间设置 GT 的 rxcdrhold_in。
stat_an_link_cntl_1000base_kx[1:0] 输出 an_clk 来自各种以太网协议的自动协商控制器的链路控制输出。设置如下:
  • 00:DISABLE;PCS 断开连接;
  • 01:SCAN_FOR_CARRIER;RX 已连接到 PCS;
  • 11:ENABLE;PCS 已连接,可执行任务模式操作。
  • 10:不使用
stat_an_link_cntl_100gbase_cr10[1:0] 输出 an_clk
stat_an_link_cntl_100gbase_cr4[1:0] 输出 an_clk
stat_an_link_cntl_100gbase_kp4[1:0] 输出 an_clk
stat_an_link_cntl_100gbase_kr4[1:0] 输出 an_clk
stat_an_link_cntl_10gbase_kr[1:0] 输出 an_clk
stat_an_link_cntl_10gbase_kx4[1:0] 输出 an_clk
stat_an_link_cntl_25gbase_krcr[1:0] 输出 an_clk
stat_an_link_cntl_25gbase_cr1[1:0] 输出 an_clk
stat_an_link_cntl_25gbase_krcr_s[1:0] 输出 an_clk
stat_an_link_cntl_25gbase_kr1[1:0] 输出 an_clk
stat_an_link_cntl_40gbase_cr4[1:0] 输出 an_clk
stat_an_link_cntl_40gbase_kr4[1:0] 输出 an_clk
stat_an_link_cntl_50gbase_cr2[1:0] 输出 an_clk
stat_an_link_cntl_50gbase_kr2[1:0] 输出 an_clk
stat_an_fec_enable 输出 an_clk 用于支持在链路上使用第 74 条 FEC。
stat_an_rs_fec_enable 输出 an_clk 用于支持在链路上使用第 91 条 FEC。
stat_an_tx_pause_enable 输出 an_clk 用于支持在发射路径中进行站对站(全局)暂停包生成,以控制接收路径中的数据流。
stat_an_rx_pause_enable 输出 an_clk 用于支持在接收路径中进行站对站(全局)暂停包解释,以控制来自发射器的数据流。
stat_an_autoneg_complete 输出 an_clk 指示自动协商已完成,并且已接收到来自 PCS 的 rx 链路状态。
stat_an_parallel_detection_fault 输出 an_clk 指示自动协商期间发生并行检测故障。
stat_an_lp_ability_1000base_kx 输出 an_clk 这些信号用于指示从链路伙伴播发的协议。当 stat_an_lp_ability_valid 输出信号断言有效时,这些信号全部变为有效。值为 1 表示此协议已作为链路伙伴支持的协议进行播发。
stat_an_lp_ability_100gbase_cr10 输出 an_clk
stat_an_lp_ability_100gbase_cr4 输出 an_clk
stat_an_lp_ability_100gbase_kp4 输出 an_clk
stat_an_lp_ability_100gbase_kr4 输出 an_clk
stat_an_lp_ability_10gbase_kr 输出 an_clk
stat_an_lp_ability_10gbase_kx4 输出 an_clk
stat_an_lp_ability_25gbase_krcr 输出 an_clk
stat_an_lp_ability_25gbase_krcr_s 输出 an_clk
stat_an_lp_ability_40gbase_cr4 输出 an_clk
stat_an_lp_ability_40gbase_kr4 输出 an_clk
stat_an_lp_ability_25gbase_cr1 输出 an_clk 用于指示从链路伙伴播发的协议。当 stat_an_lp_extended_ability_valid 输出信号断言有效时,此信号即变为有效。值为 1 表示此协议已作为链路伙伴支持的协议进行播发。
stat_an_lp_ability_25gbase_kr1 输出 an_clk 用于指示从链路伙伴播发的协议。当 stat_an_lp_extended_ability_valid 输出信号断言有效时,此信号即变为有效。值为 1 表示此协议已作为链路伙伴支持的协议进行播发。
stat_an_lp_ability_50gbase_cr2 输出 an_clk 用于指示从链路伙伴播发的协议。当 stat_an_lp_extended_ability_valid 输出信号断言有效时,此信号即变为有效。值为 1 表示此协议已作为链路伙伴支持的协议进行播发。
stat_an_lp_ability_50gbase_kr2 输出 an_clk 用于指示从链路伙伴播发的协议。当 stat_an_lp_extended_ability_valid 输出信号断言有效时,此信号即变为有效。值为 1 表示此协议已作为链路伙伴支持的协议进行播发。
stat_an_lp_pause 输出 an_clk 此信号用于指示来自链路伙伴的接收链路代码字的 PAUSE 位 (C0) 的播发值。当 stat_an_lp_ability_valid 输出信号断言有效时,此信号即变为有效。
stat_an_lp_asm_dir 输出 an_clk 此信号用于指示来自链路伙伴的接收链路代码字的 ASMDIR 位 (C1) 的播发值。当 stat_an_lp_ability_valid 输出信号断言有效时,此信号即变为有效。
stat_an_lp_fec_10g_ability 输出 an_clk

此信号用于指示接收链路代码字中的第 74 条 FEC 功能位的播发值,

此接收链路代码字位于来自链路伙伴的对应 10 Gb/s PMD 接口上。当 stat_an_lp_ability_valid 输出信号断言有效时,此信号即变为有效。

stat_an_lp_fec_10g_request 输出 an_clk 此信号用于指示接收链路代码字中的第 74 条 FEC 请求位的播发值,此接收链路代码字位于来自链路伙伴的对应 10 Gb/s PMD 接口上。当 stat_an_lp_ability_valid 输出信号断言有效时,此信号即变为有效。
stat_an_lp_fec_25g_rs_request 输出 an_clk 此信号用于指示接收链路代码字中的 RS-FEC 请求位的播发值,此接收链路代码字位于来自链路伙伴的对应 25 Gb/s PMD 接口上。当输出信号断言有效时,此信号即变为有效。
stat_an_lp_fec_25g_baser_request 输出 an_clk 此信号用于指示接收链路代码字的第 74 条 FEC 请求位的播发值,此接收链路代码字位于来自链路伙伴的对应 25 Gb/s PMD 接口上。当 stat_an_lp_ability_valid 输出信号断言有效时,此信号即变为有效。
stat_an_lp_autoneg_able 输出 an_clk 此输出信号用于指示链路伙伴能够执行自动协商。当 stat_an_lp_ability_valid 输出信号断言有效时,此信号即变为有效。
stat_an_lp_ability_valid 输出 an_clk 此信号用于指示何时所有链路伙伴播发将变为有效。
an_loc_np_data[47:0] 输入 an_clk 本地下一页代码字。这是设置 loc_np 输入的情况下所使用的 48 位代码字。在此数据字段中,位 NP、ACK 和 T 以及位元位置 15、14、12 和 11 将不会随下一页代码字一起传输。这些位是在 AN IP 中生成的。但位元位置 13 处的消息协议位 MP 将进行传输。
an_lp_np_data[47:0] 输出 an_clk 链路伙伴下一页数据信号。此 48 位代码字由 AN IP 驱动,包含来自远程链路伙伴的 48 位下一页代码字。
ctl_an_loc_np 输入 an_clk 本地下一页 (Local Next Page) 信号指示符。如果此位为 1,则 AN IP 会将 loc_np_data 输入处的下一页代码字传输到远程链路伙伴。如果此位为 0,则 AN IP 不会启动下一页协议。如果链路伙伴包含多个待发送的下一页信号,并且 loc_np 位已清零,那么 AN IP 将传输空消息页面。
stat_fec_inc_cant_correct_count[3:0] 输出 rx_serdes_clk

不可纠正错误的逻辑指示。如果遇到不可纠正的数据包,

则此输出信号会循环一次。此信号将在至少 16 个时钟周期内保持高电平 (High) 状态,

然后转至低电平 (Low) 状态并保持至少 16 个时钟周期。每个通道 1 个时钟。

stat_fec_inc_correct_count[3:0] 输出 rx_serdes_clk

可纠正错误的逻辑指示。如果遇到可纠正的数据包,

则此输出信号会循环一次。此信号将在至少 16 个时钟周期内保持高电平 (High) 状态,然后转至低电平 (Low) 状态并保持至少 16 个时钟周期。每个通道 1 个时钟。

stat_fec_lock_error[3:0] 输出 rx_serdes_clk

帧锁定失败的逻辑指示。接收器会扫描传入的数据串流中的约 10,000,000 位,通过尝试所有可能的位对齐来实现帧同步。随后,断言此信号高电平有效,直至接收器达成帧锁定。

每个通道 1 个时钟。

stat_fec_rx_lock[3:0] 输出 rx_serdes_clk 帧锁定的逻辑指示。接收器对传入比特流达成帧锁定时,断言此信号为高电平有效。每个通道 1 个时钟。
ctl_an_lp_np_ack 输入 an_clk

链路伙伴下一页确认信号。此信号用于告知 AN IP,本地主机已读取位于 lp_np_data 输出管脚处的下一页数据(来自远端链路伙伴)。当此信号变为高电平时,表示 AN IP 确认已接收发送到远端链路伙伴的下一页代码字,并启动下一个代码字的传输。

在此期间,AN IP 会移除 lp_np 信号,直至新的下一页信息可用为止。

stat_an_loc_np_ack 输出 an_clk 此信号可指示用于接收 loc_np_data 输入管脚上显示的本地下一页数据的本地主机。当 AN IP 在 loc_np_data 输入管脚上对下一页数据进行采样时,此信号将脉冲至高电平并保持 1 个时钟周期。当本地主机检测到此信号为高电平时,它必须将位于 loc_np_data 输入管脚处的 48 位下一页代码字替换为要发送的下一个 48 位代码字。如果本地主机没有其它下一页要发送,则它必须将 loc_np 输入清零。
stat_an_lp_np 输出 an_clk 链路伙伴下一页信号。此信号用于指示在 lp_np_data 输出管脚处存在来自远端链路伙伴的有效的 48 位下一页代码字。当 lp_np_ack 输入信号被驱动至高电平时,此信号将被驱动至低电平,表示本地主机已读取下一页数据。它将保持低电平,直至在 lp_np_data 输出管脚上下一个代码字变为可用为止,届时 lp_np 输出将被重新驱动至高电平。
stat_an_lp_ability_extended_fec[1:0] 输出 an_clk 此输出用于指示 Schedule 3 中所定义的 FEC 扩展功能。
stat_an_lp_extended_ability_valid 输出 an_clk 当该位为 1 时,表示检测到的扩展功能有效。
stat_an_lp_rf 输出 an_clk 此位用于指示链路伙伴远端故障。
stat_an_start_tx_disable 输出 an_clk 当 ctl_autoneg_enable 为高电平且 ctl_autoneg_bypass 为低电平时,此 stat_an_start_tx_disable 信号会在自动协商的 TX_DISABLE 阶段开始时,在 1 个时钟周期内保持高电平循环。即,当自动协商进入 TX_DISABLE 状态时,此输出将保持高电平循环(持续 1 个时钟周期)。这样即可有效标示自动协商开始。
stat_an_start_an_good_check 输出 an_clk

当 ctl_autoneg_enable 为高电平且 ctl_autoneg_bypass 为低电平时,此 stat_an_start_an_good_check 信号会在自动协商的 AN_GOOD_CHECK 阶段开始时保持高电平循环(持续 1 个时钟周期)。即,当自动协商进入 AN_GOOD_CHECK 状态时,此输出将在 1 个时钟周期内保持循环高电平。这样即可有效标示链路训练开始。但如果未启用链路训练,即,如果 ctl_lt_training_enable 输入为低电平,那么 stat_an_start_an_good_check 输出可有效标示任务模式操作开始。