DP-HLS
 All Classes Namespaces Files Functions Variables Typedefs Macros Pages
Align::Rectangular Namespace Reference

This namespace contains functions to define the core architectures used in the non-banding alignment kernel. More...

Functions

void AlignStatic (const char_t(&querys)[MAX_QUERY_LENGTH], const char_t(&references)[MAX_REFERENCE_LENGTH], const idx_t query_length, const idx_t reference_length, const Penalties &penalties, idx_t &tb_i, idx_t &tb_j, tbr_t(&tb_out)[MAX_REFERENCE_LENGTH+MAX_QUERY_LENGTH])
 Perform Pairwise alignment for two sequences in rectangular grid, with virtual coordinates. More...
 
void ChunkCompute (idx_t chunk_row_offset, input_char_block_t &query, const char_t(&reference)[MAX_REFERENCE_LENGTH], chunk_col_scores_inf_t &init_col_scr, score_vec_t(&init_row_scr)[MAX_REFERENCE_LENGTH], idx_t &p_col_offset, idx_t ck_idx, idx_t global_query_length, idx_t query_length, idx_t reference_length, const bool(&col_pred)[PE_NUM], const Penalties &penalties, ScorePack(&max)[PE_NUM], tbp_t(&chunk_tbp_out)[PE_NUM][TBMEM_SIZE])
 Compute the traceback pointers for a chunk of the size PE_NUM * REFERENCE_LENGTH, with rectangular grid and virtual coordinates. More...
 
void MapPredicate (const idx_t wavefront, const idx_t ref_len, const idx_t qry_len, bool(&row_pred)[PE_NUM], const bool(&col_pred)[PE_NUM], bool(&pred)[PE_NUM])
 Logics to map the global coordinates of a wavefront of PE to their prediate values. MapPredicateSquare is a function F: (pe_row: int, pe_col: int) -> (predicate_balue: boolean) It's unrolled for PE_NUM applying to each PE. More...
 

Detailed Description

This namespace contains functions to define the core architectures used in the non-banding alignment kernel.

Function Documentation

void Align::Rectangular::AlignStatic ( const char_t(&)  querys[MAX_QUERY_LENGTH],
const char_t(&)  references[MAX_REFERENCE_LENGTH],
const idx_t  query_length,
const idx_t  reference_length,
const Penalties &  penalties,
idx_t &  tb_i,
idx_t &  tb_j,
tbr_t(&)  tb_out[MAX_REFERENCE_LENGTH+MAX_QUERY_LENGTH] 
)

Perform Pairwise alignment for two sequences in rectangular grid, with virtual coordinates.

Parameters
query,:Query sequence buffer.
reference,:Reference sequence buffer.
query_length,:Length of the query.
reference_length,:Length of the reference.
tb_streams,:Output traceback path.
void Align::Rectangular::ChunkCompute ( idx_t  chunk_row_offset,
input_char_block_t query,
const char_t(&)  reference[MAX_REFERENCE_LENGTH],
chunk_col_scores_inf_t init_col_scr,
score_vec_t(&)  init_row_scr[MAX_REFERENCE_LENGTH],
idx_t &  p_col_offset,
idx_t  ck_idx,
idx_t  global_query_length,
idx_t  query_length,
idx_t  reference_length,
const bool(&)  col_pred[PE_NUM],
const Penalties &  penalties,
ScorePack(&)  max[PE_NUM],
tbp_t(&)  chunk_tbp_out[PE_NUM][TBMEM_SIZE] 
)

Compute the traceback pointers for a chunk of the size PE_NUM * REFERENCE_LENGTH, with rectangular grid and virtual coordinates.

Parameters
chunk_row_offset: The row offset in the whole traceback matrix the beginning of the chunk.
query: Query sequence with length PE_NUM.
init_col_scr: Initial score for the first column of this chunk.
query_length: Length of the query < PE_NUM.
reference_length: Length of the reference < MAX_REFERENCE_LENGTH.
max: Score pack of the maximium score of this chunk.
void Align::Rectangular::MapPredicate ( const idx_t  wavefront,
const idx_t  ref_len,
const idx_t  qry_len,
bool(&)  row_pred[PE_NUM],
const bool(&)  col_pred[PE_NUM],
bool(&)  pred[PE_NUM] 
)

Logics to map the global coordinates of a wavefront of PE to their prediate values. MapPredicateSquare is a function F: (pe_row: int, pe_col: int) -> (predicate_balue: boolean) It's unrolled for PE_NUM applying to each PE.

Parameters
icsGlobal Row Coordinates of a Wavefront of PE.
jcsGlobal Column Coordinates of a Wavefront of PE.
ref_lenActual Reference Length.
predicatePredicate Array.