Low Latency 40-Gbps Ethernet IP Core User Guide

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

3.4.1.6. TX Statistics Registers

The TX statistics registers count TX Ethernet traffic and errors. The 64-bit statistics registers are designed to roll over, to ensure timing closure on the FPGA. However, these registers should never roll over if the link is functioning properly. The statistics registers check the size of frames, which includes the following fields:

  • Size of the destination address
  • Size of the source address
  • Size of the data
  • Four bytes of CRC

The TX statistics counters module is a synthesis option. The statistics registers are counters that are implemented inside the CSR. When you turn on the Enable TX statistics parameter in the LL 40GbE parameter editor, the counters are implemented in the CSR. When you turn off the Enable TX statistics parameter in the LL 40GbE parameter editor, the counters are not implemented in the CSR, and read access to the counters returns read data equal to 0.

Reading the value of a statistics register does not affect its value. A configuration register at offset 0x845 allows you to clear all of the TX statistics counters.

To ensure that the counters you read are consistent, you should issue a shadow request to create a snapshot of all of the TX statistics registers, by setting bit [2] of the configuration register at offset 0x845. Until you reset this bit, the counters continue to increment but the readable values remain constant.

Table 44.  Transmit Side Statistics Registers

Address

Name-

Description

Access

0x800

CNTR_TX_FRAGMENTS_LO

Number of transmitted frames less than 64 bytes and reporting a CRC error (lower 32 bits)

RO

0x801

CNTR_TX_FRAGMENTS_HI

Number of transmitted frames less than 64 bytes and reporting a CRC error (upper 32 bits)

RO

0x802

CNTR_TX_JABBERS_LO

Number of transmitted oversized frames reporting a CRC error (lower 32 bits)

RO

0x803

CNTR_TX_JABBERS_HI

Number of transmitted oversized frames reporting a CRC error (upper 32 bits)

RO

0x804

CNTR_TX_FCS_LO

Number of transmitted packets with FCS errors. (lower 32 bits)

RO

0x805

CNTR_TX_FCS_HI

Number of transmitted packets with FCS errors. (upper 32 bits)

RO

0x806

CNTR_TX_CRCERR_LO

Number of transmitted frames with a frame of length at least 64 reporting a CRC error (lower 32 bits)

RO

0x807

CNTR_TX_CRCERR_HI

Number of transmitted frames with a frame of length at least 64 reporting a CRC error (upper 32 bits)

RO

0x808

CNTR_TX_MCAST_DATA_ERR_LO

Number of errored multicast frames transmitted, excluding control frames (lower 32 bits)

RO

0x809

CNTR_TX_MCAST_DATA_ERR_HI

Number of errored multicast frames transmitted, excluding control frames (upper 32 bits)

RO

0x80A

CNTR_TX_BCAST_DATA_ERR_LO

Number of errored broadcast frames transmitted, excluding control frames (lower 32 bits)

RO

0x80B

CNTR_TX_BCAST_DATA_ERR_HI

Number of errored broadcast frames transmitted, excluding control frames (upper 32 bits)

RO

0x80C

CNTR_TX_UCAST_DATA_ERR_LO

Number of errored unicast frames transmitted, excluding control frames (lower 32 bits)

RO

0x80D

CNTR_TX_UCAST_DATA_ERR_HI

Number of errored unicast frames transmitted, excluding control frames (upper 32 bits)

RO

0x80E

CNTR_TX_MCAST_CTRL_ERR_LO

Number of errored multicast control frames transmitted (lower 32 bits)

RO

0x80F

CNTR_TX_MCAST_CTRL_ERR_HI

Number of errored multicast control frames transmitted (upper 32 bits)

RO

0x810

CNTR_TX_BCAST_CTRL_ERR_LO

Number of errored broadcast control frames transmitted (lower 32 bits)

RO

0x811

CNTR_TX_BCAST_CTRL_ERR_HI

