Word length of the result after the MACC operation is usually much larger than the word length of the inputs. Rounding can be applied in DSP58 before truncation. As shown in the next section, the sign of the result is needed to obtain the correct rounding. In MACC, however, it can be difficult to determine the sign of the output ahead of time, thus the rounding can cost an extra cycle.
In symmetric rounding, the extra cycle can be avoided by adding the C input on the very first cycle using dynamic OPMODE. In this case, the sign bit of the last but one cycle of the accumulator can be used for the final rounding operation done in the final accumulate cycle. There is a rare chance that the final accumulate operation can flip the sign of the output from the previously accumulated value, leading to a different result from the expected one. In the case of convergent rounding, the patterndetect result can be used. Another solution to avoid the extra cycle is to use an extra DSP58.