Util MII to RMII#

GMIIMIIreset_nref_clkRMIIutil_mii_to_rmii

The Util MII to RMII core is designed to interface the Zynq-7000/Zynq UltraScale+ MPSoC - PS Gigabit Ethernet MAC and Reduced Media Independent Interface (RMII) ADIN1300 PHY from the CN0506 Dual PHY Ethernet evaluation board.

Features#

  • Configurable interface for the MAC block (Media Independent Interface - MII or Gigabit Media Independent Interface - GMII).

  • Configurable data rate for the MAC block and PHY chip.

Files#

Name

Description

library/util_mii_to_rmii/util_mii_to_rmii.v

Verilog source for the main module made of the MII and RMII interfaces.

library/util_mii_to_rmii/mac_phy_link.v

Verilog source for the conversion between RMII PHY chip interface and MII MAC block interface.

library/util_mii_to_rmii/phy_mac_link.v

Verilog source for the conversion between MII MAC block interface and RMII PHY chip interface.

Block Diagram#

Util MII to RMII block diagram

Configuration Parameters#

Name

Description

Default Value

Choices/Range

INTF_CFG

MAC Block Interface Selection

0

MII (0), GMII (1)

RATE_10_100

Data Rate Selection

0

100Mbps (0), 10Mbps (1)

Interface#

Physical Port

Logical Port

Direction

Dependency

mii_col COL

out

mii_crs CRS

out

mii_rxd RXD

out [3:0]

mii_rx_clk RX_CLK

out

mii_rx_dv RX_DV

out

mii_rx_er RX_ER

out

mac_txd TXD

in [3:0]

mii_tx_clk TX_CLK

out

mac_tx_en TX_EN

in

mac_tx_er TX_ER

in

Physical Port

Logical Port

Direction

Dependency

mii_col COL

out

mii_crs CRS

out

mii_rxd RXD

out [3:0]

mii_rx_clk RX_CLK

out

mii_rx_dv RX_DV

out

mii_rx_er RX_ER

out

mac_txd TXD

in [3:0]

mii_tx_clk TX_CLK

out

mac_tx_en TX_EN

in

mac_tx_er TX_ER

in

Physical Port

Logical Port

Direction

Dependency

phy_crs_dv CRS_DV

in

phy_rxd RXD

in [1:0]

phy_rx_er RX_ER

in

rmii_txd TXD

out [1:0]

rmii_tx_en TX_EN

out

Physical Port

Logical Port

Direction

Dependency

reset_n RST

in

Physical Port

Logical Port

Direction

Dependency

ref_clk CLK

in

Physical Port

Direction

Dependency

Description

Theory of Operation#

The following timing diagrams illustrate different signal protocols for MII and RMII interfaces at data rates of 100 and 10 Mbps.

Receive Transactions#

  • RMII (PHY) receive transaction at 100 Mbps with no errors and phy_crs_dv asserted until the final packet dibit. According to the RMII Specification Rev. 1.2, after the assertion of phy_crs_dv, several 00’s dibits can precede the preamble 01’s dibits. The preamble is composed of 28 “01” dibits and the start of frame delimiter of 3 “01” dibits and one “11” dibit followed by the frame containing 64-1522 bytes:

PHY Receive Simple
  • RMII (PHY) receive transaction at 100 Mbps with no errors and phy_crs_dv toggling at 25 MHz starting on a nibble boundary and indicates the PHY has lost the carrier but has accumulated nibbles to transfer:

PHY Receive Toggle
  • At a data rate of 10 Mbps (ref_clk frequency divided by 10), mii_rxd will be sampled every \(10^{th}\) cycle.

  • MII receive transaction converted from RMII (PHY) receive transaction at 100 Mbps. In the MII mode mii_rx_dv and mii_rxd will be sampled on the falling edge of the 25 MHz mii_rx_clk and when mii_rx_dv is de-asserted, mii_rxd will present 0b0000 to the Ethernet MAC:

ETH MAC Receive

Transmit Transactions#

  • MII transmit transaction at 100 Mbps. In the MII mode mii_tx_en and mii_txd will be sampled on the rising edge of the 25 MHz mii_tx_clk:

ETH MAC Transmit
  • In case of errors detection, mii_tx_er will be asserted and mii_txd dibits will be “01” for the rest of transmission to RMII interface.

  • At a data rate of 10 Mbps (ref_clk frequency divided by 10), mii_txd will be sampled every \(10^{th}\) cycle.

  • RMII transmit transaction converted from MII transmit transaction at 100 Mbps. In the RMII mode rmii_tx_en and rmii_txd will be sampled on the rising edge of the 50 MHz ref_clk:

PHY Transmit

Software Support#

Analog Devices recommends to use the provided software drivers.

References#