SPRZ342O January 2011 – April 2021 TMS320F28062 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28063 , TMS320F28064 , TMS320F28065 , TMS320F28066 , TMS320F28066-Q1 , TMS320F28067 , TMS320F28067-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069 , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1
VCU: Overflow Flags Not Set Properly
0
The instructions listed in Table 5-1 do not set the VSTATUS OVFR and OVFI flags for the expected conditions. For instructions not listed in Table 5-1, the OVFR and OVFI flags are set as described in the Viterbi, Complex Math and CRC Unit (VCU) chapter of the TMS320x2806x Real-Time Microcontrollers Technical Reference Manual.
INSTRUCTIONS | DESCRIPTION | COMMENTS |
---|---|---|
|
32-bit complex addition |
Expected behavior: OVFI and OVFR should be set if the final result overflows 32 bits. Actual behavior: If the shift-right operation (before the addition) overflows 16 bits, then OVFI or OVR is set. If the imaginary-part addition overflows 16 bits, OVFI is set.(1) |
|
16 + 32 =
16-bit complex addition |
Expected behavior: OVFI and OVFR should be set if the final 16-bit result overflows. Actual behavior: OVFR and OVFI are only set if the intermediate 32-bit calculation overflows. If only the final 16-bit result overflows, then OVFR and OVFI are not set. |
|
16 + 32 =
16-bit complex subtraction |
Algorithms using these instructions should not rely on the state of the OVFR and OVFI flags to determine if overflow has occurred. Algorithms should use techniques, such as scaling, to avoid overflow. This erratum does not affect the behavior of saturation when performed by these instructions. If saturation is enabled, results that overflow will still be properly saturated.
This issue has been fixed on the Revision A silicon.