After creating an adder/subtracter, a multiplier is a good next step.

Once again, before we start talking about any circuit logic or design, we need to figure out the mechanics of the problem. Multiplication, like addition, isn’t very difficult. We all know the rules, but once again, binary adds a new perspective.

Note 1: Multiplication consists of 2 parts. First the multiplication, then addition. Because we will need to multiply numbers larger than 1, such as 8 (1000), we are forced to do the addition step.

Note 2: With binary, 1×1 still equals 1, so no need to carry bits in the multiplication step.

So, starting with regular multiplication let’s take a look:

As you can see, there are some digits highlighted. As said by note 2, we will not have to carry numbers in the multiplication step, only the addition step. Therefore, the multiplication is easy.

0x0=0

0x1=0

1×0=0

1×1=1

Which by definition matches an AND gate (ironic, no?). The tough part is figuring out how to handle all the additions. As I said in both the adder posts, the adder can be expanded infinitely to add **TWO** sets of bits together. When you start having to add multiple lines of bits, things get sticky.

The layout of our math (to keep the notation straight) is gonna look like this:

A_{n} and B_{n} are the bits being multiplied. Design does depend on how many digits are being combined.

X_{n} = B_{n} x A_{0}

Y_{n} = B_{n} x A_{1}

Z_{n} = B_{n} x A_{2}

V_{n} = B_{n} x A_{3}

Also, in all this mess is carry bits. We will tackle that in the design stage.

So, we have the basic framework to build our multiplier, but how to put the pieces together? Let’s look at the image again.

F_{0} = X_{0} Easy!

F_{1} = Y_{0} + X_{1} also easy. No carry!

F_{2} = Z_{0} + Y_{1} + X_{2} Okay, problematic…

How to solve this? Well, simple design can be just as useful as talking about it.

The image may be hard to see in this blog, so try a LINK.

As you can see, the adders are in a similar orientation to our multiplication tables at the top. The addition is sandwiched between the bits. If you look across the top of the design, the A_{n} bits are taken care of vertically, while the B_{n} bits are added in horizontally (to make the design less of a rat-trap). All the layers are added together like VZYX_{0} + VZYZ_{1} THEN + VZYZ_{2} and so on. The design is easy to expand or condense and is convenient.

So, to expand the design, here are the equations:

Full adders: B across by (A-1) down (number of bits)

AND gates: B x A

F_{n} (outputs) = A + B

The real trouble of the design is making sure that all wires are connected properly. One foul connection and the system will not work.

~Locke

## Leave a Reply