+32 votes
6k views

The amount of ROM needed to implement a $4-bit$ multiplier is

1. $64$ bits
2. $128$ bits
3. $1$ Kbits
4. $2$ Kbits

edited | 6k views

## 3 Answers

+46 votes
Best answer

A ROM cannot be written. So, to implement a $4$-bit multiplier we must store all the possible combinations of $2^4 \times 2^4$ inputs and their corresponding $8$ output bits giving a total of $2^4 \times 2^4 \times 8$ bits $= 2048$ bits. So, (D) is the answer.

PS: We are not storing the input bits explicitly -- those are considered in order while accessing the output $8$ bits. In this way, by storing all the possible outputs in order we can avoid storing the input combinations.

by
edited by
0
Arjun Suresh sir- Can you tell the book where this topic is covered. It will be great if you can provide some link.
0
I guess Morris Mano book covers this. I don't have the book now to verify. This ppt also gives a very good detail:
http://www.cs.uiuc.edu/class/fa05/cs231/lectures/review(11-4).ppt
+11
total possible cases $= 2^4 * 2^4$ and output of each case $= 8\;bit$
0
How is the input mapped to.output in the multiplier?
+2

this image clarifies the ROM thing here..

0
@arjun sir ,please update the link.. it is dead.
0
@Arjun Suresh Sir, I have a doubt here... With 4 bits, 16 numbers (multiplicands) are possibe. Each of this number takes 4 bits in memory.. Similarly each multiplier will also take 4 bits then why dont we multiply the result u found with 4*4... 2^4 is just number of multiplicands.. It is not number of bits used to store those many multiplicands... Please clarify
+2
@Anchit see now.
+1
@Arjun Sir. The link isnt working. Can you kindly provide another link or update the same.
+2
link is not working
0
since Multiplication follows commutative rule : so  a*b = b*a , therefore i think   ( (2^4 * 2^4) / 2  ) * 8 bits will also work , therefore 1K bits may be the ans as well, since if we get 1001 * 1110 , then there is no need to make a new entry for 1110 * 1001
+12 votes
Since we want to multiply 4bit two number .

Then number of combination of input for multiplication is=16*16

Number of output lines =8

Size of ROM=16*16*8=2048bits=2Kbits
+1
Please update the link..Link is not working..
+5 votes

ROM is Read-Only Memory. We can just read from it, not write to it. Hence, all the possible results need to be already stored in the ROM.

A 4-bit multiplier multiplies two 4-bit numbers.

There can be $2^{4}$ such numbers.

So, total possible multiplication pairs could be $2^{4} * 2^{4}=2^{8}$

The result would be max: $(1111)_{2}*(1111)_{2}$

$=> (15)_{10}*(15)_{10}$

$=> (225)_{10}$

And 225 requires 8 bits.

Hence, we potentially need 8 bits for the $2^{8}$ possible combinations.

$=> 2^{8} * 8 bits$

$=> 2^{11} bits$

So, Option D

### Edit: Alternatively,

We know that multiplying an $n$ bit number with and $m$ bit number results in a number which is of at most $(m+n)$ bits.

Hence, maximum result size: $8$ bits.

Total combinations: $2^8$

Memory required: $2^{11} bits$

PS: Addition of two $n$ bit numbers results in a max $n+1$ bit number

edited
Answer:

+13 votes
2 answers
2
+26 votes
1 answer
3
+17 votes
2 answers
4