Source code for hwtLib.peripheral.ethernet.mii
from hwt.synthesizer.interface import Interface
from hwt.interfaces.std import Clk, VectSignal, Signal
from ipCorePackager.constants import DIRECTION
from ipCorePackager.intfIpMeta import IntfIpMeta
[docs]class MiiRxChannel(Interface):
"""
.. hwt-autodoc::
"""
def _declr(self):
self.d = VectSignal(4)
self.dv = Signal()
self.er = Signal()
[docs]class MiiTxChannel(Interface):
"""
.. hwt-autodoc::
"""
def _declr(self):
self.d = VectSignal(4)
self.en = Signal()
self.er = Signal()
[docs]class Mii(Interface):
"""
Media Independent Interface
PHY-MAC interface for <=100BASE Ethernet
.. hwt-autodoc::
"""
def _declr(self):
self.rx_clk = Clk(masterDir=DIRECTION.IN)
with self._associated(clk=self.rx_clk):
self.rx = MiiRxChannel(masterDir=DIRECTION.IN)
self.tx_clk = Clk(masterDir=DIRECTION.IN)
with self._associated(clk=self.tx_clk):
self.tx = MiiTxChannel()
[docs] def _getIpCoreIntfClass(self):
return IP_Mii
[docs]class IP_Mii(IntfIpMeta):
[docs] def __init__(self):
super().__init__()
self.name = "mii"
self.version = "1.0"
self.vendor = "xilinx.com"
self.library = "interface"
self.map = {
"tx": {
"d": "TXD",
"en": "TX_EN",
"er": "TX_ER",
},
"rx": {
"d": "RXD",
"dv": "RX_DV",
"er": "RX_ER",
},
"tx_clk": "TX_CLK",
"rx_clk": "RX_CLK",
}