Professional Documents
Culture Documents
INTRODUCTION
1.0.
INTRODUCTION:
MAC unit is an inevitable component in many digital signal processing (DSP)
applications involving multiplications and/or accumulations. MAC unit is used for high
performance digital signal processing systems. The DSP applications include filtering,
convolution, and inner products.
Most of digital signal processing methods use nonlinear functions such as discrete cosine
transform (DCT) or discrete wavelet transforms (DWT). Because they are basically
accomplished by repetitive application of multiplication and addition, the speed of the
multiplication and addition arithmetic determines the execution speed and performance of the
entire calculation.
Multiplication-and-accumulate operations are typical for digital filters. Therefore, the
functionality of the MAC unit enables high-speed filtering and other processing typical for DSP
applications. Since the MAC unit operates completely independent of the CPU, it can process
data separately and thereby reduce CPU load. The application like optical communication
systems which is based on DSP , require extremely fast processing of huge amount of digital
data. The Fast Fourier Transform (FFT) also requires addition and multiplication. 64 bit can
handle larger bits and have more memory.
A MAC unit consists of a multiplier and an accumulator containing the sum of the
previous successive products. The MAC inputs are obtained from the memory location and given
to the multiplier block. The design consists of 64 bit modified Wallace multiplier, 128 bit carry
save adder and a register.
1.1.LITERATURE SURVEY:
New multiplier design is proposed which reduces the number of partial products by
25%. This multiplier has been used with different adders available in literature to implement multiplier
accumulator (MAC) unit and parameters such as propagation delay, power consumed and area occupied
have been compared in each case.
From the results, Kogg tone adder has been chosen as it provided optimum values of delay and
power dissipation. Later, the results obtained have been compared with that of other multipliers and it has
been observed that the proposed multiplier has the lowest propagation delay when compared with Array
and Booth multipliers.
1.2.MAC OPERATION:
The Multiplier-Accumulator (MAC) operation is the key operation not only in DSP
applications but also in multimedia information processing and various other applications. As
mentioned above, MAC unit consist of multiplier, adder and register/accumulator. In this paper,
we used 64 bit modified Wallace multiplier. The MAC inputs are obtained from the memory
location and given to the multiplier block. This will be useful in 64 bit digital signal processor.
The input which is being fed from the memory location is 64 bit. When the input is given
to the multiplier it starts computing value for the given 64 bit input and hence the output will be
128 bits. The multiplier output is given as the input to carry save adder which performs addition.
The function of the MAC unit is given by the following equation:
F= PiQi
(1)
The output of carry save adder is 129 bit i.e. one bit is for the carry (128bits+ 1 bit).
Then, the output is given to the accumulator register. The accumulator register used in this design
is Parallel In Parallel Out (PIPO). Since the bits are huge and also carry save adder produces all
the output values in parallel, PIPO register is used where the input bits are taken in parallel and
output is taken in parallel. The output of the accumulator register is taken out or fed back as one
of the input to the carry save adder. The figure 1 shows the basic architecture of MAC unit.
1.3.DIFFERENT MULTIPLIERS:
An efficient multiplier should have following characteristics:Accuracy :- A good multiplier should give correct result.
Speed :- Multiplier should perform operation at high speed.
Area :- A multiplier should occupies less number of slices and LUTs.
Power :- Multiplier should consume less power.
Multiplication process has three main steps:
1. Partial product generation.
2. Partial product reduction.
3. Final addition.
For the multiplication of an n-bit multiplicand with an m bit multiplier, m partial products
are generated and product formed is n + m bits long. Here we discuss about four different types
of multipliers which are
1. Booth multiplier.
2. Combinational multiplier.
3. Wallace tree multiplier.
4. Array multiplier.
5. Sequential multiplier.
1.3.1.Booth multiplier:Booth multiplication algorithm gives a procedure for multiplying binary integers in
signed -2s complement representation. Following steps are used for implementing the booth
algorithm:Let X and Y are two binary numbers and having m and n numbers of bits(m and n are
equal) respectively.
Step 1 Making booth table: In booth table we will take four columns one column for multiplier
second for previous first LSB of multiplier and other two (U and V) for partial product
accumulator (P).
1. From two numbers, choose multiplier (X) and multiplicand (Y).
2. Take 2s complement of multiplicand (Y).
3. Load X value in the table.
4. Load 0 for X-1 value.
5. Load 0 in U and V which will have product of X & Yat the end of the operation.
6. Make n rows for each cycle because we are multiplying m and n bits numbers.
Xi
Xi-1
Shift only
Shift only
2. Take U & V together and shift arithmetic right shift which preserves the sign bit of
2scomplement number. So, positive numbers and negative numbers remains positive and
negative respectively.
3. Circularly right shift X because this will prevent us from using two registers for the X value.
Repeat the same steps until n no. of cycles are completed. In the end we get the product
of X and Y.
1.3.2.Combinational Multiplier:
2. Reduce the number of partial products to two by using layers of full and half adders.
3. After second step we get two rows of sum and carry, add these rows with conventional adders.
Explanation of second step:As long as there are three or more rows with the same weight add a following layer:
1. Take any three rows with the same weights and input them into a full adder. The result will be
an output row of the same weight i.e sum and an output row with a higher weight for each three
input wires i.e carry.
2. If there are two rows of the same weight left, input them into a half adder.
3. If there is just one row left, connect it to the next layer.
The advantage of the Wallace tree is that there are only O(log n) reduction layers (levels),
and each layer has O(1) propagation delay. As making the partial products is O(1) and the final
addition is O(log n), the multiplication is only O(log n), not much slower than addition (however,
much more expensive in the gate count). For adding partial products with regular adders would
require O(log n2 ) time.
1.3.4.Array Multiplier:
Array multiplier is well known due to its regular structure. Multiplier circuit is based on
repeated addition and shifting procedure. Each partial product is generated by the multiplication
of the multiplicand with one multiplier digit. The partial product are shifted according to their bit
sequences and then added. The summation canbe performed with normal carry propagation
adder. N-1 adders are required where N is the no. of multiplier bits.
1.3.5.Sequential Multiplier:
If we want to multiply two binary number (multiplicand X has n bits and multiplier Y has
m bits) using single nbit adder, we can built a sequential circuit that processes a single partial
product at a time and then cycle the circuitm times. This type of circuit is called
sequentialmultiplier. Sequential multipliers are attractive for their low area requirement.
are generating partial products, adding the generated partial products to the accumulated
partialsum and shifting the partial sum. Figure 1 shows partial product generation and addition in
a sequential multiplier.