Util 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 | 
|---|---|
| Verilog source for the main module made of the MII and RMII interfaces. | |
| Verilog source for the conversion between RMII PHY chip interface and MII MAC block interface. | |
| Verilog source for the conversion between MII MAC block interface and RMII PHY chip interface. | 
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: 
- 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: 
- 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: 
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: 
- 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: 
Software Support
Analog Devices recommends to use the provided software drivers.
- Linux driver at drivers/net/mii.c