.. index:: pair: class; xf::dsp::aie::widget::api_cast::widget_api_cast_graph
.. _doxid-classxf_1_1dsp_1_1aie_1_1widget_1_1api__cast_1_1widget__api__cast__graph:
.. _cid-xf::dsp::aie::widget::api_cast::widget_api_cast_graph:
template class xf::dsp::aie::widget::api_cast::widget_api_cast_graph
====================================================================
.. toctree::
:hidden:
.. code-block:: cpp
:class: overview-code-block
#include "widget_api_cast_graph.hpp"
Overview
~~~~~~~~
widget_api_cast is a design to change the interface between connected components. This component is able to change the stream interface to window interface and vice-versa. In addition, multiple input stream ports may be defined, as well as multiple copies of the window output.
These are the templates to configure the Widget API Cast class.
.. rubric:: Parameters:
.. list-table::
:widths: 20 80
*
- TT_DATA
-
describes the type of individual data samples input to and output from the function. This is a typename and must be one of the following:
int16, cint16, int32, cint32, float, cfloat.
*
- TP_IN_API
- defines the input interface type. 0 = Window, 1 = Stream
*
- TP_OUT_API
- defines the output interface type. 0 = Window, 1 = Stream
*
- TP_NUM_INPUTS
- describes the number of input stream interfaces to be processed. When 2 inputs are configured, whe data will be read sequentially from each.
*
- TP_WINDOW_VSIZE
- describes the number of samples in the window API used if either input or output is a window. Note: Margin size should not be included in TP_INPUT_WINDOW_VSIZE.
*
- TP_NUM_OUTPUT_CLONES
- sets the number of output ports to write the input data to. Note that while input data from multiple ports is independent, data out is not.
*
- TP_PATTERN
- sets the interleave or deinterleave pattern for configurations using dual streams, since streams are not considered clones for input nor for output. The patterns supported are: 0 (default) : 128bits are taken from each input, concatenated to 256b and output to window. or one 256b window read is split into upper and lower 128b cunks for output. 1 : kSampleIntlv. One TT_DATA sample is taken from each stream and written to window or vice versa. 2 : kSplit. The window is split into 2 halves with each half going to a stream.
.. ref-code-block:: cpp
:class: overview-code-block
template <
typename TT_DATA,
unsigned int TP_IN_API,
unsigned int TP_OUT_API,
unsigned int TP_NUM_INPUTS,
unsigned int TP_WINDOW_VSIZE,
unsigned int TP_NUM_OUTPUT_CLONES = 1,
unsigned int TP_PATTERN = 0
>
class widget_api_cast_graph: public graph
// fields
port :ref:`in`[TP_NUM_INPUTS]
port