template class xf::dsp::aie::fir::sr_sym::fir_sr_sym_graph¶
#include "fir_sr_sym_graph.hpp"
Overview¶
fir_sr_sym is a Symmetrical Single Rate FIR filter
These are the templates to configure the Symmetric Single Rate FIR class.
Parameters:
TT_DATA | describes the type of individual data samples input to and output from the filter function. This is a typename and must be one of the following: int16, cint16, int32, cint32, float, cfloat. |
TT_COEFF | describes the type of individual coefficients of the filter taps. It must be one of the same set of types listed for TT_DATA and must also satisfy the following rules:
|
TP_FIR_LEN | is an unsigned integer which describes the number of taps in the filter. |
TP_SHIFT | describes power of 2 shift down applied to the accumulation of FIR terms before output. TP_SHIFT must be in the range 0 to 61. |
TP_RND | describes the selection of rounding to be applied during the shift down stage of processing. TP_RND must be in the range 0 to 7 where
|
TP_INPUT_WINDOW_VSIZE | describes the number of samples in the window API used for input to the filter function. The number of values in the output window will be TP_INPUT_WINDOW_VSIZE also by virtue the single rate nature of this function. Note: Margin size should not be included in TP_INPUT_WINDOW_VSIZE. |
TP_CASC_LEN | describes the number of AIE processors to split the operation over. This allows resource to be traded for higher performance. TP_CASC_LEN must be in the range 1 (default) to 9. |
TP_USE_COEFF_RELOAD | allows the user to select if runtime coefficient reloading should be used. When defining the parameter:
|
TP_NUM_OUTPUTS | sets the number of ports to broadcast the output to. Note: when used, optional port: |
TP_API | specifies if the output interface should be window-based or stream-based. The values supported are 0 (window API) or 1 (stream API). Note: due to the data buffering requirement imposed through symmetry, input interface is always set to window. Auto-infeffed DMA stream-to-window conversion is applied when FIR is connected with an input stream. |
template < typename TT_DATA, typename TT_COEFF, unsigned int TP_FIR_LEN, unsigned int TP_SHIFT, unsigned int TP_RND, unsigned int TP_INPUT_WINDOW_VSIZE, unsigned int TP_CASC_LEN = 1, unsigned int TP_USE_COEFF_RELOAD = 0, unsigned int TP_NUM_OUTPUTS = 1, unsigned int TP_API = 0 > class fir_sr_sym_graph: public graph // fields port <input> in port <output> out port_conditional <input, (TP_USE_COEFF_RELOAD==1)> coeff port_conditional <output, (TP_NUM_OUTPUTS==2)> out2
Fields¶
port <input> in
The input data to the function. This input is either a window API of samples of TT_DATA type or stream API (depending on TP_API). Note: Margin is added internally to the graph, when connecting input port with kernel port. Therefore, margin should not be added when connecting graph to a higher level design unit. Margin size (in Bytes) equals to TP_FIR_LEN rounded up to a nearest multiple of 32 bytes.
port <output> out
The output data from the function. This output is either a window API of samples of TT_DATA type or stream API (depending on TP_API). Number of output samples is determined by interpolation & decimation factors (if present).
port_conditional <input, (TP_USE_COEFF_RELOAD==1)> coeff
The conditional coefficient data to the function. This port is (generated when TP_USE_COEFF_RELOAD == 1) an array of coefficients of TT_COEFF type.
port_conditional <output, (TP_NUM_OUTPUTS==2)> out2
The output data from the function. This output is (generated when TP_NUM_OUTPUTS == 2) either a window API of samples of TT_DATA type or stream API (depending on TP_API). Number of output samples is determined by interpolation & decimation factors (if present).
Methods¶
getKernels¶
kernel* getKernels ()
Access function to get pointer to kernel (or first kernel in a chained configuration).
getKernelArchs¶
unsigned int getKernelArchs ()
Access function to get kernel’s architecture (or first kernel’s architecture in a chained configuration).
fir_sr_sym_graph¶
fir_sr_sym_graph overload (1)¶
fir_sr_sym_graph (const std::vector <TT_COEFF>& taps)
This is the constructor function for the FIR graph with static coefficients.
Parameters:
taps | a reference to the std::vector array of taps values of type TT_COEFF. |
fir_sr_sym_graph overload (2)¶
fir_sr_sym_graph ()
This is the constructor function for the FIR graph with reloadable coefficients.