|
CIRCT 23.0.0git
|
Classes | |
| class | ChannelMMIO |
| class | ESI_Manifest_ROM |
| class | ESI_Manifest_ROM_Wrapper |
| class | MMIOIndirection |
Functions | |
| Module | HeaderMMIO (int manifest_loc) |
| type["ChannelDemuxNImpl"] | ChannelDemuxN_HalfStage_ReadyBlocking (Type data_type, int num_outs, int next_sel_width) |
| type["ChannelDemuxTree"] | ChannelDemuxTree_HalfStage_ReadyBlocking (Type data_type, int num_outs, int branching_factor_log2) |
| type["TaggedReadGearboxImpl"] | TaggedReadGearbox (int input_bitwidth, int output_bitwidth) |
| HostmemReadProcessor (int read_width, hostmem_module, List[esi._OutputBundleSetter] reqs) | |
| type["TaggedWriteGearboxImpl"] | TaggedWriteGearbox (int input_bitwidth, int output_bitwidth) |
| type[ 'EmitEveryNImpl'] | EmitEveryN (Type message_type, int N) |
| type["HostMemWriteProcessorImpl"] | HostMemWriteProcessor (int write_width, hostmem_module, List[esi._OutputBundleSetter] reqs) |
| typing.Type[ 'ChannelHostMemImpl'] | ChannelHostMem (int read_width, int write_width) |
| type[ 'DummyToHostEngineImpl'] | DummyToHostEngine (Type client_type) |
| type[ 'DummyFromHostEngineImpl'] | DummyFromHostEngine (Type client_type) |
| type[ 'ChannelEngineService'] | ChannelEngineService (Callable to_host_engine_gen, Callable from_host_engine_gen) |
Variables | |
| int | MagicNumber = 0x207D98E5_E5100E51 |
| int | VersionNumber = 0 |
| int | IndirectionMagicNumber = 0x312bf0cc_E5100E51 |
| int | IndirectionVersionNumber = 0 |
| type["ChannelDemuxNImpl"] esiaccel.bsp.common.ChannelDemuxN_HalfStage_ReadyBlocking | ( | Type | data_type, |
| int | num_outs, | ||
| int | next_sel_width | ||
| ) |
N-way channel demultiplexer for valid/ready signaling. Contains
valid/ready registers on the output channels. The selection signal is now
embedded in the input channel payload as a struct {sel, data}. Input
signals ready when the selected output register is empty.
Definition at line 116 of file common.py.
References wrap().
Referenced by esiaccel.bsp.common.ChannelDemuxTree_HalfStage_ReadyBlocking().
| type["ChannelDemuxTree"] esiaccel.bsp.common.ChannelDemuxTree_HalfStage_ReadyBlocking | ( | Type | data_type, |
| int | num_outs, | ||
| int | branching_factor_log2 | ||
| ) |
Pipelined N-way channel demultiplexer for valid/ready signaling. This implementation uses a tree structure of ChannelDemuxN_HalfStage_ReadyBlocking modules to reduce fanout pressure. Supports maximum half-throughput to save complexity and area.
Definition at line 209 of file common.py.
References esiaccel.bsp.common.ChannelDemuxN_HalfStage_ReadyBlocking().
Referenced by esiaccel.bsp.common.ChannelMMIO.build_read().
| type['ChannelEngineService'] esiaccel.bsp.common.ChannelEngineService | ( | Callable | to_host_engine_gen, |
| Callable | from_host_engine_gen | ||
| ) |
Returns a channel service implementation which calls to_host_engine_gen(<client_type>) or from_host_engine_gen(<client_type>) to generate the to_host and from_host engines for each channel. Does not support engines which can service multiple clients at once.
| typing.Type['ChannelHostMemImpl'] esiaccel.bsp.common.ChannelHostMem | ( | int | read_width, |
| int | write_width | ||
| ) |
Definition at line 1071 of file common.py.
References esiaccel.bsp.common.HostmemReadProcessor(), and esiaccel.bsp.common.HostMemWriteProcessor().
| type['DummyFromHostEngineImpl'] esiaccel.bsp.common.DummyFromHostEngine | ( | Type | client_type | ) |
| type['DummyToHostEngineImpl'] esiaccel.bsp.common.DummyToHostEngine | ( | Type | client_type | ) |
| type['EmitEveryNImpl'] esiaccel.bsp.common.EmitEveryN | ( | Type | message_type, |
| int | N | ||
| ) |
Emit (forward) one message for every N input messages. The emitted message is the last one of the N received. N must be >= 1.
Definition at line 910 of file common.py.
Referenced by esiaccel.bsp.common.HostMemWriteProcessor().
| Module esiaccel.bsp.common.HeaderMMIO | ( | int | manifest_loc | ) |
Definition at line 61 of file common.py.
References wrap().
Referenced by esiaccel.bsp.common.ChannelMMIO.build_read().
| esiaccel.bsp.common.HostmemReadProcessor | ( | int | read_width, |
| hostmem_module, | |||
| List[esi._OutputBundleSetter] | reqs | ||
| ) |
Construct a host memory read request module to orchestrate the the read connections. Responsible for both gearboxing the data, multiplexing the requests, reassembling out-of-order responses and routing the responses to the correct clients. Generate this module dynamically to allow for multiple read clients of multiple types to be directly accomodated.
Definition at line 678 of file common.py.
References esiaccel.bsp.common.TaggedReadGearbox(), and wrap().
Referenced by esiaccel.bsp.common.ChannelHostMem().
| type["HostMemWriteProcessorImpl"] esiaccel.bsp.common.HostMemWriteProcessor | ( | int | write_width, |
| hostmem_module, | |||
| List[esi._OutputBundleSetter] | reqs | ||
| ) |
Construct a host memory write request module to orchestrate the the write connections. Responsible for both gearboxing the data, multiplexing the requests, reassembling out-of-order responses and routing the responses to the correct clients. Generate this module dynamically to allow for multiple write clients of multiple types to be directly accomodated.
Definition at line 960 of file common.py.
References esiaccel.bsp.common.EmitEveryN(), esiaccel.bsp.common.TaggedWriteGearbox(), and wrap().
Referenced by esiaccel.bsp.common.ChannelHostMem().
| type["TaggedReadGearboxImpl"] esiaccel.bsp.common.TaggedReadGearbox | ( | int | input_bitwidth, |
| int | output_bitwidth | ||
| ) |
Build a gearbox to convert the upstream data to the client data
type. Assumes a struct {tag, data} and only gearboxes the data. Tag is stored
separately and the struct is re-assembled later on.
Definition at line 592 of file common.py.
Referenced by esiaccel.bsp.common.HostmemReadProcessor().
| type["TaggedWriteGearboxImpl"] esiaccel.bsp.common.TaggedWriteGearbox | ( | int | input_bitwidth, |
| int | output_bitwidth | ||
| ) |
Build a gearbox to convert the client data to upstream write chunks.
Assumes a struct {address, tag, data} and only gearboxes the data. Tag is
stored separately and the struct is re-assembled later on.
Definition at line 785 of file common.py.
Referenced by esiaccel.bsp.common.HostMemWriteProcessor().
| int esiaccel.bsp.common.IndirectionMagicNumber = 0x312bf0cc_E5100E51 |