.. index:: pair: class; xf::dsp::aie::fir::interpolate_hb::fir_interpolate_hb_graph
.. _doxid-classxf_1_1dsp_1_1aie_1_1fir_1_1interpolate__hb_1_1fir__interpolate__hb__graph:
.. _cid-xf::dsp::aie::fir::interpolate_hb::fir_interpolate_hb_graph:
template class xf::dsp::aie::fir::interpolate_hb::fir_interpolate_hb_graph
==========================================================================
.. toctree::
:hidden:
.. code-block:: cpp
:class: overview-code-block
#include "fir_interpolate_hb_graph.hpp"
Overview
~~~~~~~~
fir_interpolate_hb is a Halfband Interpolation FIR filter
These are the templates to configure the halfband interpolator FIR class.
.. rubric:: Parameters:
.. list-table::
:widths: 20 80
*
- 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:
* Complex types are only supported when TT_DATA is also complex.
* 32 bit types are only supported when TT_DATA is also a 32 bit type,
* TT_COEFF must be an integer type if TT_DATA is an integer type
* TT_COEFF must be a float type if TT_DATA is a float type.
*
- TP_FIR_LEN
- is an unsigned integer which describes the number of taps in the filter. TP_FIR_LEN must be in the range 4 to 240 inclusive and must satisfy (TP_FIR_LEN +1)/4 = N where N is a positive integer.
*
- 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
* 0 = floor (truncate) eg. 3.8 Would become 3.
* 1 = ceiling e.g. 3.2 would become 4.
* 2 = round to positive infinity.
* 3 = round to negative infinity.
* 4 = round symmetrical to infinity.
* 5 = round symmetrical to zero.
* 6 = round convergent to even.
* 7 = round convergent to odd.
Modes 2 to 7 round to the nearest integer. They differ only in how they round for values of 0.5.
*
- 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 multiplied by 2 by virtue the halfband interpolation factor.
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_DUAL_IP
-
is an implementation trade-off between performance and data bank resource.
When set to 0, the FIR performance may be limited by load contention.
When set to 1, two ram banks are used for input.
*
- TP_USE_COEFF_RELOAD
-
allows the user to select if runtime coefficient reloading should be used.
When defining the parameter:
* 0 = static coefficients, defined in filter constructor,
* 1 = reloadable coefficients, passed as argument to runtime function.
Note: when used, optional port: ``port coeff;`` will be added to the FIR.
*
- TP_NUM_OUTPUTS
-
sets the number of ports to broadcast the output to.
Note: when used, optional port: ``port