template class xf::dsp::aie::widget::api_cast::widget_api_cast_graph

#include "widget_api_cast_graph.hpp"


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.



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.
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 <input> in[TP_NUM_INPUTS]
port <output> out[TP_NUM_OUTPUT_CLONES]


port <input> in [TP_NUM_INPUTS]

The input data to the function. This input may be stream or window. Data is read from here and written directly to output. When there are multiple input streams, a read from each will occur of the maximum size supported (32 bits) with these 2 being concatenated, before being written to the output(s). Multiple input windows is not supported

port <output> out [TP_NUM_OUTPUT_CLONES]

An API of TT_DATA type.



kernel* getKernels ()

Access function to get pointer to kernel (or first kernel in a chained configuration).


widget_api_cast_graph ()

This is the constructor function for the Widget API Cast graph.