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 windowbased or streambased. 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. Autoinfeffed DMA streamtowindow 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.