hwtLib.cesnet.mi32 package¶
Mi32 is simple bus interfaces commonly used as a service bus. This package contains various components and utilities for this interface.
Submodules¶
hwtLib.cesnet.mi32.axi4Lite_to_mi32 module¶
- class hwtLib.cesnet.mi32.axi4Lite_to_mi32.Axi4Lite_to_Mi32(hdlName: str | None = None)[source]¶
Bases:
BusBridgeBridge from AxiLite interface to MI32 interface
- HDL params:
DATA_WIDTH - default value 32 of type int
ADDR_WIDTH - default value 32 of type int
RW_PRIORITY - default value READ of type str
- 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
s - of type hwtLib.amba.axi4Lite.Axi4Lite - SLAVE
m - of type hwtLib.cesnet.mi32.intf.Mi32 - MASTER
- __annotations__ = {}¶
hwtLib.cesnet.mi32.buff module¶
- class hwtLib.cesnet.mi32.buff.Mi32AddrHs(masterDir=DIRECTION.OUT, hdlName: str | dict[str, str] | None = None, loadConfig=True)[source]¶
Bases:
HwIORdVldSyncEquivalent of Mi32 address/write data channel with HwIORdVldSync compatible signal names
- HDL params:
DATA_WIDTH - default value 32 of type int
ADDR_WIDTH - default value 32 of type int
- HDL IO:
addr - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 32bits> - UNKNOWN
read - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 1bit> - UNKNOWN
write - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 1bit> - UNKNOWN
be - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 4bits> - UNKNOWN
dwr - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 32bits> - 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.cesnet.mi32.buff.Mi32Buff(hdlName: str | None = None)[source]¶
Bases:
BusBridgeBuffer for Mi32 interface
- HDL params:
DATA_WIDTH - default value 32 of type int
ADDR_WIDTH - default value 32 of type int
ADDR_BUFF_DEPTH - default value 1 of type int
DATA_BUFF_DEPTH - default value 1 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
s - of type hwtLib.cesnet.mi32.intf.Mi32 - SLAVE
m - of type hwtLib.cesnet.mi32.intf.Mi32 - MASTER
- HDL components:
gen_addr_tmp_reg_0 - of type hwtLib.handshaked.reg.HandshakedReg
- __annotations__ = {}¶
- _connect_Mi32AddrHs_to_Mi32(mi32ahs: Mi32AddrHs, mi32: Mi32)[source]¶
hwtLib.cesnet.mi32.builder module¶
- class hwtLib.cesnet.mi32.builder.Mi32Builder(parent: HwModule, srcInterface: HwIO | HObjList, name: str | None = None, master_to_slave: bool = True)[source]¶
Bases:
AxiBuilder- BuffCdcCls = NotImplemented¶
- __annotations__ = {}¶
hwtLib.cesnet.mi32.endpoint module¶
- class hwtLib.cesnet.mi32.endpoint.Mi32Endpoint(structTemplate, hwIOCls=<class 'hwtLib.cesnet.mi32.intf.Mi32'>, shouldEnterFn=None)[source]¶
Bases:
BusEndpointDelegate request from bus to fields of structure
- HDL params:
DATA_WIDTH - default value 32 of type int
ADDR_WIDTH - default value 32 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
bus - of type hwtLib.cesnet.mi32.intf.Mi32 - SLAVE
decoded - of type hwt.hwIOs.hwIOStruct.HwIOStruct with dtype=struct { <HBits, 32bits, unsigned> field0 <HBits, 32bits, unsigned> field1 } - MASTER
- __annotations__ = {}¶
- __init__(structTemplate, hwIOCls=<class 'hwtLib.cesnet.mi32.intf.Mi32'>, shouldEnterFn=None)[source]¶
- Parameters:
structTemplate – instance of HStruct which describes address space of this endpoint
hwIOCls – class of bus interface which should be used
shouldEnterFn – function(root_t, structFieldPath) return (shouldEnter, shouldUse) where shouldEnter is flag that means iterator over this interface should look inside of this actual object and shouldUse flag means that this field should be used (to create interface)
- _getAddrStep()¶
- Returns:
how many bits is one unit of address (e.g. 8 bits for char * pointer, 36 for 36 bit bram)
- _getWordAddrStep()¶
- Returns:
size of one word in unit of address
hwtLib.cesnet.mi32.interconnectMatrix module¶
- class hwtLib.cesnet.mi32.interconnectMatrix.Mi32InterconnectMatrix(hdlName: str | None = None)[source]¶
Bases:
BusInterconnectSimple matrix interconnect for Mi32 interface
- HDL params:
SLAVES - default value ((0, 256), (256, 256), (<class ‘hwtLib.abstract.busInterconnect.AUTO_ADDR’>, 256), (4096, 4096)) of type tuple
MASTERS - default value ({0, 1, 2, 3},) of type tuple
DATA_WIDTH - default value 32 of type int
ADDR_WIDTH - default value 32 of type int
MAX_TRANS_OVERLAP - default value 4 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
s - of type hwt.hwIOs.hwIOArray.HwIOArray - SLAVE
m - of type hwt.hwIOs.hwIOArray.HwIOArray - MASTER
- HDL components:
r_data_order - of type hwtLib.handshaked.fifo.HandshakedFifo
s_0_buff - of type hwtLib.cesnet.mi32.buff.Mi32Buff
- __annotations__ = {}¶
hwtLib.cesnet.mi32.intf module¶
- class hwtLib.cesnet.mi32.intf.Mi32(masterDir=DIRECTION.OUT, hdlName: str | dict[str, str] | None = None, loadConfig=True)[source]¶
Bases:
HwIOSimple memory interface similar to AvalonMM
- Variables:
~.addr – r/w address
~.rd – read enable
~.wr – write enable
~.ardy – slave address channel ready
~.be – data byte mask for write
~.dwr – write data
~.drd – read data
~.drdy – read data valid
- HDL params:
DATA_WIDTH - default value 32 of type int
ADDR_WIDTH - default value 32 of type int
- HDL IO:
addr - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 32bits> - UNKNOWN
rd - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 1bit> - UNKNOWN
wr - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 1bit> - UNKNOWN
ardy - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 1bit> - UNKNOWN (Master=IN)
be - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 4bits> - UNKNOWN
dwr - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 32bits> - UNKNOWN
drd - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 32bits> - UNKNOWN (Master=IN)
drdy - of type hwt.hwIOs.std.HwIOSignal with dtype=<HBits, 1bit> - UNKNOWN (Master=IN)
- __annotations__ = {}¶
- class hwtLib.cesnet.mi32.intf.Mi32AddrAgent(sim: HdlSimulator, hwIO: HwIODataRdVld, allowNoReset=False)[source]¶
Bases:
HwIODataRdVldAgent- Variables:
~.requests – request data, items are tuples (READ, address) or (WRITE, address, data, be_mask)
- Note:
two valid signals “read”, “write”
- Note:
one ready_n signal “waitrequest”
- Note:
on write set data and byteenamble as well
- __annotations__ = {}¶
- class hwtLib.cesnet.mi32.intf.Mi32Agent(sim: HdlSimulator, hwIO: Mi32, allowNoReset=False)[source]¶
Bases:
SyncAgentBaseSimulation agent for Mi32 bus interface
- Variables:
~.requests – request data, items are tuples (READ, address) or (WRITE, address, data, be_mask)
~.rData – data read from interface
- __annotations__ = {}¶
- __init__(sim: HdlSimulator, hwIO: Mi32, allowNoReset=False)[source]¶
- Parameters:
rst – tuple (rst signal, rst_negated flag)
- property r_data¶
- property requests¶
hwtLib.cesnet.mi32.mi32SimMemSpaceMaster module¶
- class hwtLib.cesnet.mi32.mi32SimMemSpaceMaster.Mi32SimMemSpaceMaster(bus, registerMap)[source]¶
Bases:
AbstractMemSpaceMasterController of BramPort simulation agent which keeps track of transactions and allows struct like data access
- Variables:
~.req – request data, items are tuples (READ, address) or (WRITE, address, data, be_mask)
- __annotations__ = {}¶
hwtLib.cesnet.mi32.sim_ram module¶
- class hwtLib.cesnet.mi32.sim_ram.Mi32SimRam(mi32: Mi32, parent=None)[source]¶
Bases:
SimRam- __annotations__ = {}¶
hwtLib.cesnet.mi32.sliding_window module¶
- class hwtLib.cesnet.mi32.sliding_window.Mi32SlidingWindow(hdlName: str | None = None)[source]¶
Bases:
BusBridgeAddress space window + offset register which allows to address bigger address space than available on input interface due size of its address signal
- Variables:
~.WINDOW_SIZE – size of window to “m” interface also the address of offset register
- HDL params:
DATA_WIDTH - default value 32 of type int
ADDR_WIDTH - default value 32 of type int
M_ADDR_WIDTH - default value 33 of type int
WINDOW_SIZE - default value 4096 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
m - of type hwtLib.cesnet.mi32.intf.Mi32 - MASTER
s - of type hwtLib.cesnet.mi32.intf.Mi32 - SLAVE
- __annotations__ = {}¶
hwtLib.cesnet.mi32.to_axi4Lite module¶
- class hwtLib.cesnet.mi32.to_axi4Lite.Mi32_to_Axi4Lite(hdlName: str | None = None)[source]¶
Bases:
BusBridgeBridge from MI32 interface to AxiLite interface
- HDL params:
ADDR_WIDTH - default value 32 of type int
DATA_WIDTH - default value 64 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
m - of type hwtLib.amba.axi4Lite.Axi4Lite - MASTER
s - of type hwtLib.cesnet.mi32.intf.Mi32 - SLAVE
- __annotations__ = {}¶