user manual

OVERVIEW AND DATA ALU ARCHITECTURE
3 - 6 DATA ARITHMETIC LOGIC UNIT
MOTOROLA
register contents. The registers may also be read back out to the appropriate data bus to
implement memory-delay operations and save/restore operations for interrupt service
routines.
3.2.2 MAC and Logic Unit
The MAC and logic unit shown in Figure 3-3 conduct the main arithmetic processing and
perform all calculations on data operands in the DSP.
For arithmetic instructions, the unit accepts up to three input operands and outputs one
56-bit result in the following form: extension:most significant product:least significant
product (EXT:MSP:LSP). The operation of the MAC unit occurs independently and in par-
allel with XDB and YDB activity, and its registers facilitate buffering for Data ALU inputs
and outputs. Latches on the MAC unit input permit writing an input register which is the
source for a Data ALU operation in the same instruction.
The arithmetic unit contains a multiplier and two accumulators. The input to the multiplier
can only come from the X or Y registers (X1, X0, Y1, Y0). The multiplier executes 24-bit
x 24-bit, parallel, twos-complement fractional multiplies. The 48-bit product is right justi-
fied and added to the 56-bit contents of either the A or B accumulator. The 56-bit sum is
stored back in the same accumulator (see Figure 3-3). An 8-bit adder, which acts as an
extension accumulator for the MAC array, accommodates overflow of up to 256 and al-
lows the two 56-bit accumulators to be added to and subtracted from each other. The
extension adder output is the EXT portion of the MAC unit output. This multiply/accumu-
late operation is not pipelined, but is a single-cycle operation. If the instruction specifies a
multiply without accumulation (MPY), the MAC clears the accumulator and then adds the
contents to the product.
In summary, the results of all arithmetic instructions are valid (sign-extended and zero-
filled) 56-bit operands in the form of EXT:MSP:LSP (A2:A1:A0 or B2:B1:B0). When a 56-
bit result is to be stored as a 24-bit operand, the LSP can be simply truncated, or it can be
rounded (using convergent rounding) into the MSP.
Convergent rounding (round-to-nearest) is performed when the instruction (for example,
the signed multiply-accumulate and round (MACR) instruction) specifies adding the mul-
tiplier’s product to the contents of the accumulator. The scaling mode bits in the status
register specify which bit in the accumulator shall be rounded.
The logic unit performs the logical operations AND, OR, EOR, and NOT on Data ALU reg-
isters. It is 24 bits wide and operates on data in the MSP portion of the accumulator. The
LSP and EXT portions of the accumulator are not affected.