RTLDoc datamover (lkesting/konark) - RTLDoc example
module

hci_core_source

hci.bender/git/checkouts/hci-95bf7c02baf9662e/rtl/core/hci_core_source.sv:92elaborated
6in
3out
3sub

The hci_core_source module is the high-level source streamer performing a series of loads on a HCI-Core interface and producing a HWPE-Stream data stream to feed a HWPE engine/datapath. The source streamer is a composite module that makes use of many other fundamental IPs.

Fundamentally, a source streamer acts as a specialized DMA engine acting out a predefined pattern from an hwpe_stream_addressgen_v3 to perform a burst of loads via a HCI-Core interface, producing a HWPE-Stream data stream from the HCI-Core r_data field. By default, the HCI-Core streamer supports delayed accesses using a HCI-Core interface.

Misaligned accesses are supported by widening the HCI-Core data width of 32 bits compared to the HWPE-Stream that gets produced by the streamer. Unused bytes are simply ignored. 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.

In principle, the source streamer is insensitive to latency. However, when configured to support misaligned memory accesses, the address FIFO depth sets the maximum supported latency. This parameter can be controlled by the ADDR_MIS_DEPTH parameter (default 8).

hci_core_source design-time parameters.

Name

Default

Description

LATCH_FIFO

0

If 1, use latches instead of flip-flops (requires special constraints in synthesis).

TRANS_CNT

16

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

ADDR_MIS_DEPTH

8

Depth of the misaligned address FIFO. This must be equal to the max-latency between the HCI-Core gnt and r_valid.

MISALIGNED_ACCESS

1

If set to 0, the source will not support non-word-aligned HCI-Core accesses.

PASSTHROUGH_FIFO

0

If set to 1, the address FIFO will be capable of fall-through operation (i.e., skipping the FIFO latency entirely).

TCDM_R_READY_SUPPORT | 1

If 0, the TCDM ignores r_ready; the source self-limits to one outstanding load instead of backpressuring responses.

hci_core_source input control signals.

Name

Type

Description

req_start

logic

When 1, the source 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_source output flags.

Name

Type

Description

ready_start

logic

1 when the source 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_source and the signals between them
G cluster_hci_core_source hci_core_source p__clear_i clear_i i__i_fifo_addr i_fifo_addr hwpe_stream_fifo p__clear_i->i__i_fifo_addr i__i_addr_misaligned_fifo i_addr_misaligned_fifo hwpe_stream_fifo p__clear_i->i__i_addr_misaligned_fifo p__ctrl_i ctrl_i i__i_addressgen i_addressgen hwpe_stream_addressgen_v4 p__ctrl_i->i__i_addressgen p__flags_o flags_o i__i_addressgen->p__flags_o n__addr_push addr_push i__i_addressgen->n__addr_push n__addr_push->i__i_fifo_addr
scroll or pinch to zoom · drag to move · click a node to open

Blue: an input. Magenta: an output. Green: an interface. Orange: no direction. A hexagon shows a port that goes in two directions. The clock and the reset nets are not in the graph.

Clocks

clk_i

Resets

rst_niactive-low

Ports 9

Inputs 6

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 logic 1
in ctrl_i hci_package::hci_streamer_ctrl_t 453

Outputs 3

DirNameTypeWidth
out tcdm hci_core_intf .initiator -
out stream hwpe_stream_intf_stream .source -
out flags_o hci_package::hci_streamer_flags_t 4

Parameters 17

NameResolved value
LATCH_FIFO32'd0
TRANS_CNT32'd16
ADDR_MIS_DEPTH32'd8
MISALIGNED_ACCESSES32'd1
PASSTHROUGH_FIFO32'd0
TCDM_R_READY_SUPPORT1'b0
ELEMENT_WIDTH32'd8
ELEMENTS_PER_BANK32'd4
BANK_DATA_WIDTH32'd32
ADDR_OFFSET32'd2
DIM_ENABLE_1H4'b1111
PARTIAL_TILING32'd0
HCI_SIZE_tcdm224'h0
DATA_WIDTH32'd0
EHW32'd0
STREAM_MISALIGNED_DW32'd4294967264
ADDR_OFFSET_BYTE32'd8

Submodules 3

InstanceModuleCountConns
i_addressgen hwpe_stream_addressgen_v4 1 8
i_fifo_addr hwpe_stream_fifo 1 6
i_addr_misaligned_fifo hwpe_stream_fifo 1 6

Interfaces / streams 4

Instantiated by

Imports

hwpe_stream_package::*hci_package::*