Super Sample Rate - Decimation polyphases - 2023.1 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.1 English

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

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, we use 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

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 this:

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 this :

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 as 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 see Configuration Notes