complex_mixer.rcc HDL Worker

Detail

The HDL worker leverages Xilinx Vivado IP cores to implment the NCO (DDS Compiler) and complex multiply (Complex Multiplier) function. The make files in this worker generated the cores dependent on the version of Vivado installed and part you are building for.

The RCC worker leverages liquid-dsp v1.2 and its nco class to generate the internal NCO used in the algorithm. More information on this liquid-dsp module can be seen in the online documentation: liquid-dsp. In the RCC version of this component the samples are converted from fixed point to floating point numbers in order to do that math on a GPP. This conversion introduces a small amount of error in the output data and should be accounted for when it is used in an application. The conversion equations are as follows:

(15)\[iq\_float = \frac { iq\_fixed } { 2^{15} -1 }\]
(16)\[iq\_fixed = iq\_float * ( 2^{15} -1 )\]

In the RCC worker a conversion needs to be done for the phase increment to adhere to the way the HDL phase increment is implemented. The conversion was done in the RCC version of this component because the division operation is very resource intensive in HDL. The conversion from the component property to the liquid-dsp interface input property is as follows:

(17)\[liquid\_phs\_inc = phs\_inc * \frac{2\pi} {0x7FFF * 2}\]

Worker Properties

  • ocpi_buffer_size_out

    • Type: ushort

    • Access:

      • Parameter: False

      • Writable: False

      • Initial: True

      • Volatile: False

      • Read back: False

    • Default value: 0

Worker Ports

    Inputs:

  • in

    • Protocol: iqstream

    • Optional: False

  • Outputs:

  • out

    • Protocol: iqstream

    • Optional: False