SPRUJ28E November 2021 – September 2024 AM68 , AM68A , TDA4AL-Q1 , TDA4VE-Q1 , TDA4VL-Q1
Figure 6-46 shows the polyphase filter phase calculation logic.
Each polyphase filter includes an accumulator (16b unsigned with 12b fractional bits) to support both the integer and fractional rate decimation filtering. ACC_INIT parameter, defined in VPAC_MSC_CORE_ACC_INIT_j registers for both for vertical and horizontal fitelring, is used to initialize the initial phase of the filter. FIRINC parameter, defined in VPAC_MSC_CORE_FIRINC_j registers for both for vertical and horizontal fitelring, is used to increment the accumulator after each valid output. The ACCUM, see Figure 6-155, is also decremented by 4096 (equivalent to 1 input sample period) after each valid input line/pixel.
The output of the filter is valid when the integer part of the ACCUM (bits[16-12]) is equal to 0 (meaning the center filter tap has the correct input data). Otherwise, the output of the filter is invalid and no data is written to the SL2 memory.
The fractional part is used to determine which coefficient phase to use. For 64-bit phase mode, COEF_PHASE_SELECT = ACCUM[11-6]. For 32-bit phase mode, COEF_PHASE_SELECT = ACCUM[11-7]. Additional fractional bits are included to minimize the input phase error.
NXT_COEF_SEL is used to pre-fetch the next coefficient from the table in order minimize the critical path delay (particularly for horizontal scaler in which coefficients change on every cycle).