Number of errored broadcast control frames transmitted (upper 32 bits)

RO

0x812

CNTR_TX_UCAST_CTRL_ERR_LO

Number of errored unicast control frames transmitted (lower 32 bits)

RO

0x813

CNTR_TX_UCAST_CTRL_ERR_HI

Number of errored unicast control frames transmitted (upper 32 bits)

RO

0x814

CNTR_TX_PAUSE_ERR_LO

Number of errored pause frames transmitted (lower 32 bits)

RO

0x815

CNTR_TX_PAUSE_ERR_HI

Number of errored pause frames transmitted (upper 32 bits)

RO

0x816

CNTR_TX_64B_LO

Number of 64-byte transmitted frames (lower 32 bits), including the CRC field but excluding the preamble and SFD bytes

RO

0x817

CNTR_TX_64B_HI

Number of 64-byte transmitted frames (upper 32 bits), including the CRC field but excluding the preamble and SFD bytes

RO

0x818

CNTR_TX_65to127B_LO

Number of transmitted frames between 65–127 bytes (lower 32 bits)

RO

0x819

CNTR_TX_65to127B_HI

Number of transmitted frames between 65–127 bytes (upper 32 bits)

RO

0x81A

CNTR_TX_128to255B_LO

Number of transmitted frames between 128 –255 bytes (lower 32 bits)

RO

0x81B

CNTR_TX_128to255B_HI

Number of transmitted frames between 128 –255 bytes (upper 32 bits)

RO

0x81C

CNTR_TX_256to511B_LO

Number of transmitted frames between 256 –511 bytes (lower 32 bits)

RO

0x81D

CNTR_TX_256to511B_HI

Number of transmitted frames between 256 –511 bytes (upper 32 bits)

RO

0x81E

CNTR_TX_512to1023B_LO

Number of transmitted frames between 512–1023 bytes (lower 32 bits)

RO

0x81F

CNTR_TX_512to1023B_HI

Number of transmitted frames between 512 –1023 bytes (upper 32 bits)

RO

0x820

CNTR_TX_1024to1518B_LO

Number of transmitted frames between 1024–1518 bytes (lower 32 bits)

RO

0x821

CNTR_TX_1024to1518B_HI

Number of transmitted frames between 1024–1518 bytes (upper 32 bits)

RO

0x822

CNTR_TX_1519toMAXB_LO

Number of transmitted frames of size between 1519 bytes and the number of bytes specified in the MAX_TX_SIZE_CONFIG register (lower 32 bits)

RO

0x823

CNTR_TX_1519toMAXB_HI

Number of transmitted frames of size between 1519 bytes and the number of bytes specified in the MAX_TX_SIZE_CONFIG register (upper 32 bits)

RO

0x824

CNTR_TX_OVERSIZE_LO

Number of oversized frames (frames with more bytes than the number specified in the MAX_TX_SIZE_CONFIG register) transmitted (lower 32 bits)

RO

0x825

CNTR_TX_OVERSIZE_HI

Number of oversized frames (frames with more bytes than the number specified in the MAX_TX_SIZE_CONFIG register) transmitted (upper 32 bits)

RO

0x826

CNTR_TX_MCAST_DATA_OK_LO

Number of valid multicast frames transmitted, excluding control frames (lower 32 bits)

RO

0x827

CNTR_TX_MCAST_DATA_OK_HI

Number of valid multicast frames transmitted, excluding control frames (upper 32 bits)

RO

0x828

CNTR_TX_BCAST_DATA_OK_LO

Number of valid broadcast frames transmitted, excluding control frames (lower 32 bits)

RO

0x829

CNTR_TX_BCAST_DATA_OK_HI

Number of valid broadcast frames transmitted, excluding control frames (upper 32 bits)

RO

0x82A

CNTR_TX_UCAST_DATA_OK_LO

Number of valid unicast frames transmitted, excluding control frames (lower 32 bits)

RO

0x82B

