In addition to the methods described above, FIR can decompose the decimation process into multiple polyphases using template parameter: TP_PARA_DECI_POLY
.
TP_PARA_DECI_POLY
is to remove the bottleneck posed by the input bandwidth on the overall throughput of the FIR filter.TP_PARA_DECI_POLY > 1
, we use TP_PARA_DECI_POLY number of input phases to provide extra input stream bandwidth.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