RTLDoc datamover (lkesting/konark) - RTLDoc example
module

hci_core_sink

hci.bender/git/checkouts/hci-95bf7c02baf9662e/rtl/core/hci_core_sink.sv:81elaboratedas datamover_top_wrap.i_datamover_top.i_streamer.i_sink
7in
2out
3sub

The hci_core_sink module is the high-level sink streamer performing a series of stores on a HCI-Core interface from an incoming HWPE-Stream data stream from a HWPE engine/datapath. The sink streamer is a composite module that makes use of many other fundamental IPs.

Fundamentally, a sink streamer acts as a specialized DMA engine acting out a predefined pattern from an hwpe_stream_addressgen_v3 to perform a burst of stores via a HCI-Core interface, consuming a HWPE-Stream data stream into the HCI-Core data field. The sink streamer is insensitive to memory latency. This is due to the nature of store streams, which are unidirectional (i.e. addr and data move in the same direction).

Misaligned accesses are supported by widening the HCI-Core data width of 32 bits compared to the HWPE-Stream that gets consumed by the streamer. The stream is shifted according to the address alignment and invalid bytes are disabled by unsetting their strb. This feature can be deactivated by unsetting the MISALIGNED_ACCESS parameter; in this case, the sink will only work correctly if all data is aligned to a word boundary.

hci_core_sink design-time parameters.

Name

Default

Description

TCDM_FIFO_DEPTH

2

If >0, the module produces a HWPE-MemDecoupled interface and includes a TCDM FIFO of this depth.

TRANS_CNT

16

Number of bits supported in the transaction counter of the address generator, which will overflow at 2^ TRANS_CNT.

MISALIGNED_ACCESS

1

If set to 0, the sink will not support non-word-aligned HWPE-Mem accesses.

hci_core_sink input control signals.

Name

Type

Description

req_start

logic

When 1, the sink streamer operation is started if it is ready.

addressgen_ctrl

ctrl_addressgen_v3_t

Configuration of the address generator (see hwpe_stream_addresgen_v3).

hci_core_sink output flags.

Name

Type

Description

ready_start

logic

1 when the sink streamer is ready to start operation, from the first IDLE state cycle on.

done

logic

1 for one cycle when the streamer ends operation, in the cycle before it goes to IDLE state .

addressgen_flags

flags_addressgen_v3_t

Address generator flags (see hwpe_stream_addresgen_v3).

Internal connectivity

the submodules of hci_core_sink and the signals between them
G cluster_hci_core_sink hci_core_sink cluster_gen_no_tcdm_fifos_gen no_tcdm_fifos_gen p__ctrl_i ctrl_i i__i_addressgen i_addressgen hwpe_stream_addressgen_v4 i__i_fifo_addr i_fifo_addr hwpe_stream_fifo i__i_tcdm_assign i_tcdm_assign hci_core_assign l__logic internal logic of hci_core_sink n__addr_fifo_flags addr_fifo_flags n__addr_push addr_push n__address_gen_en address_gen_en p__enable_i enable_i p__ctrl_i->i__i_addressgen p__enable_i->l__logic p__flags_o flags_o p__tcdm tcdm i__i_addressgen->p__flags_o i__i_addressgen->n__addr_push source i__i_fifo_addr->n__addr_fifo_flags i__i_tcdm_assign->p__tcdm initiator l__logic->n__address_gen_en n__addr_fifo_flags->l__logic n__addr_push->i__i_fifo_addr sink n__address_gen_en->i__i_addressgen
scroll or pinch to zoom · drag to move · click a node to open

The ports stand at the walls of the module frame: input, left · output, right · interface — a slanted green box is a stream or a bus; the wide green line carries its data, and the arrow gives the direction · control — the dashed amber line shows which module controls what · flag / status · no direction. A straight box is a module. A hexagon is a port that goes in two directions. A dashed inner box is a generate block. The dashed white node is the logic of the module itself: the processes that drive or read a control net. The clock, reset, clear and test-mode nets are not in the graph; the chips below the diagram give them.

Clocks

clk_i

Resets

rst_niactive-low

Clears

clear_isynchronous

Test / DFT

test_mode_i

Ports 9

Inputs 7

DirNameTypeWidth
in clk_i logic 1
in rst_ni logic 1
in test_mode_i logic 1
in clear_i logic 1
in enable_i ctrl logic 1
in stream hwpe_stream_intf_stream .sink -
in ctrl_i ctrl hci_package::hci_streamer_ctrl_t 653

Outputs 2

DirNameTypeWidth
out tcdm hci_core_intf .initiator -
out flags_o flag hci_package::hci_streamer_flags_t 4

Parameters 15

NameResolved value
TCDM_FIFO_DEPTH32'd0
TRANS_CNT32'd24
MISALIGNED_ACCESSES32'd1
ELEMENT_WIDTH32'd8
ELEMENTS_PER_BANK32'd8
BANK_DATA_WIDTH32'd64
ELEMENT_INDEX_WIDTH32'd3
DIM_ENABLE_1H4'b1111
STRIDE_LAST_1H4'b0
LEN_LAST_1H4'b0
ALTERNATE_1H4'b0
ALT_SKIP_1H4'b0
HCI_SIZE_tcdm224'd36156105996294961723667258600855805061...e23
DATA_WIDTH32'd576
EHW32'd1

Submodules 3

InstanceModuleCountConns
i_addressgen hwpe_stream_addressgen_v4 1 8
i_fifo_addr hwpe_stream_fifo 1 6
i_tcdm_assign hci_core_assign 1 2

Interfaces / streams 3

Instantiated by

Imports

hwpe_stream_package::*hci_package::*