hci_core_source
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).
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. |
|
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). |
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 themBlue: 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
Resets
Ports 9
Inputs 6
| Dir | Name | Type | Width |
|---|---|---|---|
| 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
| Dir | Name | Type | Width |
|---|---|---|---|
| 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
| Name | Resolved value |
|---|---|
| LATCH_FIFO | 32'd0 |
| TRANS_CNT | 32'd16 |
| ADDR_MIS_DEPTH | 32'd8 |
| MISALIGNED_ACCESSES | 32'd1 |
| PASSTHROUGH_FIFO | 32'd0 |
| TCDM_R_READY_SUPPORT | 1'b0 |
| ELEMENT_WIDTH | 32'd8 |
| ELEMENTS_PER_BANK | 32'd4 |
| BANK_DATA_WIDTH | 32'd32 |
| ADDR_OFFSET | 32'd2 |
| DIM_ENABLE_1H | 4'b1111 |
| PARTIAL_TILING | 32'd0 |
| HCI_SIZE_tcdm | 224'h0 |
| DATA_WIDTH | 32'd0 |
| EHW | 32'd0 |
| STREAM_MISALIGNED_DW | 32'd4294967264 |
| ADDR_OFFSET_BYTE | 32'd8 |
Submodules 3
| Instance | Module | Count | Conns |
|---|---|---|---|
| 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 |