Versal ACAP DSP Engine Architecture Manual (AM004)

Document ID
Release Date
1.2.1 English

The carry out from each DSP58 can be sent to the logic resources using the CARRYOUT port. This port is 4 bits wide. CARRYOUT[3] is the valid carry output for a two-input 58-bit adder/subtracter or one-input accumulator. In this case, USE_SIMD = ONE58 is the default setting and represents a non-SIMD configuration. When a two-input adder/subtracter or one-input accumulator is used in SIMD mode, such as TWO24 or FOUR12, the valid CARRYOUT signals are listed in the following table. The CARRYOUT signals are not valid if three-input (or four-input) adder/subtracter (for example, A:B + C + PCIN) or two-input (or three-input) accumulator (for example, A:B + C + P) configurations are used or if the multiplier is used.

Table 1. CARRYOUT Bit Associated with Different SIMD Modes
SIMD Mode Adder Bit Width Corresponding CARRYOUT
FOUR12 P[11:0] CARRYOUT[0]
P[23:12] CARRYOUT[1]
P[35:24] CARRYOUT[2]
P[47:36] CARRYOUT[3]
TWO24 P[23:0] CARRYOUT[1]
P[47:24] CARRYOUT[3]
ONE58 P[57:0] CARRYOUT[3]

The CARRYOUT signal is cascaded to the next adjacent DSP58 using the CARRYCASCOUT port. Larger add, subtract, ACC, and MACC functions can be implemented in the DSP58 using the CARRYCASCOUT output. The 1-bit CARRYCASCOUT signal corresponds to CARRYOUT[3], but is not identical. The CARRYCASCOUT signal is also fed back into the same DSP58 through the CARRYINSEL multiplexer.

The CARRYOUT[3] signal should be ignored when the multiplier or a 3-input (or 4-input) add/subtract operation is used. Because a MACC operation includes a three-input adder in the accumulator stage (feedback from the P output and two partial products from the multiplier output), the combination of MULTSIGNOUT and CARRYCASCOUT signals is required to perform a 116-bit MACC, spanning two DSP58s. The second DSP58’s OPMODE must be set to MACC_EXTEND (001001000) to use both CARRYCASCOUT and MULTSIGNOUT, thereby eliminating the ternary adder carry restriction for the upper DSP58.