ST20-C1 STMICROELECTRONICS [STMicroelectronics], ST20-C1 Datasheet - Page 56

no-image

ST20-C1

Manufacturer Part Number
ST20-C1
Description
Instruction Set Reference Manual
Manufacturer
STMICROELECTRONICS [STMicroelectronics]
Datasheet
5.1 Data formats
5
This section describes the multiply-accumulate instructions and their use. All these
instructions are described in the context of their intended use. Instructions for general
use (arithmetic, loading, storing etc.) are described in Chapter 4. Instructions for
exceptions are described in Chapter 6 and multi-tasking instructions are described in
Chapter 7. The architecture of the ST20-C1, including the registers and memory
arrangement, is described in Chapter 3.
Multiply accumulate operations are provided by the signal processing instructions
listed in Table 5.1.
5.1
A signed fractional number of N bits is described as x.y , where x + y = N . This means the
number is made up from x bits before the binary point, an implied binary point, and y
fractional bits. More details of the data formats are given in section 5.7.
5.2
mac and umac are general purpose multiply accumulate instructions, multiplying two
32-bit values and adding them to a 32-bit unsigned initial accumulator, giving a 64-bit
accumulator. mac treats the multiplicands as signed and umac treats them as
unsigned. Initially Areg and Breg hold the values to be multiplied and Creg holds the
initial accumulator. On completion, Areg is the least significant word of the result
accumulator, Breg the most significant and Creg holds a copy of the initial Areg.
5.3
The smacloop instruction performs a multiply-accumulate operation on two vectors of
16-bit values held in memory. It takes an initial accumulator value and two pointers,
one to each of two data vectors.
56/205
Multiply accumulate
Data formats
mac and umac
Short multiply accumulate loop
The X vector of data values is normally considered to reside within a circular
buffer of programmable size, but this can be turned off. When data fetches
reach the end of this buffer, the pointer wraps-around back to the start of the
buffer and continues. The X vector must be word aligned.
The Y vector of coefficients is always in a flat address space , and never wraps
around. The Y vector must be half-word aligned.
mac
umac
smacinit
smacloop
biquad
Mnemonic
Table 5.1 Multiply accumulate instructions
multiply accumulate
unsigned multiply accumulate
initialize short multiply accumulate loop
short multiply accumulate loop
biquad IIR filter step
Name

Related parts for ST20-C1