运行时可切换 - 3.3 简体中文

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

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

通过此配置可随时在 40G 和 50G 之间灵活切换线速率。要激活此功能,请在“Configuration”(配置)选项卡下选中Runtime Switchable mode(运行时可切换模式)选项复选框。选中此选项时,即可使用 ch0_txratech0_rxrate 端口来更改速度。在内部,GT IP 将执行必要的 DRP 写入操作来达到所需的速度。选中此选项时,设计示例的 *_pkt_gen_mon.v 模块内将显示 *_trans_debug 模块。此 *_trans_debug 模块负责执行所有 GT DRP 写入操作以切换收发器模式,即从 40G 切换至 50G 或从 50G 切换至 40G。将 mode_change_* input 信号设置为高电平并保持 2 个时钟周期,然后再将其设置为低电平时,它会为特定的核针对 GT 通道启动 DRP 写入操作,然后将该核复位。仅针对该通道执行 DRP 写入操作。对于线速率 50G,公用端口固定为 QPLL0,线速率 40G 则固定为 QPLL1。

注释: 对于切换操作,您应将 trans_debug 模块复制到自己的设计中。

下图显示了在此进程中发生的状态转换。

图 1. 不包含 AN/LT 时的运行时可切换 DRP 操作状态转换图 Page-1 Sheet.1 Sheet.2 Ellipse IDLE_STATE IDLE_STATE Sheet.4 done_cnt[4] == 1'b1 done_cnt[4] == 1'b1 Ellipse.34 WR_STATE WR_STATE Ellipse.35 WR_RDY_STATE WR_RDY_STATE Ellipse.19 READ_STATE READ_STATE Ellipse.2 RMW_RDY_STATE RMW_RDY_STATE Ellipse.3 RD_MODIFY_WR_STATE RD_MODIFY_WR_STATE Ellipse.4 DONE_STATE DONE_STATE Ellipse.5 MODE_SWITCH_STATE MODE_SWITCH_STATE Sheet.12 Sheet.13 Sheet.14 Sheet.15 (rdy_reg && wr_index == INDEX_MAX1) (rdy_reg && wr_index == INDEX_MAX1) Sheet.16 Sheet.17 (rdy_reg && wr_index < INDEX_MAX1) (rdy_reg && wr_index < INDEX_MAX1) Sheet.18 Sheet.19 Sheet.20 Sheet.21 (rdy_reg && wr_index == INDEX_MAX2 && rd_flag) (rdy_reg && wr_index == INDEX_MAX2 && rd_flag) Sheet.22 Sheet.23 (rdy_reg && wr_index < INDEX_MAX2 && rd_flag) (rdy_reg && wr_index < INDEX_MAX2 && rd_flag) Sheet.24 (rdy_reg && rd_index <= INDEX_MAX2 && rd_flag == 1'b0) (rdy_reg && rd_index <= INDEX_MAX2 && rd_flag == 1'b0) Sheet.25 Sheet.26 Sheet.27 Sheet.28 Sheet.29 (ten_to_twentyfive || twentyfive_to_ten) (ten_to_twentyfive || twentyfive_to_ten) Sheet.30 X17802-090116 Sheet.31 Sheet.32 Sheet.33 X17802-080621
图 2. 包含 AN/LT 时的运行时可切换 DRP 操作状态转换图 Page-1 Sheet.2 Ellipse IDLE_STATE IDLE_STATE Sheet.4 (ten_to_twentyfive || twentyfive_to_ten || flag_an_lt) (ten_to_twentyfive || twentyfive_to_ten || flag_an_lt) Sheet.5 done_cnt[4] == 1'b1 done_cnt[4] == 1'b1 Ellipse.34 WR_STATE WR_STATE Ellipse.35 WR_RDY_STATE WR_RDY_STATE Ellipse.19 READ_STATE READ_STATE Ellipse.2 RMW_RDY_STATE RMW_RDY_STATE Ellipse.3 RD_MODIFY_WR_STATE RD_MODIFY_WR_STATE Ellipse.4 DONE_STATE DONE_STATE Ellipse.5 MODE_SWITCH_STATE MODE_SWITCH_STATE Sheet.13 Sheet.14 Sheet.15 Sheet.16 (rdy_reg && wr_index == INDEX_MAX1) (rdy_reg && wr_index == INDEX_MAX1) Sheet.17 Sheet.18 (rdy_reg && wr_index < INDEX_MAX1) (rdy_reg && wr_index < INDEX_MAX1) Sheet.19 Sheet.20 Sheet.21 Sheet.22 (rdy_reg && wr_index == INDEX_MAX2 && rd_flag) (rdy_reg && wr_index == INDEX_MAX2 && rd_flag) Sheet.23 Sheet.24 (rdy_reg && wr_index < INDEX_MAX2 && rd_flag) (rdy_reg && wr_index < INDEX_MAX2 && rd_flag) Sheet.25 (rdy_reg && rd_index <= INDEX_MAX2 && rd_flag == 1'b0) (rdy_reg && rd_index <= INDEX_MAX2 && rd_flag == 1'b0) Sheet.26 Ellipse.29 CHECK_STATE CHECK_STATE Sheet.28 Sheet.29 flag_an_lt==1'b1 flag_an_lt==1'b1 Dynamic connector Sheet.31 no_switch==1'b1 no_switch==1'b1 Ellipse.31 WAIT_LINK_ON_STATE WAIT_LINK_ON_STATE Dynamic connector.26 Sheet.34 ((stat_an_start_an_good_check_sync == 1'b1 || ctl_autoneg_byp... ((stat_an_start_an_good_check_sync == 1'b1 || ctl_autoneg_bypass_sync == 1'b1) &&(mode_switch == 1'b1)) Sheet.35 Dynamic connector.28 Dynamic connector.32 Sheet.38 (stat_an_start_an_good_check_sync == 1'b1 || ctl_autoneg_bypa... (stat_an_start_an_good_check_sync == 1'b1 || ctl_autoneg_bypass_sync == 1'b1) Dynamic connector.38 Sheet.41 Sheet.42 Sheet.43 Sheet.40 X17803-090116 X17803-080621
注释: “运行时可切换”小节仅适用于 UltraScale/UltraScale+ 器件。对于 Versal ACAP,您需要通过在 SWITCH_CORE_SPEED_REG: 013C 寄存器中写入 1 来请求速度变更。