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

no-image

ST20-C1

Manufacturer Part Number
ST20-C1
Description
Instruction Set Reference Manual
Manufacturer
STMICROELECTRONICS [STMicroelectronics]
Datasheet
5.5
Both biquad and smacloop operate on arrays of 16-bit values, packed two per word.
This allows the ST20-C1 to read two values per cycle from memory which is funda-
mental to the high performance of the multiply-accumulate instructions. In all cases,
data values must be half-word aligned.
5.6
The biquad and smacloop operations are performed with an oversize accumulator of
48 bits. The accumulator value is always sign-extended to the full width of the accu-
mulator.
During a multiply-accumulate sequence the value in the accumulator may temporarily
go outside the representable range of the final result, but can never overflow the accu-
mulator for a single biquad or smacloop .
5.6.1
The user-visible accumulator is either in LongMode (Q31) or ShortMode (Q15). For
smacloop , the mode is defined b y the mac_mode status register field. biquad only
supports ShortMode .
Pre-scaling converts the user-visible accumulator to an internal format accumulator,
as shown in Figure 5.2. The inverse operation is post-scaling which is converting an
Input
Q15
Shifts
Data vectors
Scaling
Accumulator scaling
Z -1
Z
Figure 5.1 ST20-C1 biquad instruction example: Q15 = Q15 Q14
-1
c[2
c[1]
c[0]
Coefficients: 0, L4, L8, L9
]
Q14
x[2]
x[1]
x[0]
Q14
Q14
<< 9
<< 9
<< 9
<< 22
>> 23
<< 9
<< 9
Accumulator: R23
y[2]
y[1]
Q14
Q14
y[0]
1
5 Multiply accumulate
c[4]
c[3]
Z -1
Z
Output
-1
Q15
59/205

Related parts for ST20-C1