hwtLib.peripheral.mdio package¶
Submodules¶
hwtLib.peripheral.mdio.intf module¶
- class hwtLib.peripheral.mdio.intf.IP_mdio[source]¶
Bases:
IntfIpMeta- __annotations__ = {}¶
- library¶
- name¶
- vendor¶
- version¶
- class hwtLib.peripheral.mdio.intf.Mdio(masterDir=DIRECTION.OUT, hdlName: str | dict[str, str] | None = None, loadConfig=True)[source]¶
Bases:
HwIOManagement Data Input/Output (MDIO), also known as Serial Management HwIO (SMI) or Media Independent HwIO Management (MIIM), is a serial bus defined for the Ethernet family of IEEE 802.3 standards for the Media Independent HwIO,
MDIO packet format: <PRE><ST><OP><PA><RA><TA><D>
PRE: 32b preamble
ST: 2b start field
OP: 2b operation code
PA: 5b PHY address
RA: 5b register address
TA: 2b turn arround
D 16b data
- HDL params:
CLK_FREQ - default value 2500000 of type int
- HDL IO:
c - of type hwt.hwIOs.std.HwIOClk with dtype=<HBits, 1bit> - UNKNOWN
io - of type hwt.hwIOs.hwIOTristate.HwIOTristateSig - UNKNOWN
- ADDR_BLOCK_W = 14¶
- DEFAULT_FREQ = 2500000¶
- D_W = 16¶
- OP_W = 2¶
- PA_W = 5¶
- PRE = <HBitsConst b32 4294967295>¶
- PRE_W = 32¶
- RA_W = 5¶
- ST = <HBitsConst b2 1>¶
- ST_W = 2¶
- TA = <HBitsConst b2 2>¶
- TA_W = 2¶
- __annotations__ = {}¶
hwtLib.peripheral.mdio.master module¶
- class hwtLib.peripheral.mdio.master.MdioAddr(masterDir=DIRECTION.OUT, hdlName: str | dict[str, str] | None = None, loadConfig=True)[source]¶
Bases:
HwIO- HDL IO:
phy - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 5bits> - UNKNOWN
reg - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 5bits> - UNKNOWN
- __annotations__ = {}¶
- class hwtLib.peripheral.mdio.master.MdioMaster(hdlName: str | None = None)[source]¶
Bases:
HwModuleMaster for MDIO interface.
- Variables:
~.CLK_FREQ – frequency of input clock
~.MDIO_FREQ – frequency of output MDIO clock
- HDL params:
CLK_FREQ - default value 100000000 of type int
MDIO_FREQ - default value 2500000 of type int
- HDL IO:
clk - of type hwt.hwIOs.std.HwIOClk with dtype=<HBits, 1bit> - SLAVE
rst_n - of type hwt.hwIOs.std.HwIORst_n with dtype=<HBits, 1bit, n> - SLAVE
md - of type hwtLib.peripheral.mdio.intf.Mdio - MASTER
rdata - of type hwt.hwIOs.std.HwIODataRdVld - MASTER
req - of type hwtLib.peripheral.mdio.master.MdioReq - SLAVE
- __annotations__ = {}¶
- _packet_sequence_timer(mdio_clk_rising: HBitsRtlSignal, mdio_clk_falling: HBitsRtlSignal, rst: HBitsRtlSignal)[source]¶
Create timers for all important events in protocol main FSM
- class hwtLib.peripheral.mdio.master.MdioReq(masterDir=DIRECTION.OUT, hdlName: str | dict[str, str] | None = None, loadConfig=True)[source]¶
Bases:
HwIORdVldSyncMDIO transaction request interface
- HDL IO:
opcode - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 2bits> - UNKNOWN
addr - of type hwtLib.peripheral.mdio.master.MdioAddr - UNKNOWN
wdata - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 16bits> - UNKNOWN
vld - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 1bit> - UNKNOWN
rd - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 1bit> - UNKNOWN (Master=IN)
- __annotations__ = {}¶
- class hwtLib.peripheral.mdio.master.MdioReqAgent(sim: HdlSimulator, hwIO: HwIODataRdVld, allowNoReset=False)[source]¶
Bases:
HwIODataRdVldAgentSimulation agent for
MdioReqinterface- __annotations__ = {}¶