Convergent rounding (no scaling) -22 – Freescale Semiconductor StarCore SC140 User Manual
Page 54

2-22
SC140 DSP Core Reference Manual
DALU
Figure 2-5 shows the four cases for rounding a number in the Dn.h register. If scaling is set in the SR, the
rounding position is updated to reflect the alignment of the result when it is put on the data bus. However,
the contents of the register are not scaled.
Figure 2-5. Convergent Rounding (No Scaling)
Case I
: If D0.l < $8000 (1/2), then round down (add nothing)
Before Rounding
After Rounding
Case II
: If D0.l > $8000 (1/2), then round up (add 1 to D0.h)
Case III
: If D0.l = $8000 (1/2), and the LSB of D0.h= 0, then round down (add nothing)
Case IV
: If D0.l = $8000 (1/2), and the LSB of Do.h = 1, then round up (add 1 to D0.h)
*D0.l is always clear, performed during RND, MPYR, and MACR.
X X . . X X X X X . . . X X X 0 1 0 0 0 1 1 X X X . . . . X X X
39
32 31
16 15
0
D0.e
D0.h
D0.l
0
X X . . X X X X X . . . X X X 0 1 0 0 0 0 0 . . . . . . . . . 0 0 0
39
32 31
16 15
0
D0.e
D0.h
D0.l*
Before Rounding
After Rounding
X X . . X X X X X . . . X X X 0 1 0 0 1 1 1 0 X X . . . . X X X
39
32 31
16 15
0
D0.e
D0.h
D0.l
1
X X . . X X X X X . . . X X X 0 1 0 1 0 0 0 . . . . . . . . . 0 0 0
39
32 31
16 15
0
D0.e
D0.h
D0.l*
Before Rounding
After Rounding
X X . . X X X X X . . . X X X 0 1 0 0 1 0 0 0 . . . . . . . . 0 0 0
39
32 31
16 15
0
D0.e
D0.h
D0.l
0
X X . . X X X X X . . . X X X 0 1 0 0 0 0 0 . . . . . . . . . 0 0 0
39
32 31
16 15
0
D0.e
D0.h
D0.l*
Before Rounding
After Rounding
X X . . X X X X X . . . X X X 0 1 0 1 1 0 0 0 . . . . . . . . 0 0 0
39
32 31
16 15
0
D0.e
D0.h
D0.l
1
X X . . X X X X X . . . X X X 0 1 1 0 0 0 0 . . . . . . . . . 0 0 0
39
32 31
16 15
0
D0.e
D0.h
D0.l*