#include "qrd.hpp"
template < int RowsA, int ColsA, int PowUnroll, int PowFoldRow, int NCU, int PowNCU, class T > void qrd_cfloat_core ( hls::x_complex <T> dataA [NCU][RowsA/NCU][ColsA], hls::stream <hls::x_complex <T>>& R_strm )
Level 1 : high throughput version for Complex Float QR decompression 1024*256.
Parameters:
RowsA | Row numbers of matrix A. “enum”:[“1024”,”512”,”256”]. |
ColsA | Column numbers of matrix A. “enum”:[“256”,”128”,”64”]. |
PowUnroll | Power2 of RowsA Size. “enum”:[“10”,”9”,”8”]. Set the appropriate input matrix rows and columns, kernel top will automatically deduce the right configuration. |
PowFoldRow | Power2 of fold Rows Size. “enum”:[“2”]. Set the appropriate input matrix rows and columns, kernel top will automatically deduce the right configuration. |
NCU | Number of Compute Unit. “enum”:[“32”,”4”,”1”]. Set the appropriate input matrix rows and columns, kernel top will automatically deduce the right configuration. |
PowNCU | Power2 of compute unit(CU) number. “enum”:[“5”,”2”,”1”]. Set the appropriate input matrix rows and columns, kernel top will automatically deduce the right configuration. |
T | Input/output data type. |
dataA | Inout port, Matrix A as input and output matrix Q. For multi-cu design, expand Row into 2 dimensions[NCU][RowsA / NCU], NCU is related to PowNCU. |
R_strm | Output port, Matrix R, non-zero numbers in the upper triangular matrix. The effective numbers can be placed in appropriate position of the 0 matrix to restore the R matrix. |