You are on page 1of 4

Wallace Tree Multiplier (Part 2)

Multplication:

The multiplier implementation involves three steps as shown in Fig.5. They are Partial-Product
generator, Wallace Tree structure and ordinary adder. The multiplication operation is explained in the
example given below using Wallace Tree method of calculation. Multiply two 6-bit numbers (111001
and 110101) using Wallace Tree method.

A B

Partial Product
Generator

Wallace Tree
Structure

S C

Ordinary Adder

Multiplier
output

Fig.5: Multplier Implementation – Block Diagram


1 1 10 00 0 0 1 1 0 0 0
1 0 0 0 0 0111 0 10 1 0 1 1 1 1 0 00 0
0 0 1
1 1 0 0110100010 100 01 1 0 0 1
1
0 1 0 0 00
Partial Product Generation: 1 0 1 1 0

1 1 1 0 0 1
1 0 1
110101
1 1 1 0 0 1 (PP0) – Partial Product number
0 0 0 0 0 0 (PP1)
1 1 1 0 0 1 (PP2)
0 0 0 0 0 0 (PP3)
1 1 1 0 0 1 (PP4)
111001 (PP5)
1 0 1 1 1 1 0 0 1 1 0 1 (Sum)

Wallace Tree Implementation:


CSA00 CSA01

FA
PP0: 1 PRE_HA PP3: 0
PP1: 0 PRE_NA PP4: 1
PP2: 1 POST_H PP5: 1
A
S00: 1 1 0 1 1 1 0 1 S01: 1 0 0 1 0 1 1 0
C00: 0 1 0 0 0 0 C01: 1 1 0 0 0 0
POST_NA
CSA1
0 S00:
- No Adder
C00:
S01: - Half Adder
CSA20 S10:
C10: - Fu l Adder
C01:
Adder S02: 0 1 1 1 0 0 0 1 1 0 1
C02: 1 0 0 0 0 1 0 0
Sum: 1 0 1 1 1 1 0 0 1 1 0 1 (Ordinary Addition)

PP0 PP1 PP2 PP3 PP4 PP


5

CSA CSA
S00 C00 S01 C01

CSA
S10 C10

CSA
S20 C20 Fig.6: Wallace Tree Method
CSA SU
M
The first step of mutliplication generates the set of numbers those need to be added. Those generated
numbers are called Partial Product (PP). In the above example, the partial products are represented as
PP0, PP1, PP2, PP3, PP4 and PP5.

The second step involves the addition of the partial products which can be achieved using Wallace Tree
method as shown in Fig.6. The CSA used for multiplication (multiplier CSA) requires a small
modification than that of the ordinary CSA explained in previous part or section. The ordinary CSA
uses full-adders only. From the above example, it is clear that it is not efficient to use only full adders
for the multiplier CSA because, in some cases, no adder is required and, in some other cases, half adder
is enough to carry out the operation. Thus, the mutliplier CSA can be implemented using half adders
and full adders. Consider the above example that implements carry-save addition. The columns shaded
with blue do not require any addition because it involves one binary digit only. The columns shaded
with yellow add two binary digits and this addition can be achieved from half adders. The columns
shaded with red need full adders to add three binary digits. Thus, the multiplier CSA verilog model has
to incorporate the above-mentioned details and it is given below:

You might also like