0
\$\begingroup\$

I successfully created a 2 bit digital multiplier. Can I use that 2 bit multiplier to create a 4 bit multiplier and then use that to create an 8 bit multiplier and so on? What I basically mean to ask is, is there a prototype functional block/cell for multipliers, whose repetition while following a certain pattern can help me increase its operation width. Like a one bit full adder cell when cascaded 64 times can help me create a 64 bit adder. Is something similar possible using multipliers or should I directly dive headfirst into the gate level of design?

\$\endgroup\$
1
\$\begingroup\$

Yes there is functional block that can be used to create any N*N multiplier, it's called an array multiplier cell and it looks like this:

enter image description here

A non-optimised NN multiplier will use NN array multiplier cells.A circuit that uses these cells to make a 4*4 multiplier can be seen below

enter image description here

where m and p are the numbers being multiplied together and p is the result.

For a detailed explanation of how this circuit works you can search for "array multiplier" on google, there should be lots of information on it, but the basic idea is that at every stage of multiplication we will either be adding zero or m (the multiplicand).What decides if we add m or zero at stage n is the value of n th bit of q, so we use the nth bit of q and an AND gate to multiplex between m and zero at every stage.

\$\endgroup\$
  • \$\begingroup\$ ThankYou. I will look up the fundamentals and get back to you in case of any query...:) \$\endgroup\$ – ubuntu_noob Jan 31 '14 at 19:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.