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