Source code for hwtLib.peripheral.ethernet.mii
from hwt.hwIO import HwIO
from hwt.hwIOs.std import HwIOClk, HwIOVectSignal, HwIOSignal
from hwt.pyUtils.typingFuture import override
from ipCorePackager.constants import DIRECTION
from ipCorePackager.intfIpMeta import IntfIpMeta
[docs]
class MiiRxChannel(HwIO):
"""
.. hwt-autodoc::
"""
@override
def hwDeclr(self):
self.d = HwIOVectSignal(4)
self.dv = HwIOSignal()
self.er = HwIOSignal()
[docs]
class MiiTxChannel(HwIO):
"""
.. hwt-autodoc::
"""
@override
def hwDeclr(self):
self.d = HwIOVectSignal(4)
self.en = HwIOSignal()
self.er = HwIOSignal()
[docs]
class Mii(HwIO):
"""
Media Independent HwIO
PHY-MAC interface for <=100BASE Ethernet
.. hwt-autodoc::
"""
@override
def hwDeclr(self):
self.rx_clk = HwIOClk(masterDir=DIRECTION.IN)
with self._associated(clk=self.rx_clk):
self.rx = MiiRxChannel(masterDir=DIRECTION.IN)
self.tx_clk = HwIOClk(masterDir=DIRECTION.IN)
with self._associated(clk=self.tx_clk):
self.tx = MiiTxChannel()
[docs]
@override
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",
}