Why You Are Doing This Project

Multiplier is an important component that is present in almost every type of processor. It multiplies two n-bit integers to produce a 2n-bit integer result.  A very simple micro controller may correspond to n = 4, while n may be 64, 128, or higher in processors used in personal computers. By now you realize that it would be extremely difficult to do the design using standard truth-table based techniques as the size of the table increases exponentially with n. While multiplication can be done by repeated addition, such a design suffers from high latency. Thus we explore a different approach for multiplier design.

For this project you will design a 4-bit by 4-bit  array multiplier. Array multipliers have  good performance and are  easy to design.
You will gain experience in array based designs, where the design is done using an array of identical components. Thus, scaling the design to larger sizes involve enlarging the array without having to redesign for new parameters. 

This is the most complex project you have undertaken to date, and you will find that careful planning is essential.