0

I want to multiply the number $(9)_{10} \rightarrow (1001)_{2}$ by a 3 digit binary number.
1) How I can extract the boolean equations?
2) Make a circuit of it.
so what I did is just see what happen if I multiply it, for example:
$$(1001)_{2}* (A_{1}B_{1}C_{1})_{2}$$ $$A_{1}*1 A_{1}*0 A_{1}*0 A_{1}*0$$ $$B_{1}*1 B_{1}*0 B_{1}*0 B_{1}*0$$ $$C_{1}*1 C_{1}*0 C_{1}*0 C_{1}*0$$ after I do that I need to sum them. so what I choose to user Ripple Carry Adder for that:


circuit

I would like to get some comments if its ok or I need to do it in another way.
thanks!

Ofir Attia
  • 3,136
  • If the goal is to make a circuit that multiplies a three-digit binary number with $9=1001_2$, instead of multiplying it with arbitrary 4-digit numbers, the minimal circuit doesn't even need gates. – celtschk Jun 12 '13 at 06:13
  • yes I got that, so using a ripple carry adder its ok? – Ofir Attia Jun 12 '13 at 06:14
  • I admit that I don't know what a ripple carry adder is. – celtschk Jun 12 '13 at 06:14
  • Ripple Carry Adder : http://www.circuitstoday.com/ripple-carry-adder – Ofir Attia Jun 12 '13 at 06:16
  • OK, so it seems to just be a specific implementation of an adder. If so, and if I understand your circuit correctly, then no. As far as I can see, you add $9$ to your number, multiply by $2$, and add $F0$ (whatever that is). But neither $9a=2(a+9)$, nor $9a=2(a+9)+1$ for all $a\in{0,…,7}$. – celtschk Jun 12 '13 at 06:23
  • so what I need to change? not to add $F0$? – Ofir Attia Jun 12 '13 at 06:40
  • I have no idea what $F0$ actually is, in your problem description it doesn't occur. BTW, I now don't have the time to continue until in about 12 hours. – celtschk Jun 12 '13 at 06:44

1 Answers1

0

You definitely have to do it differently.

Let's consider an example: $7_{10}\cdot 9_{10} = 111_2\cdot 1001_2$. The result is of course $63_{10}=111111_2$. Now what would your circuit give?

Well, you feed the $7=111_2$ and the $9=1001_2$ into an adder, which calculates $7+9=16=10000_2$ Then you append another bit, which you get from an input "F0" which you nowhere specify. However, it can only be either $0$ or $1$, so the final result from your circuit is either $100000_2$ or $100001_2$. Neither of which equals $111111_2$.

To find out what to do differently, think about the following question:

For the binary number $x=abc_2$ (where $a$, $b$ and $c$ are binary digits), what is the binary representation of $9_{10}\cdot x$? Try a few concrete examples (there are only eight of them, so you can even try all of them; however I'm sure you'll see the pattern before you've done so).

Also, for enlightenment, multiply a three-digit decimal number with $1001_{10}$.

celtschk
  • 43,384