FFTOneStage

#include "roccc-library.h"

void FFTOneStage(int real0_in, int imag0_in,
		            int real1_in, int imag1_in,
		            int real2_in, int imag2_in,
		            int real3_in, int imag3_in,
		            int real4_in, int imag4_in,
		            int real5_in, int imag5_in,
		            int real6_in, int imag6_in,
		            int real7_in, int imag7_in,
		            int realOmega_in, int imagOmega_in,
		            int& x0Real_out, int& x0Imag_out,
		            int& x1Real_out, int& x1Imag_out,
		            int& x2Real_out, int& x2Imag_out,
		            int& x3Real_out, int& x3Imag_out,
		            int& x4Real_out, int& x4Imag_out,
		            int& x5Real_out, int& x5Imag_out,
		            int& x6Real_out, int& x6Imag_out,
		            int& x7Real_out, int& x7Imag_out)
{

    // There are four butterfly operations per stage.
    FFT(real0_in, imag0_in,
          real1_in,  imag1_in,
          realOmega_in, imagOmega_in,
          x0Real_out,  x0Imag_out,
          x1Real_out,  x1Imag_out);

    FFT(real2_in, imag2_in,
          real3_in, imag3_in,
          realOmega_in, imagOmega_in,
          x2Real_out, x2Imag_out,
          x3Real_out,  x3Imag_out);

    FFT(real4_in, imag4_in,
          real5_in, imag5_in,
          realOmega_in,  imagOmega_in,
          x4Real_out, x4Imag_out,
          x5Real_out, x5Imag_out);

    FFT(real6_in, imag6_in,
          real7_in, imag7_in,
          realOmega_in, imagOmega_in,
          x6Real_out, x6Imag_out,
          x7Real_out, x7Imag_out);
}

Description

The C code for the FFTOneStage is shown above. To be able to use a module, the module must first exist in the database, either through importing or compilation. To instantiate a module, simply double click the desired module call in the IP Cores view in the ROCCC GUI and it will automatically place the a skeleton module call in the C code. ROCCC will instantiate these module calls in the VHDL and hook up all the signals correctly.