DSP Builder for Intel® FPGAs (Advanced Blockset): Handbook

ID 683337
Date 12/04/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

12.3.1. Bit Reverse Core C (BitReverseCoreC and VariableBitReverse)

The BitReverseCoreC block performs buffering and bit reversal of incoming FFT frames. Refer also to the MultiwireVariableBitReverse block.

A single synthesis time parameter specifies the length N of the fast Fourier transform.

The bit reversal that this block applies is appropriate only for transform sizes that are an integer power of two. The block is single-buffered to support full streaming operation with minimal overhead.

The VariableBitReverse block performs buffering and bit-reversal of variable-sized FFT frames for designs with a VFFT or VFFT_Float block. A single synthesis-time parameter N specifies the length 2N of the largest frame that the block handles. The VariableBitReverse block has an additional input: size, which specifies the length 2size of the current frame.

To reconfigure the VariableBitReverse block between frames, observe the following rules:

  • Ensure the size input is always in the range 0 <= size <= N.
  • Keep the size input constant while the VariableBitReverse block is processing a frame.
  • When you reconfigure the VariableBitReverse, you must completely flush the VariableBitReverse block before changing the value of the size input. You must wait at least 2oldSize (where oldSize is the previous value of the size input) cycles before providing valid input to the VFFT.
    Table 65.  Parameters for the BitReverseCoreC Block
    Parameter Description
    FFT Size Specifies the size of the FFT.
    Table 66.  Parameters for the VariableBitReverse Block
    Parameter Description
    N Logarithm of the maximum frame size.
    Table 67.  Port Interface for the BitReverseCoreC Block
    Signal Direction Type Description
    v Input Boolean Valid input signal.
    c Input Unsigned 8-bit integer Channel input signal.
    size Input Unsigned integer Logarithm of the current input frame size. VariableBitReverse only.
    x Input Any complex fixed-point (BitReverseCoreC); any (VariableBitReverse) Complex data input signal.
    qv Output Boolean Valid output signal.
    qsize Output Unsigned integer Logarithm of the current output frame size. VariableBitReverse only.
    qc Output Unsigned 8-bit integer Channel output signal.
    q Output Any Complex data output signal.