.. index:: pair: class; xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph: template class xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph ============================================================== .. toctree:: :hidden: .. code-block:: cpp :class: overview-code-block #include "dds_mixer_graph.hpp" Overview ~~~~~~~~ :ref:`dds_mixer ` operates in 3 modes: **Mixer Mode 0:** This is dds mode only. The library element has a single output window, which is written to with the sin/cos components corresponding to the programmed phase increment. **Mixer Mode 1:** This is dds plus mixer for a single data input port. Each data input sample is complex multiplied with the corresponding dds sample, to create a modulated signal that is written to the output window. **Mixer Mode 2:** This is a special configuration for symmetrical carriers and two data input ports. Each data sample of the first input is complex multiplied with the corresponding dds sample to create a modulated signal. These are the templates to configure the :ref:`dds_mixer ` class. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - TT_DATA - describes the type of individual data samples input to and output from the :ref:`dds_mixer ` function. This is a typename and must be one of the following: cint16, cint32, cfloat. Note that for cint32, the internal DDS still works to int16 precision, so Mixer Mode 0 will be cast, though for Modes 1 and 2, data to be mixed will be cint32. * - TP_INPUT_WINDOW_VSIZE - describes the number of samples in the input/output window API or number of samples to process per iteration. * - TP_MIXER_MODE - describes the mode of operation of the :ref:`dds_mixer ` . The values supported are: 0 (dds only mode), 1 (dds plus single data channel mixer), 2 (dds plus two data channel mixer for symmetrical carriers) * - TP_API - specifies if the input/output interface should be window-based or stream-based. The values supported are 0 (window API) or 1 (stream API). * - TP_SSR - specifies the super sample rate, ie how much data input/output in parallel for a single channel. There will be a TP_SSR number of kernels, with a TP_SSR number of each port used on the interface. A default value of 1 corresponds to the typical single kernel case. .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1a58b4c246c31f16d415d133cc211d1cc0: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::inporttype: .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1ae3d03a323f37dfa70b681de16a7a602f: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::outporttype: .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1ad8af5d5c1c70e6ebfa7605d25e6ce766: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::portarray: .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1ae3a41d4579da442a152dd4f487d69c75: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::kernelclass: .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1adab191c8b3f053948b53c355982e9ad5: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::in2: .. ref-code-block:: cpp :class: overview-code-block template < typename TT_DATA, unsigned int TP_INPUT_WINDOW_VSIZE, unsigned int TP_MIXER_MODE, unsigned int TP_API = IO_API::WINDOW, unsigned int TP_SSR = 1 > class dds_mixer_graph: public graph // typedefs typedef typename std::conditional < (TP_API==IO_API::WINDOW), window , stream>::type inPortType typedef :ref:`inPortType` outPortType typedef std::array , TP_SSR> portArray typedef dds_mixer kernelClass // fields :ref:`portArray` :ref:`in1` :ref:`portArray` in2 :ref:`portArray` :ref:`out` kernel :ref:`m_ddsKernel`[TP_SSR] Fields ------ .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1a4062120454e4de93045fce79f75e46b1: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::in1: .. ref-code-block:: cpp :class: title-code-block :ref:`portArray` in1 The input data to the function. When in TP_API=WINDOW, the port is a window of samples of TT_DATA type. The number of samples in the window is described by TP_INPUT_WINDOW_VSIZE. .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1a024852c6a931fc5361982fe7398d9ef3: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::out: .. ref-code-block:: cpp :class: title-code-block :ref:`portArray` out An output port of TT_DATA type. When in TP_API=WINDOW, the port is a window of TP_INPUT_WINDOW_VSIZE samples. .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1a1160ea872ab855a267d812936aa18677: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::m_ddskernel: .. ref-code-block:: cpp :class: title-code-block kernel m_ddsKernel [TP_SSR] kernel instance used to set constraints - getKernels function returns a pointer to this. Methods ~~~~~~~ .. FunctionSection .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1a776fe2900bf47fddc80790eda1ea95d0: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::getkernels: getKernels ---------- .. ref-code-block:: cpp :class: title-code-block kernel* getKernels () Access function for getting kernel - useful for setting runtime ratio, location constraints, fifo_depth (for stream), etc. .. _doxid-classxf_1_1dsp_1_1aie_1_1mixer_1_1dds__mixer_1_1dds__mixer__graph_1a0b73a12dfb006b864bbaf11fb7bfbcc1: .. _cid-xf::dsp::aie::mixer::dds_mixer::dds_mixer_graph::dds_mixer_graph: dds_mixer_graph --------------- .. ref-code-block:: cpp :class: title-code-block dds_mixer_graph ( const uint32_t phaseInc, const uint32_t initialPhaseOffset = 0 ) This is the constructor function for the :ref:`dds_mixer ` graph. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - phaseInc - specifies the phase increment between samples. Input value 2^31 corresponds to Pi (i.e. 180'). * - initialPhaseOffset - specifies the initial value of the phase accumulator, creating a phase offset. Input value 2^31 corresponds to Pi (i.e. 180').