Karnaugh Map for 4-bit Multiplication: How to Determine Values for Clusters?

  • Thread starter Thread starter mmmboh
  • Start date Start date
  • Tags Tags
    Map
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 8K views
mmmboh
Messages
401
Reaction score
0
Make a circuit to multiply two 2-bit numbers
AB and CD together to produce a 4-bit output.
(a) construct a truth table to represent all states of the inputs and
the corresponding outputs.
(b) make a Karnaugh map for each output bit. Write down the Boolean algebraic expressions that describe the clusters in each map.
(c) design a logic circuit for each output bit to perform the multiplication.

Ok well I am on part b, I have done the truth table already, but I have one problem when making the Karnaugh map, how do I know when to put a 0 or 1 in a place, like if they output is 0000, I guess I put a 0, but if it's something like 0110, do I put a 0 or a 1? I don't understand how I am suppose to know which numbers are high and low, can someone help please? thanks!

For example the truth table here, http://en.wikipedia.org/wiki/Karnaugh_map#Truth_table", how do they know what f(A,B,C,D) is?

Truth table:

A(1) A(0) B(1) B(0) C(3) C(2) C(1) C(0)

0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0
0 0 1 1 0 0 0 0
0 1 0 0 0 0 0 0
0 1 0 1 0 0 0 1
0 1 1 0 0 0 1 0
0 1 1 1 0 0 1 1
1 0 0 0 0 0 0 0
1 0 0 1 0 0 1 0
1 0 1 0 0 1 0 0
1 0 1 1 0 1 1 0
1 1 0 0 0 0 0 0
1 1 0 1 0 0 1 1
1 1 1 0 0 1 1 0
1 1 1 1 1 0 0 1
 
Last edited by a moderator:
Physics news on Phys.org
mmmboh said:
Make a circuit to multiply two 2-bit numbers
AB and CD together to produce a 4-bit output.
(a) construct a truth table to represent all states of the inputs and
the corresponding outputs.
(b) make a Karnaugh map for each output bit. Write down the Boolean algebraic expressions that describe the clusters in each map.
(c) design a logic circuit for each output bit to perform the multiplication.

Ok well I am on part b, I have done the truth table already, but I have one problem when making the Karnaugh map, how do I know when to put a 0 or 1 in a place, like if they output is 0000, I guess I put a 0, but if it's something like 0110, do I put a 0 or a 1? I don't understand how I am suppose to know which numbers are high and low, can someone help please? thanks!

For example the truth table here, http://en.wikipedia.org/wiki/Karnaugh_map#Truth_table", how do they know what f(A,B,C,D) is?

Truth table:

A(1) A(0) B(1) B(0) C(3) C(2) C(1) C(0)

0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0
0 0 1 1 0 0 0 0
0 1 0 0 0 0 0 0
0 1 0 1 0 0 0 1
0 1 1 0 0 0 1 0
0 1 1 1 0 0 1 1
1 0 0 0 0 0 0 0
1 0 0 1 0 0 1 0
1 0 1 0 0 1 0 0
1 0 1 1 0 1 1 0
1 1 0 0 0 0 0 0
1 1 0 1 0 0 1 1
1 1 1 0 0 1 1 0
1 1 1 1 1 0 0 1

You make a K-map for each of the 4 output bits, and use the 4 input bits to label the rows and columns. Then for each entry, you use the output bit value to fill in the square that corresponds to the input code.
 
Last edited by a moderator:
BTW, one tip for putting tables in your posts is to use the "code" tags. That makes the forum use non-proportional font, so things stay lined up in the columns you typed them in.