Low Latency 50G Ethernet Intel® FPGA IP User Guide: Stratix® 10 Devices

ID 683675
Date 4/09/2024
Public
Document Table of Contents

6.1. PHY Registers

Table 22.  PHY RegistersThe global hard reset csr_rst_n resets all of these registers. The TX reset tx_rst_n and RX reset rx_rst_n signals do not reset these registers.
Addr Name Description Reset Access
0x300 REVID IP core PHY module revision ID. 0x0210 2017 RO
0x301 SCRATCH Scratch register available for testing. 0x0000 0000 RW
0x302 PHY_NAME_0 First characters of IP core variation identifier string, "0050". The "00" is unprintable. 0x0000 3530 RO
0x303 PHY_NAME_1 Next characters of IP core variation identifier string, "00GE". The "00" is unprintable. 0x0000 4745 RO
0x304 PHY_NAME_2 Final characters of IP core variation identifier string, "0pcs". The "0" is unprintable. 0x0070 6373 RO
0x310 PHY_CONFIG PHY configuration registers. The following bit fields are defined:
  • Bit[0]: : eio_sys_rst. Full system reset (except registers). Set this bit to initiate the internal reset sequence.
  • Bit[1]: soft_txp_rst. TX soft reset.Resets TX PCS, MAC, and adapter.
  • Bit[2]: soft_rxp_rst. RX soft reset. Resets RX PCS, MAC, and adapter.
  • Bit[3]: Reserved.
  • Bit[4]: set_ref_lock. Directs the RX CDR PLL to lock to the reference clock.
  • Bit[5]: set_data_lock. Directs the RX CDR PLL to lock to data.
  • Bits[31:6]: Reserved.

26'hX_2'b0_1'bX_3'b0 2

RW
0x312 WORD_LOCK When asserted, indicates that the virtual channel has identified 66 bit block boundaries in the serial data stream. 30'hX4'b0 2 RO
0x313 EIO_SLOOP Serial PMA loopback. Setting a bit puts the corresponding transceiver in serial loopback mode. In serial loopback mode, the TX lane loops back to the RX lane on an internal loopback path. 30'hX2'b00 2 RW
0x314 EIO_FLAG_SEL Supports indirect addressing of individual FIFO flags in the PCS Native PHY IP core. Program this register with the encoding for a specific FIFO flag. The flag values (one per transceiver) are then accessible in the EIO_FLAGS register.

The value in the EIO_FLAG_SEL register directs the IP core to make available the following FIFO flag:

  • 3'b000: TX FIFO full
  • 3'b001: TX FIFO empty
  • 3b010: TX FIFO partially full
  • 3'b011: TX FIFO partially empty
  • 3b100: RX FIFO full
  • 3b101: RX FIFO empty
  • 3b110: RX FIFO partially full
  • 3b111: RX FIFO partially empty
29'hX3'b0 2 RW
0x315 EIO_FLAGS PCS indirect data. To read a FIFO flag, set the value in the EIO_FLAG_SEL register to indicate the flag you want to read. After you specify the flag in the EIO_FLAG_SEL register, each bit [n] in the EIO_FLAGS register has the value of that FIFO flag for the transceiver channel for lane [n]. 30'hX2'b0 2 RO
0x321 EIO_FREQ_LOCK Each asserted bit indicates that the corresponding lane RX clock data recovery (CDR) phase-locked loop (PLL) is locked. 30'hX2'b00 2 RO
0x322 PHY_CLK The following encodings are defined:
  • Bit[0]: Indicates if the TX PCS is ready
  • Bit [1]: Indicates if the TX PLL is locked.
  • Bit[2]: Indicates if the RX PLL is locked.
29'hX3'b00 2 RO
0x323 FRM_ERR

Each asserted bit indicates that the corresponding virtual lane has a frame error. You can read this register to determine if the IP core sustains a low number of frame errors, below the threshold to lose word lock. These bits are sticky, unless the IP core loses word lock. Write 1'b1 to the SCLR_FRM_ERR register to clear.

If the IP core loses word lock, it clears this register.

28'hX_4'b0 2 RO
0x324 SCLR_FRM_ERR Synchronous clear for FRM_ERR register. Write 1'b1 to this register to clear the FRM_ERR register and bit [1] of the LANE_DESKEWED register. A single bit clears all sticky framing errors.

This bit does not auto-clear. Write a 1'b0 to continue logging frame errors.

0x0 RW
0x325 EIO_RX_SOFT_PURGE_S

Set bit [0] to clear the RX FIFO for both physical lanes.

1'bX_1'b0 2

RO

RW

0x326 RX_PCS_FULLY_ALIGNED_S Indicates the RX PCS is fully aligned and ready to accept traffic.
  • Bit[0]: RX PCS fully aligned status.
  • Bit[1]: RX PCS bit error rate status. A bit value of 1 indicates a bit error rate higher than 10-4 or there are at least 16 errors within 50 us. This bit value is only valid when the link fault generation is enabled.
31'hX1'b0 2 RO
0x328 AM_LOCK When asserted indicates that the physical channel has identified virtual lane alignment markers in the data stream. 28'hX_4'b0 2 RO
0x329 LANE_DESKEWED
The following encodings are defined:
  • Bit [0]: Indicates all lanes are deskewed.
  • Bit [1]: When asserted indicates a change in lanes deskewed status. To clear this sticky bit, write 1'b1 to the corresponding bit of the SCLR_FRM_ERR register. This is a latched signal.
30'hX2'b00 2 RO
0x330 PCS_VLANE The following encodings are defined:
  • Bit [1:0]: First virtual index for physical lane 0.
  • Bit [3:2]: Second virtual index for physical lane 0.
  • Bit [5:4]: First virtual index for physical lane 1.
  • Bit [7:6]: Second virtual index for physical lane 1.
24'bX8'b0 2 RO
0x331 PHY_RX_DELAY Test and debug feature to test deskew. Allows you to insert a programmable skew on one physical channel.
  • Bit[0]: Allows you to you to shift 33 bits for incoming stream in physical channel 0, effectively inserting sew on two of the virtual lanes.
  • Bit[5:1]: Allows you to insert a 1-32 word delay on the two virtual channels arriving on physical lane 0. To use bits[5;1], you must set an RX PCS dynamic parameter that is not exposed at the top level (DYNAMIC_SKEW).
26'hX_6'b0 RW
0x340 KHZ_REF The register indicates the value of reference clock frequency. Apply the following definition for the frequency value:

[(Register value 3 * clk_status)/10] KHZ

0x0000 0000 RO
0x341 KHZ_RX The register indicates the value of RX clock (clk_rxmac) frequency. Apply the following definition for the frequency value:

[(Register value 3 * clk_status)/10] KHZ

0x0000 0000 RO
0x342 KHZ_TX The register indicates the value of TX clock (clk_txmac) frequency. Apply the following definition for the frequency value:

[(Register value 3 * clk_status)/10] KHZ

0x0000 0000 RO
2 X means "Don't Care".
3 Register value convert in decimal.