I have the following 2-bit binary multiplier

2-bit binary multiplier
(source: wikimedia.org)

How can I modify this 2-bit binary multiplier to make it a 3-bit binary multiplier?

I notice that there are 2 half-adders, and there are a bunch of ANDs to begin with. It is tricky to see a pattern here, I would normally use a truth table but there would be a wopping 64 combinations. Any other strategies I could use here?

  • $\begingroup$ What research have you done? Where have you looked? I encourage you to do a significant amount of research, including checking standard resources (Wikipedia, standard textbooks, reading the references cited by Wikipedia) before asking. In this case, I expect this to be covered well by computer architecture textbooks. There's little point in us repeating material that's already documented well in standard resources. $\endgroup$
    – D.W.
    Mar 14, 2017 at 21:47
  • 1
  • 2
    $\begingroup$ Can you figure out why there are those ANDs? How would you do a multiplication with pencil and paper? $\endgroup$
    – quicksort
    Mar 14, 2017 at 21:49
  • $\begingroup$ You have four bits of input, so there are only 16 combinations in the truth table. My feeling, though (and this has been echoed by the community here in the past) is that this kind of low-level electronics question is off-topic, here, and should be asked at Electrical Engineering instead. Also, it's essentially a programming question, which is another reason for feeling that it's off-topic. $\endgroup$ Mar 14, 2017 at 22:16
  • 1
    $\begingroup$ @AppreciateIt "Not for the 3-bit multiplier." Brainfart -- sorry. $\endgroup$ Mar 14, 2017 at 22:50

2 Answers 2


There is a pattern in the first stage: the two pairs of ands stand for the four bitwise products. Then follows a three-bits adder stage with carries ($C_0$ is immediate).

The generalization fill involve three triples of ands and two adders.


For an n-bit by n-bit multiplier you use $n^2$ ANDs which each give a single bit in some bit position. For example in a 64 bit multiplier $x_{52} and $y_{22} would be a bit in position 74.

You arrange this in columns for each bit position, then any three bits in the same position are added with a full adder, giving one bit in the same and one in the next higher position. You repeat this as long as you have three bits in the same position, and then you have two numbers to add. Each full adder removes one bit, so you need $n^2$ full adders arranged in c * log n levels.

Your mobile phone probably has a few dozen 64x64 bit multipliers with 4096 ands and 4096 full adders each.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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