CPRI Intel® FPGA IP User Guide

ID 683595
Date 7/01/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

3.13. Media Independent Interface (MII) to External Ethernet Block

The media independent interface (MII) allows the CPRI Intel® FPGA IP to communicate directly with an external Ethernet MAC block. If you set the value of the Ethernet PCS interface parameter in the CPRI parameter editor to MII, your IP core includes this interface.

CPRI Intel® FPGA IP core contains the logic for Ethernet PCS block. This block does 4B/5B encoding to the received data through TX interface before sending it to the CPRI link. Likewise, it does 5B/4B decoding after receiving data from CPRI link before sending it back to RX interface. The available interface is intended to be connected to an external Ethernet MAC block. The external Ethernet MAC block should format the data following the IEEE 802.3 before sending the data to CPRI Intel® FPGA IP core (data from the Preamble to FCS). However, the IP observe all the incoming/outgoing data through this interface as raw data and apply the encoding/decoding respectively.

The MII supports the bandwidth described in Table 12 of the CPRI Specification, Achievable Ethernet bit rates.

The inter-packet gap should be 96 bits. Since, the data interface is 4-bit wide, the inter-packet gap corresponds to 24 mii_txclk cycles.

Table 32.  MII Signals

These signals are available if you set the value of the Ethernet PCS interface parameter in the CPRI parameter editor to MII. You can connect a user-defined Ethernet MAC to this interface.

The interface is fully compliant to the IEEE 802.3 100BASE-X 100Mbps MII specification. An Ethernet PCS block in the CPRI IP ensures the interface bandwidth matches the current CPRI line bit rate and accesses data at the correct CPRI frame positions according to the Z.194.0 pointer value.

You must monitor the MII FIFO status signals and ensure you do not overflow or underflow the FIFO.

The interface signals are clocked by the mii_rxclk or mii_txclk clock.

RX MII Signals

Signal Name

Direction

Description

mii_rxclk Input Clocks the MII receiver interface. You must drive this clock at the frequency of 25 MHz to achieve the 100 Mbps bandwidth required for this interface.
mii_rxreset_n Input Resets the MII receiver interface and FIFO read logic. This reset signal is active low.
mii_rxdv Output Ethernet receive data valid. Indicates the presence of valid data or initial K nibble on mii_rxd[3:0]. Each pulse of this signal is considered as one Ethernet packet.
mii_rxer Output Ethernet receive error. Indicates an error in the current nibble of mii_rxd. This signal is de-asserted at reset, and remains de-asserted while the CPRI IP is resetting and until link initialization completes.
mii_rxd[3:0] Output Ethernet receive nibble data. Data bus for data from the CPRI IP to the external Ethernet block. All bits are de-asserted during reset, and all bits are asserted after reset until the CPRI IP achieves frame synchronization.
TX MII Signals

Signal Name

Direction

Description

mii_txclk Input Clocks the MII transmitter interface. You must drive this clock at the frequency of 25 MHz to achieve the 100 Mbps bandwidth required for this interface.
mii_txreset_n Input Resets the MII transmitter interface and FIFO write logic. This signal is active low.
mii_txen Input Valid signal from the external Ethernet block, indicating the presence of valid data on mii_txd[3:0]. The external Ethernet block must also assert this signal two cycles before initial valid data, while the IP core inserts /J/ and /K/ nibbles in the data stream to form the start-of-packet symbol. Each pulse of this signal is considered as one Ethernet packet.
mii_txer Input Ethernet transmit coding error. When this signal is asserted, the CPRI IP core inserts an Ethernet HALT symbol in the data it passes to the CPRI link.
mii_txd[3:0] Input Ethernet transmit nibble data. The data transmitted from the external Ethernet block to the CPRI IP core, for transmission on the CPRI link. This input bus is synchronous to the rising edge of the mii_txclk clock.
MII Status Signals

Signal Name

Direction

Description

mii_tx_fifo_status[3:0] Output Ethernet Tx PCS FIFO fill level status. The individual bits have the following meanings:
  • Bit [3]: Empty
  • Bit [2]: Almost empty
  • Bit [1]: Full
  • Bit [0]: Almost full

Almost Empty = FIFO level is 6.25% of maximum

Almost Full = FIFO level is 93.75% of maximum

When this signal value is 4'b0000, it could mean that the FIFO level is in between the levels. For example, it could be between Almost Empty and Almost Full.
Note: This status signal is delayed due to the internal CDC (clock domain crossing) between mii_txclk and cpri_clkout. Be cautious if Almost Full is reached while transmitting as the real-time level of the FIFO can be more than 93.75%. You are advised to plan your transmission so that you do not have to split the packets. For example:
  • Use smaller size packets
  • Increase the interpacket-gap corresponding to the packet size
  • Increase the size of FIFO depth by configuring the GUI parameter
mii_rx_fifo_status[3:0] Output Ethernet Rx PCS FIFO fill level status. The individual bits have the following meanings:
  • Bit [3]: Empty
  • Bit [2]: Almost empty
  • Bit [1]: Full
  • Bit [0]: Almost full

Almost Empty = FIFO level is 6.25% of maximum

Almost Full = FIFO level is 93.75% of maximum

When this signal value is 4'b0000, it could mean that the FIFO level is in between the levels. For example, it could be between Almost Empty and Almost Full.

Figure 48. RX MII Timing Diagram


Figure 49. TX MII Timing Diagram