CNTR_TX_UCAST_DATA_OK_HI

Number of valid unicast frames transmitted, excluding control frames (upper 32 bits)

RO

0x82C

CNTR_TX_MCAST_CTRL_LO

Number of valid multicast frames transmitted, excluding data frames (lower 32 bits)

RO

0x82D

CNTR_TX_MCAST_CTRL_HI

Number of valid multicast frames transmitted, excluding data frames (upper 32 bits)

RO

0x82E

CNTR_TX_BCAST_CTRL_LO

Number of valid broadcast frames transmitted, excluding data frames (lower 32 bits)

RO

0x82F

CNTR_TX_BCAST_CTRL_HI

Number of valid broadcast frames transmitted, excluding data frames (upper 32 bits)

RO

0x830

CNTR_TX_UCAST_CTRL_LO

Number of valid unicast frames transmitted, excluding data frames (lower 32 bits)

RO

0x831

CNTR_TX_UCAST_CTRL_HI

Number of valid unicast frames transmitted, excluding data frames (upper 32 bits)

RO

0x832

CNTR_TX_PAUSE_LO

Number of valid pause frames transmitted (lower 32 bits)

RO

0x833

CNTR_TX_PAUSE_HI

Number of valid pause frames transmitted (upper 32 bits)

RO

0x834

CNTR_TX_RUNT_LO

Number of transmitted runt packets (lower 32 bits). The IP core does not transmit frames of length less than nine bytes. The IP core pads frames of length nine bytes to 64 bytes to extend them to 64 bytes.

RO

0x835

CNTR_TX_RUNT_HI

Number of transmitted runt packets (upper 32 bits). The IP core does not transmit frames of length less than nine bytes. The IP core pads frames of length nine bytes to 64 bytes to extend them to 64 bytes.

RO

0x836

CNTR_TX_ST_LO

Number of transmitted frame starts (lower 32 bits)

RO

0x837

CNTR_TX_ST_HI

Number of transmitted frame starts (upper 32 bits)

RO

0x838–0x83F

Reserved

0x840 TXSTAT_REVID TX statistics module revision ID. RO
0x841 TXSTAT_SCRATCH Scratch register available for testing. Default value is 0x08. RW
0x842 TXSTAT_NAME_0 First 4 characters of IP core variation identifier string "040gMacStats" RO
0x843 TXSTAT_NAME_1 Next 4 characters of IP core variation identifier string "040gMacStats" RO
0x844 TXSTAT_NAME_2 Final 4 characters of IP core variation identifier string "040gMacStats" RO
0x845

CNTR_TX_CONFIG

Bits [2:0]: Configuration of TX statistics counters:

  • Bit [2]: Shadow request (active high): When set to the value of 1, TX statistics collection is paused. The underlying counters continue to operate, but the readable values reflect a snapshot at the time the pause flag was activated. Write a 0 to release.
  • Bit [1]: Parity-error clear. When software sets this bit, the IP core clears the parity bit CNTR_TX_STATUS[0]. This bit (CNTR_TX_CONFIG[1]) is self-clearing.
  • Bit [0]: Software can set this bit to the value of 1 to reset all of the TX statistics registers at the same time. This bit is self-clearing.

Bits [31:3] are Reserved.

RW

0x846

CNTR_TX_STATUS

  • Bit [1]: Indicates that the TX statistics registers are paused (while CNTR_TX_CONFIG[2] is asserted) .
  • Bit [0]: Indicates the presence of at least one parity error in the TX statistics counters.

Bits [31:2] are Reserved.

RO
0x860 TxOctetsOK_LO Number of transmitted payload bytes in frames with no FCS, undersized, oversized, or payload length errors. This register is compliant with section 5.2.2.18 of the IEEE Standard 802.3-2008.

This register corresponds to the signals tx_inc_octetsOK[15:0] and tx_inc_octetsOK_valid.

RO
0x861 TxOctetsOK_HI RO