Digital Logic Design Revised

x x y y z z f ( x , y , z ) f(x,y,z)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0

What is the minimum \text{minimum} number of AND \text{AND} , OR \text{OR} and NOT \text{NOT} gates used to implement the Boolean Function \text{Boolean Function} f ( x , y , z ) f(x,y,z) described above?

Details and assumptions:

  • You cannot use gates other than mentioned ones.

  • You are free to use either the two-input or three-input or four-input logic gates or so whereas NOT \text{NOT} gate is always a uni-input gate.


The answer is 7.

This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try refreshing the page, (b) enabling javascript if it is disabled on your browser and, finally, (c) loading the non-javascript version of this page . We're sorry about the hassle.

2 solutions

Zeeshan Ali
Feb 15, 2016
* y z \overline{y} \overline{z} y z \overline{y} z y z y z y z y \overline{z}
x \overline{x} 0 0 1 0
x x 0 1 0 1

Using Karnaugh map of the required function, we get: f ( x , y , z ) = x y z + x y z + x y z f(x,y,z)=\overline{x}yz+x\overline{y}z+xy\overline{z}

To get a minimal solution, we need:

  • Three different NOT-gates to get x \overline{x} , y \overline{y} and z \overline{z}

  • Three different 3-input-AND-gates to get x y z \overline{x}yz , x y z x\overline{y}z and x y z xy\overline{z}

  • One 3-input-OR-gate to get the final expression f ( x , y , z ) = x y z + x y z + x y z f(x,y,z)=\overline{x}yz+x\overline{y}z+xy\overline{z} .

Collectively, we need at-least 7 7 logic gates to design the function.

Note:

  • xyz is x AND y AND z, and x+y+z is x OR y OR z \text{xyz is x AND y AND z, and x+y+z is x OR y OR z}

  • Our aim was to minimize the number of gates, that is why we have chosen 3-input OR and AND gates. Otherwise we could, for example, get x y z \overline{x}yz by using two 2-input AND-gates such that x y z = ( x y ) z \overline{x}yz= (\overline{x}y)z

Bhaskar Pandey
Nov 17, 2017

I guessed the answer as 7

Because according to we only need one check:

If (x+y+z==2)

Bool_function(x,y,z)=1

Else

Bool_function(x,y,z)=0

I am pretty confident that i am wrong. Therefore please correct me and it would be nice if any of you can re-explain the question in a layman's language.

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...