Operator FFT

Operator Library: Transformation

Operator FFT performs a forward or reverse one dimensional Fast Fourier transform. The operator accepts complex values at the input and will output complex values. It uses two ports at the input and output. One for the real part and another one for the imaginary part.

By using parameters, the operator can be configured to the number of points i.e. line width. The line width has to match with the number of pixel at the input.

A second parameter defines if the operator performs a forward or reverse transformation.

[Note] Limited Configurations Only

The operator currently can only be used on imaFlex CXP-12 Penta, imaFlex CXP-12 Quad, microEnable 5 ironman and microEnable 5 marathon and LightBridge frame grabbers in specific configuration.

The operator is limited to imaFlex CXP-12 Penta, imaFlex CXP-12 Quad, mE5 ironman and mE5 matathon/LightBridge. In the following the allowed configurations and characteristics are listed.

imaFlex CXP-12 Penta, and imaFlex CXP-12 Quad:

  • Points (image width): {8, 16, 32, 64, 128, 256, 512, 1024, 2048}

  • Parallelism: 1

  • Input bit width: 32

  • Output bit width: 48

mE5 ironman:

  • Points (image width): {8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192}

  • Parallelism: 2

  • Input bit width: 16

  • Output bit width: 32

mE5 marathon / LightBridge:

  • Points (image width): {8, 16, 32, 64, 128, 256, 512, 1024, 2048}

  • Parallelism: 2

  • Input bit width: 32

  • Output bit width: 48

The operator uses the XILINX FFT IP core with following parameterization:

  • Architecture: Pipelined Streaming IO

  • Run Time Configurable Transform Length: yes

  • Data Format: Fixed Point

  • Twiddle Width (Phase Factor Width): 10

  • Scaling Option: Unscaled

  • Rounding Mode: truncation

More information about the FFT algorithm can be found at https://www.xilinx.com/products/intellectual-property/fft.html#overview. imaFlex CXP-12 Penta and imaFlex CXP-12 Quad use Xilinx IP version 9.1. marathon and ironman use Xilinx IP version 8.0.

I/O Properties

Property Value
Operator Type M
Input Links IRe, input real part
IIm, input imaginary part
Output Links ORe, output real part
OIm, output imaginary part

Synchronous and Asynchronous Inputs

  • All inputs are synchronous to each other i.e. they have to be sourced by the same M-type operator through an arbitrary network of O-type operators.

Supported Link Format

Link Parameter Input Link IRe Input Link IIm Output Link ORe Output Link OIm
Bit Width 16 or 32 1 as IRe auto2 as ORe
Arithmetic signed signed signed signed
Parallelism depends on platform3 depends on platform3 depends on platform3 depends on platform3
Kernel Columns 1 1 1 1
Kernel Rows 1 1 1 1
Img Protocol {VALT_IMAGE2D, VALT_LINE1D} as IRe as IRe as IRe
Color Format VAF_GRAY VAF_GRAY VAF_GRAY VAF_GRAY
Color Flavor FL_NONE FL_NONE FL_NONE FL_NONE
Max. Img Width depends on platform4 as IRe as IRe as IRe
Max. Img Height any as IRe as IRe as IRe

1

The input bit width is 16 bit on mE5 ironman and 32 bit in mE5 marathon/LightBridge.

2

The output bit width is 32 bit on mE5 ironman and 64 bit in mE5 marathon/LightBridge.

3

The parallelism is 1 for imaFlex CXP-12 Penta and imaFlex CXP-12 Quad, and 2 for mE5 ironman as well as mE5 marathon/LightBridge.

4

[2^3, 2^13] on mE5 ironman, [2^3, 2^11] on mE5 marathon/LightBridge.

Parameters

TransformationMode
Type dynamic write parameter
Default Forward
Range {Forward, Reverse}

Specify a forward or reverse transform.

LineLength
Type dynamic write parameter
Default Points1024
Range {8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192} on mE5 ironman, {8, 16, 32, 64, 128, 256, 512, 1024, 2048} on mE5 marathon/LightBridge and imaFlex CXP-12 Penta and imaFlex CXP-12 Quad

Specify the number of transformation points i.e. the line length.

Examples of Use

The use of operator FFT is shown in the following examples: