在此示例中,传输到 FLEX I/F 端口的数据在客户端 0 和 2 上处于活动(有效)状态。客户端 0 为 100GE,采用原始模式 (c0_ctl_flexif_select==0
)。用户逻辑将数据 (tx_flex_data_0
) 驱动到接口中,同时将 tx_flex_ena_0
断言有效。在此模式下,用户提供对齐标记,这些标记以 tx_flex_am_flag_0
来表示。客户端 2 为 200GE,采用其他任一 PCS 模式。在此情况下,用户逻辑可以通过断言 tx_flex_am_flag_2
有效来指明 AM 的目标位置。AM 直接插入此周期上的数据之前。通过断言 c2_ctl_tx_flexif_am_mode
有效即可启用指定 AM 位置的功能。
请注意逐端口 tx_flex_stall_<N>
信号与 tx_flex_ena_<N>
之间的关系。停滞 (stall) 信号输出用于将传输反压到 FLEX I/F 中。对于停滞信号,停滞(删除使能信号)的时钟周期数必须与停滞信号断言有效的周期数相同(在 2 个周期内)。例如,如果 stall 信号为高电平 (High) 并保持 1 个周期,那么请删除 enable 信号 1 个周期。enable 应跟随在 stall 之后,且相距固定周期数 (0-2)(反相除外)。
在接收方向上,FLEX I/F 输出采用配置的端口速率。有效数据以信号
rx_flex_ena_<N>
(按客户端)来指示。当 rx_flex_ena_<N>
断言无效时,数据即为无效。不存在从用户逻辑返回 FLEX I/F 端口的反压。用户逻辑必须能够与所选数据速率保持一致。在以下示例中,客户端 0 为 400GE。AM 位置以 rx_flex_amflag_0
来指示。客户端 4 为 128GFC(c4_ctl_rx_flexif_select==0
且 c4_ctl_rx_fec_mode == 5'b01000
)。在此模式下,以 rx_flex_amflag_4
来提供和指示 AM。
rx_flex_startb_<N>
信号用于指示 RX 状态。用户逻辑可以按需使用状态信号来切换到局部定时和生成的本地故障。