namespace internal¶
// unions union toFloat
mem2NStrmBP¶
#include "xf_data_analytics/geospatial/block_merge_tree.hpp"
template < typename DT, int CH, int BN, int BL = 1024 > void mem2NStrmBP ( int sz, DT* i_buf, hls::stream <DT> o_strm [CH], hls::stream <bool> o_bp_strm [CH], hls::stream <bool> o_end_strm [CH] )
mem2NStrmBP memory to N stream with back-pressure
Parameters:
| DT | data type | 
| CH | output channel number | 
| BN | block length | 
| BL | burst length of AXI read | 
split_csv_stream¶
#include "xf_data_analytics/geospatial/knn.hpp"
void split_csv_stream ( hls::stream <xf::data_analytics::dataframe::Object>& obj_strm, hls::stream <ap_uint <32>>& idx_strm, hls::stream <float>& x_strm, hls::stream <float>& y_strm, hls::stream <bool>& strm_out_end )
split object stream of csv parser into seperate streams for distance computation.
Parameters:
| obj_strm | stream of csv parser output object | 
| idx_strm | stream of point index | 
| x_strm | stream of point x coordinate | 
| y_strm | stream of point y coordinate | 
| strm_out_end | stream end flags | 
compute_distance¶
#include "xf_data_analytics/geospatial/knn.hpp"
void compute_distance ( hls::stream <float>& x_strm, hls::stream <float>& y_strm, hls::stream <bool>& strm_in_end, float base_x, float base_y, hls::stream <float>& distance_strm, hls::stream <bool>& strm_out_end )
Compute distance between input point and base point. Euclidean distance is used.
Parameters:
| x_strm | stream of input point x coordinate | 
| y_strm | stream of input point y coordinate | 
| strm_in_end | input stream end flag | 
| base_x | base point x coordinate | 
| base_y | base point y coordinate | 
| distance_strm | stream of output distance | 
| strm_out_end | output stream end flag | 
write2mem¶
#include "xf_data_analytics/geospatial/knn.hpp"
template <int CSV_PU_NUM = 2> void write2mem ( ap_uint <32> line_cnt_buf [CSV_PU_NUM/2][2], hls::stream <float>& sorted_distance_strm, hls::stream <ap_uint <32>>& sorted_index_strm, hls::stream <bool>& strm_in_end, float* distance, uint32_t* index )
Postprocess and write result to DDR.
Parameters:
| CSV_PU_NUM | num of csv parser used to parallel parse csv data | 
| line_cnt_buf | num of csv lines that each pu processes | 
| sorted_distance_strm | input stream of sorted distance | 
| sorted_index_strm | input stream of sorted point index | 
| strm_in_end | input stream end flag | 
| distance | output sorted top-k distance | 
| index | output sorted top-k index |