Digital Signal Processing Reference
In-Depth Information
(a)
0 010
1 101
Negative Number
1 1 1 1
111
1
1001
0
Correction
Vector
11
000
0
11
0
01
0
10
0
10
1
(b)
0 0 1 0
1 1 0 1
1
1
0
1
0
Correction Vector
1
0 0
0 X
1 0
1 0
X
X
0 1
0
1
X
X
X
1
11
1
01
0
Figure 5.45 Multiplying two numbers, 0011 and 1101
Hardware implementation of a signed by signed multiplication using the sign-extension
elimination technique saves area and thus is very effective.
5.9.3 String Property
So far we have represented numbers in two's complement form, where each bit is either a 0 or 1.
There are, of course, other ways to represent numbers. A few of these are effective for hardware
design for signal processing systems. Canonic signed digit (CSD) is one such format [19-21]. In
CSD, a digit can be a 1, 0 or 1. The representation restricts the occurrence of two consecutive
non-zeros in the number, so it results in a unique representation with minimum number of non-
zero digits.
The CSD of a number can be computed using the string property of numbers. This property, while
moving from LSB to MSB, successively observes strings of 1s and replaces each string with an
equivalent value, using 1, 0 or
1. Consider the number 7 . This can be written as 8
1, or in CSD
representation:
1001
0111
¼
1000
1
¼
The bit with a bar over has negativeweight and the others have positiveweights. Similarly, 31 can
be written as 32
1, or in CSD representation:
 
Search WWH ::




Custom Search