Padding Input Data based on Super Sample Rate and Point Size - Padding Input Data based on Super Sample Rate and Point Size - 2025.2 English

Vitis Libraries

Release Date
2026-02-09
Version
2025.2 English

If the point size is a multiple of SSR, then the inputs can be passed as is to the FFT. Otherwise, every point size number of samples needs to be padded with zeros to the closest multiple of SSR before giving as input to the FFT. The output data also contains Point size number of valid data samples padded to the closest multiple of SSR.

VSS Mode 1 creates a transpose block at its input that is used to rearrange data that arrives in the natural SSR order described in Super Sample Rate into an order needed by the first set of compute units within the VSS. This block uses buffers in the PL to rearrange the data. If the user wants to input data directly in the form needed by the compute units, they can save on memory resources by setting the ADD_FRONT_TRANSPOSE flag to 0. If the front transpose is removed, ensure that the data arriving in each port satisfies the formula:

\[S[PORT\_IDX][SAMP\_IDX] = PORT\_IDX + \left(\left(SAMP\_IDX \bmod D1\right) \times D2\right) + \left\lfloor \frac{SAMP\_IDX}{D1} \right\rfloor \times SSR\]

Where:

  • PORT_IDX ranges from 0 to SSR - 1
  • For perfect square point sizes: D1 = D2 = √(point\_size)
  • For other point sizes:
    • D1 = √(point\_size × 2)
    • D2 = √(point\_size ÷ 2)

Example: Point Size = 512, SSR = 4

  • Stream 0 carries samples:
    • SI_0, SI_16, SI_32, SI_48, …, SI_496, SI_4, SI_20, SI_36, …, SI_500, …
  • Stream 1 carries samples:
    • SI_1, SI_17, SI_33, SI_49, …, SI_497, SI_5, SI_21, SI_37, …, SI_501, …
  • Stream 2 carries samples:
    • SI_2, SI_18, SI_34, SI_50, …, SI_498, SI_6, SI_22, SI_38, …, SI_502, …
  • Stream 3 carries samples:
    • SI_3, SI_19, SI_35, SI_51, …, SI_499, SI_7, SI_23, SI_39, …, SI_503, …

Both VSS Mode 1 and 2 Include a transpose block after all their compute units to rearrange data in a form in the SSR form as described in section Super Sample Rate. This block uses buffers in the PL to rearrange the data. If the user has downstream blocks that can directly accept the data in the form given out by the compute units, they can save on memory resources by setting the ADD_BACK_TRANSPOSE flag to 0. If the back transpose is removed, data arriving in each output port will be different between the 2 VSS modes for the same SSR and point size.

VSS Mode 1 Output Formula

For VSS Mode 1, the samples at the output of the VSS without the back transpose would satisfy the formula:

\[S[PORT\_IDX][SAMP\_IDX] = PORT\_IDX + \left( \left( SAMP\_IDX \bmod D2 \right) \times D1 \right) + \left\lfloor \frac{SAMP\_IDX}{D2} \right\rfloor \times SSR\]

Where:

  • PORT_IDX ranges from 0 to SSR - 1
  • For perfect square point sizes: D1 = D2 = √(point\_size)
  • For other point sizes:
    • D1 = √(point\_size × 2)
    • D2 = √(point\_size ÷ 2)