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", }