beautypg.com

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

Page 54

background image

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*