Super Sample Rate - Decimation Polyphases - 2024.1 English - XD160

Vitis Libraries

Document ID
XD160
Release Date
2024-10-16
Version
2024.1 English

In addition to the methods described above, FIR can decompose the decimation process into multiple polyphases using the TP_PARA_DECI_POLY template parameter.

The effect of TP_PARA_DECI_POLY is to remove the bottleneck posed by the input bandwidth on the overall throughput of the FIR filter.
In decimators, every DECIMATE_FACTOR number of inputs produce one more output. So, when the input streams are utilized at their maximum bandwidth, the output stream can only be utilized at 1/DECIMATE_FACTOR of their maximum bandwidth. With TP_PARA_DECI_POLY > 1, use the TP_PARA_DECI_POLY number of input phases to provide extra input stream bandwidth.
The input data stream is split into TP_PARA_DECI_POLY input data phases. Outputs from these input phases are then added together to produce the overall filter’s output.

Note

The total number of input phases will be the result of multiplication of: NUM_INPUT_PORTS  = TP_PARA_DECI_POLY x TP_SSR.

For example, when TP_SSR = 1, and TP_PARA_DECI_POLY = 3, the input stream would look like:

in[0] = i0, i3, i6, i9, ...
in[1] = i1, i4, i7, i10, ...
in[2] = i2, i5, i8, i11, ...

The output stream would have SSR output paths and look like:

out[0] = o0, o1, o2, o3, o4, ...

For TP_SSR = 1, TP_PARA_DECI_POLY = 4, the input stream would look like:

in[0] = i0, i4, i8, ...
in[1] = i1, i5, i9, ...
in[2] = i2, i6, i10, ...
in[3] = i3, i7, i11, ...

The output stream would look the same as in the previous configuration because TP_PARA_DECI_POLY only affects the number of input streams.

When TP_SSR = 2, TP_PARA_DECI_POLY = 3, the input stream would look like:

in[0] = i0, i6, i12, i18, i24, ...
in[1] = i1, i7, i13, i19, i25, ...
in[2] = i2, i8, i14, i20, i26, ...
in[3] = i3, i9, i15, i21, i27, ...
in[4] = i4, i10, i16, i22, i28, ...
in[5] = i5, i11, i17, i23, i29, ...

the output stream would look like:

out[0] = o0, o2, o4, o6, o8, o10, ...
out[1] = o1, o3, o5, o7, o9, o11, ...

For more details about how to configure the various parameters to meet various performance metrics, refer to Configuration Notes