Академический Документы
Профессиональный Документы
Культура Документы
Location : Home >> Technology Notes >> ASIC Design for Signal Processing
Site Map
Home Booth Recoding
Web Notes
Tech Notes
Research [Last modified 11:11:58 PM on Tuesday, 27 July 2010]
Photos Booth multiplication is a technique that allows for smaller, faster
multiplication circuits, by recoding the numbers that are multiplied.
Introduction It is the standard technique used in chip design, and provides
Motivation significant improvements over the "long multiplication" technique.
An ASIC Design
For Signal Processing
Aims of the project
Scope of the project Shift and Add
Results
Digital Design
A standard approach that might be taken by a novice to perform
Design Process multiplication is to "shift and add", or normal "long multiplication".
FPGAs That is, for each column in the multiplier, shift the multiplicand the
ASICs appropriate number of columns and multiply it by the value of the
digit in that column of the multiplier, to obtain a partial product. The
Carry-Save partial products are then added to obtain the final result:.
3:2 Compressors
4:2 Compressors
0 0 1 0 1 1
0 1 0 0 1 1
Booth
0 0 1 0 1 1
Shift & Add 0 0 1 0 1 1
Recoding 0 0 0 0 0 0
Sign Extension Tricks 0 0 0 0 0 0
0 0 1 0 1 1
Multipliers 0 0 1 1 0 1 0 0 0 1
Beating the Optimal
Coding Style
Alternatives With this system, the number of partial products is exactly the
number of columns in the multiplier.
...Complex
Main Design
Alteratives
Reducing the Number of Partial Products
Links, Errata
http://www.geoffknagge.com/fyp/booth.shtml 1/4
11/28/2017 ASIC Design for Signal Processing
This is the same result as the equivalent shift and add method:
Contact
Acknowledgements
Download
Errata
Sites of Interest Partial Product 0 = Multiplicand * 1, shifted left 0 bits (x 1)
Reference Links Partial Product 1 = Multiplicand * 1, shifted left 1 bits (x 2)
Partial Product 2 = Multiplicand * 1, shifted left 2 bits (x 4)
Partial Product 3 = Multiplicand * 0, shifted left 3 bits (x 0)
Figure 1 : Grouping of bits from the multiplier term, for use in Booth recoding.
The least significant block uses only two bits of the multiplier, and assumes a
zero for the third bit.
111 0
Table 1 : Booth recoding strategy for each of the possible block values.
Since we use the LSB of each block to know what the sign bit was
in the previous block, and there are never any negative products
before the least significant block, the LSB of the first block is always
assumed to be 0. Hence, we would recode our example of 7 (binary
0111) as :
0 1 1 1
block 0 : 1 1 0 Encoding : * (-1)
block 1 : 0 1 1 Encoding : * (2)
In the case where there are not enough bits to obtain a MSB of the
last block, as below, we sign extend the multiplier by one bit.
0 0 1 1 1
block 0 : 1 1 0 Encoding : * (-1)
block 1 : 0 1 1 Encoding : * (2)
block 2 : 0 0 0 Encoding : * (0)
0 0 1 0 1 1 , multiplicand
0 1 0 0 1 1 , multiplier
1 1 -1 , booth encoding of multiplier
1 1 1 1 1 1 0 1 0 0 , negative term sign extended
0 0 1 0 1 1
0 0 1 0 1 1
0 0 0 0 1 , error correction for negation
0 0 1 1 0 1 0 0 0 1 , discarding the carried high bit
In figure 2,
The zero signal indicates whether the multiplicand is zeroed
before being used as a partial product
The shift signal is used as the control to a 2:1 multiplexer, to
select whether or not the partial product bits are shifted left
one position.
http://www.geoffknagge.com/fyp/booth.shtml 3/4
11/28/2017 ASIC Design for Signal Processing
0 1 0 1 0 1 1 (additional "1"s)
0 0 1 0 0
1 1 0 1 1
1 1 0 1 1
0 0 0 0 1 , error correction for negation
0 0 1 1 0 1 0 0 0 1
References
Weste, Neil H.E. and Eshraghian, Kamran, Principles of CMOS VLSI
Design: A systems perspective, Addison-Wesley Publishing Company,
2nd ed., 1993, pp547-555.
http://www.geoffknagge.com/fyp/booth.shtml 4/4