PCS Modes - 2.1 English

Versal ACAP 600G Channelized Multirate Ethernet Subsystem (DCMAC) LogiCORE IP Product Guide (PG369)

Document ID
PG369
Release Date
2023-04-12
Version
2.1 English

In this example, data transfer into the FLEX I/F port is active on Client 0 and 2. Client 0 is 100GE in raw mode (c0_ctl_flexif_select==0). The user logic drives data (tx_flex_data_0) into the interface while asserting tx_flex_ena_0. In this mode, the user provides the alignment markers, which are indicated by tx_flex_am_flag_0. Client 2 is 200GE in one of the other PCS modes. In this case, the user logic can indicate where the AM should go by asserting tx_flex_am_flag_2. The AM is inserted just before the data on this cycle. The ability to specify the AM location is enabled by asserting c2_ctl_tx_flexif_am_mode.

Notice the relationship between the per-port tx_flex_stall_<N> signal and tx_flex_ena_<N>. The stall signal is output to backpressure the transfers into the FLEX I/F. For the stall signal, you must stall (drop the enable) for the same number of cycles that the stall signal is asserted (within three cycles). For example, if the stall signal is High for one cycle, drop the enable signal for one cycle. The enable should follow the stall by a fixed number (0-3) of cycles (except inverted).

Figure 1. TX PCS Flex Interface

In the receive direction, the FLEX I/F outputs data at the configured port rate. Valid data is indicated by the per-client signal rx_flex_ena_<N>. When rx_flex_ena_<N> is deasserted, the data is invalid. There is no backpressure from the user logic back to the FLEX I/F port. The user logic must be able to keep up with the selected data rate. In the following example, client 0 is 400GE. The AM position is indicated by rx_flex_amflag_0. Client 4 is 128GFC (c4_ctl_rx_flexif_select==0 and and c4_ctl_rx_fec_mode == 5'b01000). In this mode, the AM is provided and indicated with rx_flex_amflag_4.

Note: For the FLEX I/F, rx_flex_ena0 controls 200G Client 0, rx_flex_ena2 controls 200G Client 2, and rx_flex_ena4 controls 200G Client 4. While rx_flex_ena0 controls 400G Client 0.
Figure 2. RX PCS Flex Interface
The rx_flex_startb_<N> signal is used to indicate the RX status. The user logic can use the status signal to switch to a locally timed and generated local fault if desired.
Important: Check that the status signal is stable for at least two enabled cycles before taking action.