DP-HLS
 All Classes Namespaces Files Functions Variables Typedefs Macros Pages
PE.h
Go to the documentation of this file.
1 #ifndef PE_H
2 #define PE_H
3 
4 #include <hls_stream.h>
5 #include <ap_int.h>
6 #include <ap_fixed.h>
7 #include <hls_streamofblocks.h>
8 #include "./traceback.h"
9 #include <hls_vector.h>
10 #include "dp_hls_common.h"
11 
12 #ifdef CMAKEDEBUG
13 #include <list>
14 #endif // DEBUG
15 
16 namespace PE
17 {
18 
29  void PEUnroll(score_vec_t (&dp_mem)[PE_NUM + 1][3],
30  const input_char_block_t qry,
31  const input_char_block_t ref,
32  const Penalties penalties,
33 #ifdef LOCAL_TRANSITION_MATRIX
34  const type_t (&transitions)[PE_NUM][TRANSITION_MATRIX_SIZE][TRANSITION_MATRIX_SIZE],
35 #endif
36  tbp_vec_t &tbp);
37 
49  void PEUnrollSep(
50  dp_mem_block_t &dp_mem,
51  const input_char_block_t &qry,
52  const input_char_block_t &ref,
53  const Penalties penalties,
54 #ifdef LOCAL_TRANSITION_MATRIX
55  const type_t (&transitions)[PE_NUM][TRANSITION_MATRIX_SIZE][TRANSITION_MATRIX_SIZE],
56 #endif
58  tbp_vec_t &tbp);
59 
71  void PEUnrollFixedSep(
72  const dp_mem_block_t dp_mem,
73  const input_char_block_t qry,
74  const input_char_block_t ref,
75  const Penalties penalties,
76 #ifdef LOCAL_TRANSITION_MATRIX
77  const type_t (&transitions)[PE_NUM][TRANSITION_MATRIX_SIZE][TRANSITION_MATRIX_SIZE],
78 #endif
80  tbp_vec_t &tbp);
81 
82 }
83 
84 #endif // !PE_H
85 
86 // Static data members are shared by all instances of a class.
void PEUnroll(score_vec_t(&dp_mem)[PE_NUM+1][3], const input_char_block_t qry, const input_char_block_t ref, const Penalties penalties, tbp_vec_t &tbp)
Unrolls the array of PE.
hls::vector< type_t, N_LAYERS > score_vec_t
Vector of scores, used to store the scores of each layer in the same coordiante in the DP matrix...
Definition: dp_hls_common.h:31
void PEUnrollSep(dp_mem_block_t &dp_mem, const input_char_block_t &qry, const input_char_block_t &ref, const Penalties penalties, wavefront_scores_inf_t &score, tbp_vec_t &tbp)
Unrolls the array of PE, saparating the score input buffer and the score output buffer. Used in the rectangular kernel.
void PEUnrollFixedSep(const dp_mem_block_t dp_mem, const input_char_block_t qry, const input_char_block_t ref, const Penalties penalties, wavefront_scores_inf_t &score, tbp_vec_t &tbp)
Unrolls the array of PE, saparating the score input buffer and the score output buffer. Used in the fixed banded kernel.
Declaration of types used by DP-HLS internally, referred from the user defined params.h file.
score_vec_t wavefront_scores_inf_t[PE_NUM+1]
Definition: dp_hls_common.h:86
char_t input_char_block_t[PE_NUM]
Definition: dp_hls_common.h:91
score_vec_t dp_mem_block_t[PE_NUM+1][2]
Definition: dp_hls_common.h:87
tbp_t tbp_vec_t[PE_NUM]
Definition: dp_hls_common.h:90