Low Latency 40-Gbps Ethernet IP Core User Guide

ID 683745
Date 3/08/2021
Public
Document Table of Contents

3.4.1.1. PHY Registers

Table 36.  PHY Registers

Addr

Name

Bit

Description

HW Reset Value

Access

0x300 PHY_REVID [31:0] IP core PHY module revision ID. 0x02062015 RO
0x301 PHY_SCRATCH [31:0] Scratch register available for testing. 32'b0 RW
0x302 PHY_NAME_0 [31:0] First 4 characters of IP core variation identifier string " 40GE pcs " . RO
0x303 PHY_NAME_1 [31:0] Next 4 characters of IP core variation identifier string " 40GE pcs " . RO
0x304 PHY_NAME_2 [31:0] Final 4 characters of IP core variation identifier string " 40GE pcs " . RO
0x310 PHY_CONFIG [5] set_data_lock: Directs the PLL to lock to data. 6'b0 RW
[4] set_ref_lock: Directs the PLL to lock to the reference clock.
[3] rxp_ignore_freq: Directs the IP core to proceed with the internal reset sequence (to reset the RX PLL) without waiting for the RX CDR PLL to lock.
[2] soft_rxp_rst: RX PLL soft reset
[1] soft_txp_rst: TX PLL soft reset
[0] eio_sys_rst: PMA system reset. Set this bit to start the internal reset sequence.

0x313

PHY_PMA_SLOOP

[3:0] or [9:0]

Serial PMA loopback. Each bit that is asserted directs the IP core to connect the corresponding TX–RX lane pair on the internal loopback path, by setting the corresponding transceiver in serial loopback mode.

This option is not available when KR is enabled.

0 RW

0x314

PHY_PCS_INDIRECT_ADDR

[2:0]

Supports indirect addressing of individual FIFO flags in the 10G 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 PHY_PCS_INDIRECT_DATA register.

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

  • 3'b111: RX partial empty
  • 3'b110: RX partial full
  • 3'b101: RX empty
  • 3'b100: RX full
  • 3'b011: TX partial empty
  • 3'b010: TX partial full
  • 3'b001: TX empty
  • 3'b000: TX full
3'b0 RW

0x315

PHY_PCS_INDIRECT_DATA

[3:0] or [9:0]

PCS indirect data. To read a FIFO flag, set the value in the PHY_PCS_INDIRECT_ADDR register to indicate the flag you want to read. After you set the specific flag indication in the PHY_PCS_INDIRECT_ADDR register, each bit [n] in the PHY_PCS_INDIRECT_DATA register has the value of that FIFO flag for the transceiver channel for lane [n].

This register has four valid bits [3:0].

TX full flags RO

0x320

PHY_TX_PLL_LOCKED

[9:0]

Each bit that is asserted indicates that the corresponding lane TX transceiver PLL is locked. 10'b0 RO

0x321

PHY_EIOFREQ_LOCKED

[9:0]

Each bit that is asserted indicates that the corresponding lane RX CDR PLL is locked.

10'b0

RO

RO

0x322

PHY_TX_COREPLL_LOCKED

[2] RX PLL is locked. 3'b0

RO

[1] TX MAC PLL is locked.
[0] TX PCS is ready.

0x323

PHY_FRAME_ERROR

[3:0] or [19:0]

Each bit that is asserted indicates that the corresponding virtual lane has a frame error. If you read a non-zero value in this register, the virtual lanes that correspond to non-zero bits have observed frame errors.

You can clear these bits with the PHY_SCLR_FRAME_ERROR register.

Intel recommends that you set bit [0] of the PHY_SCLR_FRAME_ERROR register and read the PHY_FRAME_ERROR register again to determine if the PHY frame error is generated continuously.

These bits are not sticky: the IP core clears them more than once while attempting to achieve alignment.

0xF or 0xFFFFF

RO

0x324

PHY_SCLR_FRAME_ERROR

[0]

Synchronous clear for PHY_FRAME_ERROR register. Write the value of 1 to this register to clear the PHY_FRAME_ERROR register. This bit is not self-clearing. You should reset this register to the value of 0 within ten clk_status clock cycles. If you do not reset the PHY_SCLR_FRAME_ERROR register, the value in the PHY_FRAME_ERROR register is not useful.

1'b0

RW

0x325 PHY_EIO_SFTRESET [1] Set this bit to clear the RX FIFO. This bit is not self-clearing. 2'b00 RW
[0] RX PCS reset: set this bit to reset the RX PCS. This bit is not self-clearing.

0x326

PHY_RXPCS_STATUS

[1:0] Indicates the RX PCS is fully aligned and ready to accept traffic.
  • Bit [1]: HI BER status (bit error rate is high according to Ethernet standard definition). This bit maintains the value of 1'b0 unless you turn on Enable link fault generation .
  • Bit [0]: RX PCS fully aligned status.
0 RO

0x340

PHY_REFCLK_KHZ

[31:0] Reference clock frequency in KHz, assuming the clk_status clock has the frequency of 100 MHz. The reference clock frequency is the value in the PHY_REFCLK_KHZ register times the frequency of the clk_status clock, divided by 100. RO

0x341

PHY_RXCLK_KHZ

[31:0] RX clock (clk_rxmac) frequency in KHz, assuming the clk_status clock has the frequency of 100 MHz. The RX clock frequency is the value in the PHY_RXCLK_KHZ register times the frequency of the clk_status clock, divided by 100. RO

0x342

PHY_TXCLK_KHZ

[31:0] TX clock (clk_txmac) frequency in KHz, assuming the clk_status clock has the frequency of 100 MHz. The TX clock frequency is the value in the PHY_TXCLK_KHZ register times the frequency of the clk_status clock, divided by 100. RO

0x343

PHY_RECCLK_KHZ

[31:0] RX recovered clock frequency in KHz, assuming the clk_status clock has the frequency of 100 MHz. The RX recovered clock frequency is the value in the PHY_RECCLK_KHZ register times the frequency of the clk_status clock, divided by 100. RO

0x344

PHY_TXIOCLK_KHZ

[31:0] TX PMA clock frequency in KHz, assuming the clk_status clock has the frequency of 100 MHz. The TX PMA clock frequency is the value in the PHY_TX10CLK_KHZ register times the frequency of the clk_status clock, divided by 100. RO