cloudFPGA (cF) API
1.0
The documentation of the source code of cloudFPGA (cF)
|
This is a subgroup of WarpTransform accelerated function with only synthesizable (HLS) functions/classes. More...
Files | |
file | warp_transform.hpp |
The Role for a WarpTransform Example application (UDP or TCP) | |
file | warp_transform_hw_common.hpp |
A library for some common functionalities: Memory interaction Performance Counters. | |
file | warp_transform_network_library.hpp |
A library for some common Network-Related functionalities. | |
file | warp_transform_processing.hpp |
The processing function for the warp_transform filte. | |
file | xf_config_params.h |
The WarpTransform IP configuration header. | |
file | warp_transform.cpp |
The Role for a WarpTransform Example application (UDP or TCP) | |
file | xf_warp_transform_accel.cpp |
The WarpTransform top-level. | |
Classes | |
struct | Axis< D > |
union | float_bits_u |
Typedefs | |
typedef unsigned int | img_meta_t |
typedef uint8_t | mat_elmt_t |
typedef ap_uint< 512 > | membus_512_t |
typedef membus_512_t | membus_t |
Enumerations | |
enum | EchoCtrl { ECHO_PATH_THRU = 0 , ECHO_STORE_FWD = 1 , ECHO_OFF = 2 , ECHO_PATH_THRU = 0 , ECHO_STORE_FWD = 1 , ECHO_OFF = 2 , ECHO_PATH_THRU = 0 , ECHO_STORE_FWD = 1 , ECHO_OFF = 2 , ECHO_PATH_THRU = 0 , ECHO_STORE_FWD = 1 , ECHO_OFF = 2 , ECHO_PATH_THRU = 0 , ECHO_STORE_FWD = 1 , ECHO_OFF = 2 , ECHO_PATH_THRU = 0 , ECHO_STORE_FWD = 1 , ECHO_OFF = 2 , ECHO_PATH_THRU = 0 , ECHO_STORE_FWD = 1 , ECHO_OFF = 2 , ECHO_STORE_FWD = 0 , ECHO_PATH_THRU = 1 , ECHO_CTRL_DISABLED = 0 , ECHO_PATH_THRU = 1 , ECHO_STORE_FWD = 2 , ECHO_OFF = 3 } |
enum | MemTestCmd { TEST_BURSTSIZE_CMD = 4 , TEST_ENDOFTESTS_CMD = 3 , TEST_STOP_CMD = 2 , TEST_START_CMD = 1 , TEST_INVLD_CMD = 0 , WRPTX_IMG_CMD = 2 , WRPTX_TXMAT_CMD = 1 , WRPTX_INVLD_CMD = 0 } |
Functions | |
void | warp_transform (ap_uint< 32 > *pi_rank, ap_uint< 32 > *pi_size, stream< NetworkWord > &siSHL_This_Data, stream< NetworkWord > &soTHIS_Shl_Data, stream< NetworkMetaStream > &siNrc_meta, stream< NetworkMetaStream > &soNrc_meta, ap_uint< 32 > *po_rx_ports, stream< DmCmd > &soMemWrCmdP0, stream< DmSts > &siMemWrStsP0, stream< Axis< 512 > > &soMemWriteP0, membus_t *lcl_mem0, membus_t *lcl_mem1) |
template<typename Tin , typename Tout , unsigned int arraysize> | |
void | pMyMemtestMemCpy (Tin *in, Tout *out) |
Copy a fixed compile time amount of data to another array. More... | |
template<typename Tin , typename Tout , const unsigned int arraysize> | |
void | pMemCpyCircularBuff (Tin *buff, Tout *out_mem, unsigned int elems, unsigned int offset_buff) |
Copy a run-time variable amount of data to another array employing the src as circular buffer i.e., handling overflow. More... | |
template<typename Tin , typename Tout , const unsigned int burstsize> | |
void | pReadAxiMemMapped2HlsStream (Tin *main_mem, hls::stream< Tout > &sOut, unsigned int elems) |
Copy a run-time variable amount of data to an hls stream with a given max. More... | |
template<typename Tin , typename Tout , const unsigned int burstsize, typename Tcntr > | |
void | pReadAxiMemMapped2HlsStreamCountFirst (Tin *main_mem, hls::stream< Tout > &sOut, unsigned int elems, hls::stream< Tcntr > &cmd) |
Copy a run-time variable amount of data to an hls stream with a given max it assumes also the initialization of a perf counter of "perfCounterMultipleCounts" function. More... | |
template<typename Tin , typename Tout , const unsigned int burstsize, typename Tcntr > | |
void | pReadAxiMemMapped2HlsStreamCountActivated (Tin *main_mem, hls::stream< Tout > &sOut, unsigned int elems, hls::stream< Tcntr > &cmd) |
Copy a run-time variable amount of data to an hls stream with a given max it assumes "perfCounterMultipleCounts" function already initialized so it just incr. More... | |
template<typename Tin , const unsigned int loop_cnt, const unsigned int bytes_per_loop, const unsigned int max_data_transfer> | |
void | storeWordToAxiStream (NetworkWord word, Tin &img_in_axi_stream, unsigned int *processed_word_rx, unsigned int *processed_bytes_rx, stream< bool > &sImageLoaded) |
Store a net word to a local AXI stream. More... | |
template<typename TInImg , const unsigned int img_pckts> | |
void | storeWordToArray (uint64_t input, TInImg img[img_pckts], unsigned int *processed_word, unsigned int *image_loaded) |
Store a net word to local memory. More... | |
template<typename Tin , typename Tout , unsigned int counter_precision = 64> | |
void | perfCounterProc (hls::stream< Tin > &cmd, hls::stream< Tout > &out, int direction, int burst_length, int nmbr_outstanding) |
template<typename Tin , typename Tout , unsigned int counter_precision = 64> | |
void | perfCounterProc2Mem (hls::stream< Tin > &cmd, Tout *out, int direction, int burst_length, int nmbr_outstanding) |
template<typename Tin , typename Tout , unsigned int counter_precision = 64> | |
void | perfCounterProc2MemCountOnly (hls::stream< Tin > &cmd, Tout *out) |
Count Clock Cycles between two events, the first event init the counter the second stop the count. More... | |
template<typename Tin , typename Tout , unsigned int counter_precision = 64> | |
void | perfCounterProc2MemCountIncremental (hls::stream< Tin > &cmd, Tout *out) |
Count Clock Cycles between two events, the first event init the counter the second stop the count and increment the out register TODO: seems not working at the csim lvl (never tested below) when executing single DUT step, hanging stream values. More... | |
template<typename Tin , typename Tout , unsigned int counter_precision = 64> | |
void | perfCounterMultipleCounts (hls::stream< Tin > &cmd, Tout *out) |
Count Clock Cycles between two events, the first event init the counter the second stop the count, a 0 after the init stop definitevely the counter. More... | |
template<typename Tevent = bool, const unsigned int counter_width = 32, const unsigned int maximum_counter_value_before_reset = 4000000> | |
void | pCountClockCycles (hls::stream< Tevent > &sOfEnableCCIncrement, hls::stream< Tevent > &sOfResetCounter, hls::stream< Tevent > &sOfGetTheCounter, hls::stream< ap_uint< counter_width > > &oSClockCounter) |
Count Clock Cycles between two events first sketch TODO: make it working without counting with the stream or reshaping as FSM. More... | |
void | pPortAndDestionation (ap_uint< 32 > *pi_rank, ap_uint< 32 > *pi_size, hls::stream< NodeId > &sDstNode_sig, ap_uint< 32 > *po_rx_ports) |
pPortAndDestionation - Setup the port and the destination rank. More... | |
void | pRXPath (hls::stream< NetworkWord > &siSHL_This_Data, hls::stream< NetworkMetaStream > &siNrc_meta, hls::stream< NetworkMetaStream > &sRxtoTx_Meta, hls::stream< ap_uint< INPUT_PTR_WIDTH >> &img_in_axi_stream, NetworkMetaStream meta_tmp, unsigned int *processed_word_rx, unsigned int *processed_bytes_rx, hls::stream< bool > &sImageLoaded) |
Receive Path - From SHELL to THIS. FIXME: never checked, just substitute this one from DID. More... | |
template<typename TMemWrd , const unsigned int loop_cnt, const unsigned int cTransfers_Per_Chunk, const unsigned int max_img_size, const unsigned int cBytesPer10GbitEthAXIPckt> | |
void | pRXPathNetToStream (hls::stream< NetworkWord > &siSHL_This_Data, hls::stream< NetworkMetaStream > &siNrc_meta, hls::stream< NetworkMetaStream > &sRxtoTx_Meta, hls::stream< TMemWrd > &img_in_axi_stream, hls::stream< bool > &sMemBurstRx, img_meta_t *img_rows, img_meta_t *img_cols, img_meta_t *img_chan, hls::stream< float > &sTxMatrix) |
Receive Path - From SHELL to THIS. Function for accumulating a memory word and write it Not ready for complete parametrization. More... | |
template<typename TStreamMemWrd , typename TMemWrd , const unsigned int loop_cnt, const unsigned int bytes_per_loop> | |
void | pRXPathStreamToDDR (hls::stream< TMemWrd > &img_in_axi_stream, hls::stream< bool > &sMemBurstRx, hls::stream< DmCmd > &soMemWrCmdP0, hls::stream< DmSts > &siMemWrStsP0, hls::stream< TStreamMemWrd > &soMemWriteP0, hls::stream< bool > &sImageLoaded, img_meta_t *img_rows, img_meta_t *img_cols, img_meta_t *img_chan) |
Receive Path - From RX path stream word aligned to store towards the DDR. More... | |
void | pTXPath (hls::stream< NetworkWord > &soTHIS_Shl_Data, hls::stream< NetworkMetaStream > &soNrc_meta, hls::stream< NetworkWord > &sProcpToTxp_Data, hls::stream< NetworkMetaStream > &sRxtoTx_Meta, hls::stream< NodeId > &sDstNode_sig, unsigned int *processed_word_tx, ap_uint< 32 > *pi_rank, img_meta_t *img_rows, img_meta_t *img_cols, img_meta_t *img_chan) |
Transmit Path - From THIS to SHELL. More... | |
template<typename TimgIn = ap_uint<INPUT_PTR_WIDTH>, typename TimgOut = ap_uint<OUTPUT_PTR_WIDTH>> | |
void | pProcPath (stream< NetworkWord > &sRxpToTxp_Data, stream< TimgIn > &img_in_axi_stream, stream< TimgOut > &img_out_axi_stream, stream< bool > &sImageLoaded, img_meta_t *img_rows, img_meta_t *img_cols, img_meta_t *img_chan, hls::stream< float > &sTxMatrix) |
Processing Path - Main processing FSM for Vitis kernels. More... | |
void | warp_transform (ap_uint< 32 > *pi_rank, ap_uint< 32 > *pi_size, stream< NetworkWord > &siSHL_This_Data, stream< NetworkWord > &soTHIS_Shl_Data, stream< NetworkMetaStream > &siNrc_meta, stream< NetworkMetaStream > &soNrc_meta, ap_uint< 32 > *po_rx_ports, stream< DmCmd > &soMemWrCmdP0, stream< DmSts > &siMemWrStsP0, stream< Axis< 512 >> &soMemWriteP0, membus_t *lcl_mem0, membus_t *lcl_mem1) |
Main process of the WarpTransform Application directives. More... | |
void | setUpTxMatrixFromStream (float transform_matrix[9], hls::stream< float > &sTxMatrix) |
void | warptTransformAccelArray (ap_uint< 8 > *img_in, float *transform, ap_uint< 64 > *img_out, int rows, int cols) |
Top-level accelerated function of the WarptTransform Application with array I/F used only for simulation/TB purposes. More... | |
void | warpTransformAccelStream (hls::stream< ap_uint< 8 >> &img_in_axi_stream, hls::stream< ap_uint< 64 >> &img_out_axi_stream, int rows, int cols, float transform_matrix[9]) |
Top-level accelerated function of the WarpTransform Application with array I/Fadd WARPTRANSFORM. More... | |
void | warp_transformAccelMem (membus_t *img_inp, membus_t *img_out, int rows, int cols, hls::stream< float > &sTxMatrix) |
Top-level accelerated function of the WarpTransform Application with memory mapped interfaces. More... | |
Variables | |
const unsigned int | const_tx_matrix_dim = 9 |
unsigned int | float_bits_u::i |
float | float_bits_u::f |
const unsigned long int | max_counter_cc = 4000000 |
This is a subgroup of WarpTransform accelerated function with only synthesizable (HLS) functions/classes.
#define BPERMDW_512 (MEMDW_512/8) |
Definition at line 134 of file warp_transform.hpp.
#define BYTE_PER_MEM_WORD BPERMDW_512 |
Definition at line 146 of file warp_transform.hpp.
#define CHECK_CHUNK_SIZE 0x1000 |
This define configures tha AXI burst size of DDRM memory-mapped interfaces AXI4 allows 4KiB, but Role's AXI interconnect is configured at max 1KiB 0x40->64, 0x400->1024B(1KiB), 0x1000->4KiB.
Definition at line 145 of file warp_transform.hpp.
#define CYCLES_UNTIL_TIMEOUT 0x0100 |
Definition at line 154 of file warp_transform.hpp.
#define Data_t_in ap_axiu<INPUT_PTR_WIDTH, 0, 0, 0> |
Definition at line 118 of file warp_transform.hpp.
#define Data_t_out ap_axiu<OUTPUT_PTR_WIDTH, 0, 0, 0> |
Definition at line 119 of file warp_transform.hpp.
#define DDR_LATENCY (52/4) |
Definition at line 158 of file warp_transform.hpp.
#define DEFAULT_RX_PORT 2718 |
Definition at line 112 of file warp_transform.hpp.
#define DEFAULT_TX_PORT 2718 |
Definition at line 111 of file warp_transform.hpp.
#define ENABLE_DDR |
Definition at line 55 of file warp_transform.hpp.
#define EXTRA_DDR_LATENCY_DUE_II (64 + 8) |
Definition at line 159 of file warp_transform.hpp.
#define FSM_CHK_PROC_BYTES 11 |
Definition at line 95 of file warp_transform.hpp.
#define FSM_CHK_SKIP 10 |
Definition at line 94 of file warp_transform.hpp.
#define FSM_CHK_WRT_CHNK_TO_DDR_PND 12 |
Definition at line 96 of file warp_transform.hpp.
#define FSM_DONE 1 |
Definition at line 57 of file warp_transform_network_library.hpp.
#define FSM_IDLE 9 |
Definition at line 93 of file warp_transform.hpp.
#define FSM_PROCESSING_BURST_READING 4 |
Definition at line 42 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_CONTINUOUS_RUN 12 |
Definition at line 50 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_DATAFLOW_READ 6 |
Definition at line 44 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_DATAFLOW_WRITE 5 |
Definition at line 43 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_OUTPUT 7 |
Definition at line 45 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_OUTPUT_2 8 |
Definition at line 46 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_OUTPUT_3 9 |
Definition at line 47 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_OUTPUT_4 10 |
Definition at line 48 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_OUTPUT_5 11 |
Definition at line 49 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_PCKT_PROC 1 |
Definition at line 39 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_START 3 |
Definition at line 41 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_STOP 2 |
Definition at line 40 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_WAIT_FOR_DDR_CONTROLLER_EMPTYNESS 13 |
Definition at line 51 of file warp_transform_processing.hpp.
#define FSM_PROCESSING_WAIT_FOR_META 0 |
Definition at line 38 of file warp_transform_processing.hpp.
#define FSM_WR_PAT_CMD 13 |
Definition at line 97 of file warp_transform.hpp.
#define FSM_WR_PAT_DATA 15 |
Definition at line 99 of file warp_transform.hpp.
#define FSM_WR_PAT_LOAD 14 |
Definition at line 98 of file warp_transform.hpp.
#define FSM_WR_PAT_STS_A 16 |
Definition at line 100 of file warp_transform.hpp.
#define FSM_WR_PAT_STS_B 17 |
Definition at line 101 of file warp_transform.hpp.
#define FSM_WR_PAT_STS_C 18 |
Definition at line 102 of file warp_transform.hpp.
#define FSM_WRITE_NEW_DATA 0 |
Definition at line 56 of file warp_transform_network_library.hpp.
#define fsmStateDDRdef uint8_t |
Definition at line 151 of file warp_transform.hpp.
#define GRAY 1 |
Definition at line 60 of file xf_config_params.h.
#define KWPERMDW_512 (BPERMDW_512/sizeof(TYPE)) |
Definition at line 135 of file warp_transform.hpp.
#define LOAD_IN_STREAM 3 |
Definition at line 87 of file warp_transform.hpp.
#define MAX_NB_OF_ELMT_PERDW (BPERDW/sizeof(mat_elmt_t)) |
Definition at line 126 of file warp_transform.hpp.
#define MAX_NB_OF_ELMT_READ 16 |
Definition at line 122 of file warp_transform.hpp.
#define MAX_NB_OF_WORDS_READ (MAX_NB_OF_ELMT_READ*sizeof(mat_elmt_t)/BPERDW) |
Definition at line 125 of file warp_transform.hpp.
#define MEMDW_512 512 |
Definition at line 133 of file warp_transform.hpp.
#define NO 1 |
Definition at line 57 of file xf_config_params.h.
#define PacketFsmType uint8_t |
Definition at line 108 of file warp_transform.hpp.
#define PortFsmType uint8_t |
Definition at line 58 of file warp_transform_network_library.hpp.
#define PORTS_OPENED 0x1F |
Definition at line 116 of file warp_transform.hpp.
#define PROCESSING_PACKET 2 |
Definition at line 86 of file warp_transform.hpp.
#define PROCESSING_PACKET_IMGMAT 20 |
Definition at line 104 of file warp_transform.hpp.
#define PROCESSING_PACKET_TXMAT 19 |
Definition at line 103 of file warp_transform.hpp.
#define ProcessingFsmType uint8_t |
Definition at line 52 of file warp_transform_processing.hpp.
#define PUSH_REMAINING_META 22 |
Definition at line 106 of file warp_transform.hpp.
#define RGBA 0 |
Definition at line 59 of file xf_config_params.h.
#define RO 0 |
Definition at line 56 of file xf_config_params.h.
#define ROLE_IS_WARPTRANSFORM |
Definition at line 82 of file warp_transform.hpp.
#define TOTMEMDW_512 (1 + (IMGSIZE - 1) / BPERMDW_512) |
Definition at line 138 of file warp_transform.hpp.
#define TRANSFERS_PER_CHUNK (CHECK_CHUNK_SIZE/BYTE_PER_MEM_WORD) |
Definition at line 147 of file warp_transform.hpp.
#define TRANSFERS_PER_CHUNK_DIVEND (TOTMEMDW_512-(TOTMEMDW_512/TRANSFERS_PER_CHUNK)*TRANSFERS_PER_CHUNK) |
Definition at line 148 of file warp_transform.hpp.
#define TRANSFORM_MATRIX_DIM 9 |
Definition at line 80 of file warp_transform.hpp.
#define TYPICAL_DDR_LATENCY 4 |
Definition at line 155 of file warp_transform.hpp.
#define WAIT_FOR_META 0 |
Definition at line 84 of file warp_transform.hpp.
#define WAIT_FOR_META_IMGMAT 21 |
Definition at line 105 of file warp_transform.hpp.
#define WAIT_FOR_STREAM_PAIR 1 |
Definition at line 85 of file warp_transform.hpp.
#define WAIT_FOR_TX 8 |
Definition at line 92 of file warp_transform.hpp.
#define WARPTRANSFORM_CHNNEL_BITWIDTH 3 |
Definition at line 70 of file warp_transform_network_library.hpp.
#define WARPTRANSFORM_CHNNEL_HIGH_BIT WARPTRANSFORM_COLS_LOW_BIT-1 |
Definition at line 80 of file warp_transform_network_library.hpp.
#define WARPTRANSFORM_CHNNEL_LOW_BIT WARPTRANSFORM_COLS_LOW_BIT-WARPTRANSFORM_CHNNEL_BITWIDTH |
Definition at line 81 of file warp_transform_network_library.hpp.
#define WARPTRANSFORM_COLS_BITWIDTH 16 |
Definition at line 71 of file warp_transform_network_library.hpp.
#define WARPTRANSFORM_COLS_HIGH_BIT WARPTRANSFORM_ROWS_LOW_BIT-1 |
Definition at line 77 of file warp_transform_network_library.hpp.
#define WARPTRANSFORM_COLS_LOW_BIT WARPTRANSFORM_ROWS_LOW_BIT-WARPTRANSFORM_COLS_BITWIDTH |
Definition at line 78 of file warp_transform_network_library.hpp.
#define WARPTRANSFORM_COMMANDS_BITWIDTH 8 |
Definition at line 78 of file warp_transform.hpp.
#define WARPTRANSFORM_COMMANDS_HIGH_BIT WARPTRANSFORM_COMMANDS_BITWIDTH-1 |
Definition at line 76 of file warp_transform.hpp.
#define WARPTRANSFORM_COMMANDS_LOW_BIT 0 |
Definition at line 77 of file warp_transform.hpp.
#define WARPTRANSFORM_RETURN_RESULTS 4 |
Definition at line 88 of file warp_transform.hpp.
#define WARPTRANSFORM_RETURN_RESULTS_ABSORB_DDR_LAT 5 |
Definition at line 89 of file warp_transform.hpp.
#define WARPTRANSFORM_RETURN_RESULTS_FWD 7 |
Definition at line 91 of file warp_transform.hpp.
#define WARPTRANSFORM_RETURN_RESULTS_UNPACK 6 |
Definition at line 90 of file warp_transform.hpp.
#define WARPTRANSFORM_ROWS_BITWIDTH 16 |
Definition at line 72 of file warp_transform_network_library.hpp.
#define WARPTRANSFORM_ROWS_HIGH_BIT NETWORK_WORD_BIT_WIDTH-1 |
Definition at line 74 of file warp_transform_network_library.hpp.
#define WARPTRANSFORM_ROWS_LOW_BIT NETWORK_WORD_BIT_WIDTH-WARPTRANSFORM_ROWS_BITWIDTH |
Definition at line 75 of file warp_transform_network_library.hpp.
typedef unsigned int img_meta_t |
Definition at line 79 of file warp_transform.hpp.
typedef uint8_t mat_elmt_t |
Definition at line 123 of file warp_transform.hpp.
typedef ap_uint< 512 > membus_512_t |
Definition at line 136 of file warp_transform.hpp.
typedef membus_512_t membus_t |
Definition at line 137 of file warp_transform.hpp.
enum EchoCtrl |
SHELL/MMIO/EchoCtrl - Config Register
Definition at line 59 of file warp_transform.hpp.
enum MemTestCmd |
Internal WarpTransform accelerator command
Enumerator | |
---|---|
TEST_BURSTSIZE_CMD | |
TEST_ENDOFTESTS_CMD | |
TEST_STOP_CMD | |
TEST_START_CMD | |
TEST_INVLD_CMD | |
WRPTX_IMG_CMD | |
WRPTX_TXMAT_CMD | |
WRPTX_INVLD_CMD |
Definition at line 69 of file warp_transform.hpp.
void pCountClockCycles | ( | hls::stream< Tevent > & | sOfEnableCCIncrement, |
hls::stream< Tevent > & | sOfResetCounter, | ||
hls::stream< Tevent > & | sOfGetTheCounter, | ||
hls::stream< ap_uint< counter_width > > & | oSClockCounter | ||
) |
Count Clock Cycles between two events first sketch TODO: make it working without counting with the stream or reshaping as FSM.
[in] | sOfEnableCCIncrement | |
[in] | sOfResetCounter | |
[in] | sOfGetTheCounter | |
[in] | oSClockCounter | |
[in] | Tevent | the event datatype |
[in] | counter_width | the counter precision |
[in] | maximum_counter_value_before_reset | the maxmimum amount of cc count before auto reset |
Definition at line 490 of file warp_transform_hw_common.hpp.
void perfCounterMultipleCounts | ( | hls::stream< Tin > & | cmd, |
Tout * | out | ||
) |
Count Clock Cycles between two events, the first event init the counter the second stop the count, a 0 after the init stop definitevely the counter.
[in] | cmd | the performance counter cmd stream, first is init second stop(0)/continue(everything else) |
[out] | out | the output register of where store the incremental counter value |
[in] | Tin | the input datatype |
[in] | Tout | the output datatype |
[in] | counter_precision | the maxmimum amount of data |
Definition at line 443 of file warp_transform_hw_common.hpp.
void perfCounterProc | ( | hls::stream< Tin > & | cmd, |
hls::stream< Tout > & | out, | ||
int | direction, | ||
int | burst_length, | ||
int | nmbr_outstanding | ||
) |
Definition at line 306 of file warp_transform_hw_common.hpp.
void perfCounterProc2Mem | ( | hls::stream< Tin > & | cmd, |
Tout * | out, | ||
int | direction, | ||
int | burst_length, | ||
int | nmbr_outstanding | ||
) |
Definition at line 341 of file warp_transform_hw_common.hpp.
void perfCounterProc2MemCountIncremental | ( | hls::stream< Tin > & | cmd, |
Tout * | out | ||
) |
Count Clock Cycles between two events, the first event init the counter the second stop the count and increment the out register TODO: seems not working at the csim lvl (never tested below) when executing single DUT step, hanging stream values.
[in] | cmd | the performance counter cmd stream, first is init second stop |
[out] | out | the output register of where increment the counter value |
[in] | Tin | the input datatype |
[in] | Tout | the output datatype |
[in] | counter_precision | the maxmimum amount of data |
Definition at line 411 of file warp_transform_hw_common.hpp.
void perfCounterProc2MemCountOnly | ( | hls::stream< Tin > & | cmd, |
Tout * | out | ||
) |
Count Clock Cycles between two events, the first event init the counter the second stop the count.
[in] | cmd | the performance counter cmd stream, first is init second stop |
[out] | out | the output register of where store the counter value |
[in] | Tin | the input datatype |
[in] | Tout | the output datatype |
[in] | counter_precision | the maxmimum amount of data |
Definition at line 375 of file warp_transform_hw_common.hpp.
void pMemCpyCircularBuff | ( | Tin * | buff, |
Tout * | out_mem, | ||
unsigned int | elems, | ||
unsigned int | offset_buff | ||
) |
Copy a run-time variable amount of data to another array employing the src as circular buffer i.e., handling overflow.
[out] | out_mem | the dst ptr |
[in] | buff | the src ptr, or the circular buffer |
[in] | elems | the current amount of data to tx |
[in] | offset_buff | the initial offest in the circular buffer |
[in] | Tin | the input datatype |
[in] | Tout | the output datatype |
[in] | arraysize | the maxmimum amount of data |
Definition at line 112 of file warp_transform_hw_common.hpp.
void pMyMemtestMemCpy | ( | Tin * | in, |
Tout * | out | ||
) |
Copy a fixed compile time amount of data to another array.
[out] | out | the dst ptr |
[in] | in | the src ptr |
[in] | Tin | the input datatype |
[in] | Tout | the output datatype |
[in] | arraysize | the fixed amount of data |
Definition at line 87 of file warp_transform_hw_common.hpp.
void pPortAndDestionation | ( | ap_uint< 32 > * | pi_rank, |
ap_uint< 32 > * | pi_size, | ||
hls::stream< NodeId > & | sDstNode_sig, | ||
ap_uint< 32 > * | po_rx_ports | ||
) |
pPortAndDestionation - Setup the port and the destination rank.
[in] | pi_rank | |
[in] | pi_size | |
[out] | sDstNode_sig | |
[out] | po_rx_ports |
Definition at line 97 of file warp_transform_network_library.hpp.
void pProcPath | ( | stream< NetworkWord > & | sRxpToTxp_Data, |
stream< TimgIn > & | img_in_axi_stream, | ||
stream< TimgOut > & | img_out_axi_stream, | ||
stream< bool > & | sImageLoaded, | ||
img_meta_t * | img_rows, | ||
img_meta_t * | img_cols, | ||
img_meta_t * | img_chan, | ||
hls::stream< float > & | sTxMatrix | ||
) |
Processing Path - Main processing FSM for Vitis kernels.
[out] | sRxpToTxp_Data | |
[in] | img_in_axi_stream | |
[in] | img_out_axi_stream | |
[out] | processed_word_rx | |
[in] | sImageLoaded |
Definition at line 69 of file warp_transform_processing.hpp.
void pReadAxiMemMapped2HlsStream | ( | Tin * | main_mem, |
hls::stream< Tout > & | sOut, | ||
unsigned int | elems | ||
) |
Copy a run-time variable amount of data to an hls stream with a given max.
[out] | main_mem | the src ptr to read |
[in] | sOut | the dst hls stream |
[in] | elems | the current amount of data to tx |
[in] | Tin | the input datatype |
[in] | Tout | the output datatype |
[in] | burstsize | the maxmimum amount of data |
Definition at line 146 of file warp_transform_hw_common.hpp.
void pReadAxiMemMapped2HlsStreamCountActivated | ( | Tin * | main_mem, |
hls::stream< Tout > & | sOut, | ||
unsigned int | elems, | ||
hls::stream< Tcntr > & | cmd | ||
) |
Copy a run-time variable amount of data to an hls stream with a given max it assumes "perfCounterMultipleCounts" function already initialized so it just incr.
[out] | main_mem | the src ptr to read |
[in] | sOut | the dst hls stream |
[in] | elems | the current amount of data to tx |
[in] | cmd | the performance counter cmd stream |
[in] | Tin | the input datatype |
[in] | Tout | the output datatype |
[in] | burstsize | the maxmimum amount of data |
[in] | Tcntr | the cmd perf counter datatype |
Definition at line 205 of file warp_transform_hw_common.hpp.
void pReadAxiMemMapped2HlsStreamCountFirst | ( | Tin * | main_mem, |
hls::stream< Tout > & | sOut, | ||
unsigned int | elems, | ||
hls::stream< Tcntr > & | cmd | ||
) |
Copy a run-time variable amount of data to an hls stream with a given max it assumes also the initialization of a perf counter of "perfCounterMultipleCounts" function.
[out] | main_mem | the src ptr to read |
[in] | sOut | the dst hls stream |
[in] | elems | the current amount of data to tx |
[in] | cmd | the performance counter cmd stream |
[in] | Tin | the input datatype |
[in] | Tout | the output datatype |
[in] | burstsize | the maxmimum amount of data |
[in] | Tcntr | the cmd perf counter datatype |
Definition at line 175 of file warp_transform_hw_common.hpp.
void pRXPath | ( | hls::stream< NetworkWord > & | siSHL_This_Data, |
hls::stream< NetworkMetaStream > & | siNrc_meta, | ||
hls::stream< NetworkMetaStream > & | sRxtoTx_Meta, | ||
hls::stream< ap_uint< INPUT_PTR_WIDTH >> & | img_in_axi_stream, | ||
NetworkMetaStream | meta_tmp, | ||
unsigned int * | processed_word_rx, | ||
unsigned int * | processed_bytes_rx, | ||
hls::stream< bool > & | sImageLoaded | ||
) |
Receive Path - From SHELL to THIS. FIXME: never checked, just substitute this one from DID.
[in] | siSHL_This_Data | |
[in] | siNrc_meta | |
[out] | sRxtoTx_Meta | |
[out] | img_in_axi_stream | |
[out] | meta_tmp | |
[out] | processed_word | |
[out] | sImageLoaded |
Definition at line 149 of file warp_transform_network_library.hpp.
void pRXPathNetToStream | ( | hls::stream< NetworkWord > & | siSHL_This_Data, |
hls::stream< NetworkMetaStream > & | siNrc_meta, | ||
hls::stream< NetworkMetaStream > & | sRxtoTx_Meta, | ||
hls::stream< TMemWrd > & | img_in_axi_stream, | ||
hls::stream< bool > & | sMemBurstRx, | ||
img_meta_t * | img_rows, | ||
img_meta_t * | img_cols, | ||
img_meta_t * | img_chan, | ||
hls::stream< float > & | sTxMatrix | ||
) |
Receive Path - From SHELL to THIS. Function for accumulating a memory word and write it Not ready for complete parametrization.
[in] | siSHL_This_Data | the data rx from network |
[in] | siNrc_meta | meta from network |
[out] | sRxtoTx_Meta | meta to the tx path |
[out] | img_in_axi_stream | the image data packed in 512 bits |
[out] | sMemBurstRx | assessing the burst is ready |
Definition at line 221 of file warp_transform_network_library.hpp.
void pRXPathStreamToDDR | ( | hls::stream< TMemWrd > & | img_in_axi_stream, |
hls::stream< bool > & | sMemBurstRx, | ||
hls::stream< DmCmd > & | soMemWrCmdP0, | ||
hls::stream< DmSts > & | siMemWrStsP0, | ||
hls::stream< TStreamMemWrd > & | soMemWriteP0, | ||
hls::stream< bool > & | sImageLoaded, | ||
img_meta_t * | img_rows, | ||
img_meta_t * | img_cols, | ||
img_meta_t * | img_chan | ||
) |
Receive Path - From RX path stream word aligned to store towards the DDR.
[in] | img_in_axi_stream | |
[in] | sMemBurstRx | |
[out] | soMemWrCmdP0 | |
[out] | siMemWrStsP0 | |
[out] | soMemWriteP0 | |
[out] | sImageLoaded |
Definition at line 443 of file warp_transform_network_library.hpp.
void pTXPath | ( | hls::stream< NetworkWord > & | soTHIS_Shl_Data, |
hls::stream< NetworkMetaStream > & | soNrc_meta, | ||
hls::stream< NetworkWord > & | sProcpToTxp_Data, | ||
hls::stream< NetworkMetaStream > & | sRxtoTx_Meta, | ||
hls::stream< NodeId > & | sDstNode_sig, | ||
unsigned int * | processed_word_tx, | ||
ap_uint< 32 > * | pi_rank, | ||
img_meta_t * | img_rows, | ||
img_meta_t * | img_cols, | ||
img_meta_t * | img_chan | ||
) |
Transmit Path - From THIS to SHELL.
[out] | soTHIS_Shl_Data | |
[out] | soNrc_meta | |
[in] | sProcpToTxp_Data | |
[in] | sRxtoTx_Meta | |
[in] | pi_rank | |
[in] | sDstNode_sig |
Definition at line 668 of file warp_transform_network_library.hpp.
void setUpTxMatrixFromStream | ( | float | transform_matrix[9], |
hls::stream< float > & | sTxMatrix | ||
) |
Definition at line 61 of file xf_warp_transform_accel.cpp.
void storeWordToArray | ( | uint64_t | input, |
TInImg | img[img_pckts], | ||
unsigned int * | processed_word, | ||
unsigned int * | image_loaded | ||
) |
Store a net word to local memory.
Definition at line 273 of file warp_transform_hw_common.hpp.
void storeWordToAxiStream | ( | NetworkWord | word, |
Tin & | img_in_axi_stream, | ||
unsigned int * | processed_word_rx, | ||
unsigned int * | processed_bytes_rx, | ||
stream< bool > & | sImageLoaded | ||
) |
Store a net word to a local AXI stream.
Definition at line 226 of file warp_transform_hw_common.hpp.
void warp_transform | ( | ap_uint< 32 > * | pi_rank, |
ap_uint< 32 > * | pi_size, | ||
stream< NetworkWord > & | siSHL_This_Data, | ||
stream< NetworkWord > & | soTHIS_Shl_Data, | ||
stream< NetworkMetaStream > & | siNrc_meta, | ||
stream< NetworkMetaStream > & | soNrc_meta, | ||
ap_uint< 32 > * | po_rx_ports, | ||
stream< DmCmd > & | soMemWrCmdP0, | ||
stream< DmSts > & | siMemWrStsP0, | ||
stream< Axis< 512 > > & | soMemWriteP0, | ||
membus_t * | lcl_mem0, | ||
membus_t * | lcl_mem1 | ||
) |
void warp_transform | ( | ap_uint< 32 > * | pi_rank, |
ap_uint< 32 > * | pi_size, | ||
stream< NetworkWord > & | siSHL_This_Data, | ||
stream< NetworkWord > & | soTHIS_Shl_Data, | ||
stream< NetworkMetaStream > & | siNrc_meta, | ||
stream< NetworkMetaStream > & | soNrc_meta, | ||
ap_uint< 32 > * | po_rx_ports, | ||
stream< DmCmd > & | soMemWrCmdP0, | ||
stream< DmSts > & | siMemWrStsP0, | ||
stream< Axis< 512 >> & | soMemWriteP0, | ||
membus_t * | lcl_mem0, | ||
membus_t * | lcl_mem1 | ||
) |
Main process of the WarpTransform Application directives.
Definition at line 51 of file warp_transform.cpp.
void warp_transformAccelMem | ( | membus_t * | img_inp, |
membus_t * | img_out, | ||
int | rows, | ||
int | cols, | ||
hls::stream< float > & | sTxMatrix | ||
) |
Top-level accelerated function of the WarpTransform Application with memory mapped interfaces.
Definition at line 222 of file xf_warp_transform_accel.cpp.
void warpTransformAccelStream | ( | hls::stream< ap_uint< 8 >> & | img_in_axi_stream, |
hls::stream< ap_uint< 64 >> & | img_out_axi_stream, | ||
int | rows, | ||
int | cols, | ||
float | transform_matrix[9] | ||
) |
Top-level accelerated function of the WarpTransform Application with array I/Fadd WARPTRANSFORM.
Definition at line 129 of file xf_warp_transform_accel.cpp.
void warptTransformAccelArray | ( | ap_uint< 8 > * | img_in, |
float * | transform, | ||
ap_uint< 64 > * | img_out, | ||
int | rows, | ||
int | cols | ||
) |
Top-level accelerated function of the WarptTransform Application with array I/F used only for simulation/TB purposes.
Definition at line 83 of file xf_warp_transform_accel.cpp.
const unsigned int const_tx_matrix_dim = 9 |
Definition at line 81 of file warp_transform.hpp.
float float_bits_u::f |
Definition at line 69 of file warp_transform_hw_common.hpp.
unsigned int float_bits_u::i |
Definition at line 68 of file warp_transform_hw_common.hpp.
const unsigned long int max_counter_cc = 4000000 |
Definition at line 300 of file warp_transform_hw_common.hpp.