Short Notes: Combinational Circuit | Short Notes for Computer Science Engineering - Computer Science Engineering (CSE) PDF Download

Download, print and study this document offline
Please wait while the PDF view is loading
 Page 1


                                                               
 
Combinational circuit 
Introduction 
The combinational circuit consist of logic gates whose outputs at any time is determined directly from the present 
combination of input without any regard to the previous input. A combinational circuit performs a specific information 
processing operation fully specified logically by a set of Boolean functions. 
A combinatorial circuit is a generalized gate. In general such a circuit has m inputs and n outputs.  Such a circuit can 
always be constructed as n separate combinatorial circuits, each with exactly one output. For that reason, some texts 
only discuss combinatorial circuits with exactly one output. In reality, however, some important sharing of intermediate 
signals may take place if the entire n-output circuit is constructed at once. Such sharing can significantly reduce the 
number of gates required to build the circuit.  
When we build a combinatorial circuit from some kind of specification, we always try to make it as good as possible. 
The only problem is that the definition of "as good as possible" may vary greatly. In some applications, we simply want 
to minimize the number of gates (or the number of transistors, really). In other, we might be interested in as short a 
delay (the time it takes a signal to traverse the circuit) as possible, or in as low power consumption as possible. In 
general, a mixture of such criteria must be applied. 
Describing existing circuits using Truth tables 
To specify the exact way in which a combinatorial circuit works, we might use different methods, such as logical 
expressions or truth tables.  
A truth table is a complete enumeration of all possible combinations of input values, each one with its associated output 
value.  
When used to describe an existing circuit, output values are (of course) either 0 or 1. Suppose for instance that we wish 
to make a truth table for the following circuit:  
 
All we need to do to establish a truth table for this circuit is to compute the output value for the circuit for each possible 
combination of input values. We obtain the following truth table:  
  w x y | a b 
  ----------- 
  0 0 0 | 0 1 
  0 0 1 | 0 1 
  0 1 0 | 1 1 
  0 1 1 | 1 0 
  1 0 0 | 1 1 
  1 0 1 | 1 1 
  1 1 0 | 1 1 
  1 1 1 | 1 0 
Page 2


                                                               
 
Combinational circuit 
Introduction 
The combinational circuit consist of logic gates whose outputs at any time is determined directly from the present 
combination of input without any regard to the previous input. A combinational circuit performs a specific information 
processing operation fully specified logically by a set of Boolean functions. 
A combinatorial circuit is a generalized gate. In general such a circuit has m inputs and n outputs.  Such a circuit can 
always be constructed as n separate combinatorial circuits, each with exactly one output. For that reason, some texts 
only discuss combinatorial circuits with exactly one output. In reality, however, some important sharing of intermediate 
signals may take place if the entire n-output circuit is constructed at once. Such sharing can significantly reduce the 
number of gates required to build the circuit.  
When we build a combinatorial circuit from some kind of specification, we always try to make it as good as possible. 
The only problem is that the definition of "as good as possible" may vary greatly. In some applications, we simply want 
to minimize the number of gates (or the number of transistors, really). In other, we might be interested in as short a 
delay (the time it takes a signal to traverse the circuit) as possible, or in as low power consumption as possible. In 
general, a mixture of such criteria must be applied. 
Describing existing circuits using Truth tables 
To specify the exact way in which a combinatorial circuit works, we might use different methods, such as logical 
expressions or truth tables.  
A truth table is a complete enumeration of all possible combinations of input values, each one with its associated output 
value.  
When used to describe an existing circuit, output values are (of course) either 0 or 1. Suppose for instance that we wish 
to make a truth table for the following circuit:  
 
All we need to do to establish a truth table for this circuit is to compute the output value for the circuit for each possible 
combination of input values. We obtain the following truth table:  
  w x y | a b 
  ----------- 
  0 0 0 | 0 1 
  0 0 1 | 0 1 
  0 1 0 | 1 1 
  0 1 1 | 1 0 
  1 0 0 | 1 1 
  1 0 1 | 1 1 
  1 1 0 | 1 1 
  1 1 1 | 1 0 
                                                               
 
 
Specifying circuits to build 
When used as a specification for a circuit, a table may have some output values that are not specified, perhaps because 
the corresponding combination of input values can never occur in the particular application. We can indicate such 
unspecified output values with a dash -.  
For instance, let us suppose we want a circuit of four inputs, interpreted as two nonnegative binary integers of two 
binary digits each, and two outputs, interpreted as the nonnegative binary integer giving the quotient between the two 
input numbers. Since division is not defined when the denominator is zero, we do not care what the output value is in 
this case. Of the sixteen entries in the truth table, four have a zero denominator. Here is the truth table:  
  x1 x0 y1 y0 | z1 z0 
  ------------------- 
   0  0  0  0   | -  - 
   0  0  0  1   | 0  0 
   0  0  1  0   | 0  0 
   0  0  1  1   | 0  0 
   0  1  0  0   | -  - 
   0  1  0  1   | 0  1 
   0  1  1  0   | 0  0 
   0  1  1  1   | 0  0 
   1  0  0  0   | -  - 
   1  0  0  1   | 1  0 
   1  0  1  0   | 0  1 
   1  0  1  1   | 0  0 
   1  1  0  0   | -  - 
   1  1  0  1   | 1  1 
   1  1  1  0   | 0  1 
   1  1  1  1   | 0  1 
Unspecified output values like this can greatly decrease the number of circuits necessary to build the circuit. The reason 
is simple: when we are free to choose the output value in a particular situation, we choose the one that gives the fewest 
total number of gates.  
Circuit minimization is a difficult problem from complexity point of view. Computer programs that try to optimize 
circuit design apply a number of heuristics to improve speed. In this course, we are not concerned with optimality. We 
are therefore only going to discuss a simple method that works for all possible combinatorial circuits (but that can waste 
large numbers of gates).  
A separate single-output circuit is built for each output of the combinatorial circuit.  
Our simple method starts with the truth table (or rather one of the acceptable truth tables, in case we have a choice). Our 
circuit is going to be a two-layer circuit. The first layer of the circuit will have at most 2
n
 AND-gates, each with n inputs 
(where n is the number of inputs of the combinatorial circuit). The second layer will have a single OR-gate with as many 
inputs as there are gates in the first layer. For each line of the truth table with an output value of 1, we put down a AND-
gate with n inputs. For each input entry in the table with a 1 in it, we connect an input of the AND-gate to the 
corresponding input. For each entry in the table with a 0 in it, we connect an input of the AND-gate to the corresponding 
input inverted.  
The output of each AND-gate of the fist layer is then connected to an input of the OR-gate of the second layer.  
As an example of our general method, consider the following truth table (where a - indicates that we don't care what 
value is chosen):  
Page 3


                                                               
 
Combinational circuit 
Introduction 
The combinational circuit consist of logic gates whose outputs at any time is determined directly from the present 
combination of input without any regard to the previous input. A combinational circuit performs a specific information 
processing operation fully specified logically by a set of Boolean functions. 
A combinatorial circuit is a generalized gate. In general such a circuit has m inputs and n outputs.  Such a circuit can 
always be constructed as n separate combinatorial circuits, each with exactly one output. For that reason, some texts 
only discuss combinatorial circuits with exactly one output. In reality, however, some important sharing of intermediate 
signals may take place if the entire n-output circuit is constructed at once. Such sharing can significantly reduce the 
number of gates required to build the circuit.  
When we build a combinatorial circuit from some kind of specification, we always try to make it as good as possible. 
The only problem is that the definition of "as good as possible" may vary greatly. In some applications, we simply want 
to minimize the number of gates (or the number of transistors, really). In other, we might be interested in as short a 
delay (the time it takes a signal to traverse the circuit) as possible, or in as low power consumption as possible. In 
general, a mixture of such criteria must be applied. 
Describing existing circuits using Truth tables 
To specify the exact way in which a combinatorial circuit works, we might use different methods, such as logical 
expressions or truth tables.  
A truth table is a complete enumeration of all possible combinations of input values, each one with its associated output 
value.  
When used to describe an existing circuit, output values are (of course) either 0 or 1. Suppose for instance that we wish 
to make a truth table for the following circuit:  
 
All we need to do to establish a truth table for this circuit is to compute the output value for the circuit for each possible 
combination of input values. We obtain the following truth table:  
  w x y | a b 
  ----------- 
  0 0 0 | 0 1 
  0 0 1 | 0 1 
  0 1 0 | 1 1 
  0 1 1 | 1 0 
  1 0 0 | 1 1 
  1 0 1 | 1 1 
  1 1 0 | 1 1 
  1 1 1 | 1 0 
                                                               
 
 
Specifying circuits to build 
When used as a specification for a circuit, a table may have some output values that are not specified, perhaps because 
the corresponding combination of input values can never occur in the particular application. We can indicate such 
unspecified output values with a dash -.  
For instance, let us suppose we want a circuit of four inputs, interpreted as two nonnegative binary integers of two 
binary digits each, and two outputs, interpreted as the nonnegative binary integer giving the quotient between the two 
input numbers. Since division is not defined when the denominator is zero, we do not care what the output value is in 
this case. Of the sixteen entries in the truth table, four have a zero denominator. Here is the truth table:  
  x1 x0 y1 y0 | z1 z0 
  ------------------- 
   0  0  0  0   | -  - 
   0  0  0  1   | 0  0 
   0  0  1  0   | 0  0 
   0  0  1  1   | 0  0 
   0  1  0  0   | -  - 
   0  1  0  1   | 0  1 
   0  1  1  0   | 0  0 
   0  1  1  1   | 0  0 
   1  0  0  0   | -  - 
   1  0  0  1   | 1  0 
   1  0  1  0   | 0  1 
   1  0  1  1   | 0  0 
   1  1  0  0   | -  - 
   1  1  0  1   | 1  1 
   1  1  1  0   | 0  1 
   1  1  1  1   | 0  1 
Unspecified output values like this can greatly decrease the number of circuits necessary to build the circuit. The reason 
is simple: when we are free to choose the output value in a particular situation, we choose the one that gives the fewest 
total number of gates.  
Circuit minimization is a difficult problem from complexity point of view. Computer programs that try to optimize 
circuit design apply a number of heuristics to improve speed. In this course, we are not concerned with optimality. We 
are therefore only going to discuss a simple method that works for all possible combinatorial circuits (but that can waste 
large numbers of gates).  
A separate single-output circuit is built for each output of the combinatorial circuit.  
Our simple method starts with the truth table (or rather one of the acceptable truth tables, in case we have a choice). Our 
circuit is going to be a two-layer circuit. The first layer of the circuit will have at most 2
n
 AND-gates, each with n inputs 
(where n is the number of inputs of the combinatorial circuit). The second layer will have a single OR-gate with as many 
inputs as there are gates in the first layer. For each line of the truth table with an output value of 1, we put down a AND-
gate with n inputs. For each input entry in the table with a 1 in it, we connect an input of the AND-gate to the 
corresponding input. For each entry in the table with a 0 in it, we connect an input of the AND-gate to the corresponding 
input inverted.  
The output of each AND-gate of the fist layer is then connected to an input of the OR-gate of the second layer.  
As an example of our general method, consider the following truth table (where a - indicates that we don't care what 
value is chosen):  
                                                               
 
  x y z | a b 
  ----------- 
  0 0 0 | - 0 
  0 0 1 | 1 1 
  0 1 0 | 1 - 
  0 1 1 | 0 0 
  1 0 0 | 0 1 
  1 0 1 | 0 - 
  1 1 0 | - - 
  1 1 1 | 1 0 
The first step is to arbitrarily choose values for the undefined outputs. With out simple method, the best solution is to 
choose a 0 for each such undefined output. We get this table:  
  x y z | a b 
  ----------- 
  0 0 0 | 0 0 
  0 0 1 | 1 1 
  0 1 0 | 1 0 
  0 1 1 | 0 0 
  1 0 0 | 0 1 
  1 0 1 | 0 0 
  1 1 0 | 0 0 
  1 1 1 | 1 0 
Now, we have to build two separate single-output circuits, one for the a column and one for the b column.  
A=x'y'z+x'yz'+xyz 
B=x'y'z+xy'z' 
For the first column, we get three 3-input AND-gates in the first layer, and a 3-input OR-gate in the second layer. We get 
three AND -gates since there are three rows in the a column with a value of 1. Each one has 3-inputs since there are 
three inputs, x, y, and z of the circuit. We get a 3-input OR-gate in the second layer since there are three AND -gates in 
the first layer.  
Here is the complete circuit for the first column:  
 
For the second column, we get two 3-input AND -gates in the first layer, and a 2-input OR-gate in the second layer. We 
get two AND-gates since there are two rows in the b column with a value of 1. Each one has 3-inputs since again there 
are three inputs, x, y, and z of the circuit. We get a 2-input AND-gate in the second layer since there are two AND-gates 
in the first layer.  
Here is the complete circuit for the second column:  
Page 4


                                                               
 
Combinational circuit 
Introduction 
The combinational circuit consist of logic gates whose outputs at any time is determined directly from the present 
combination of input without any regard to the previous input. A combinational circuit performs a specific information 
processing operation fully specified logically by a set of Boolean functions. 
A combinatorial circuit is a generalized gate. In general such a circuit has m inputs and n outputs.  Such a circuit can 
always be constructed as n separate combinatorial circuits, each with exactly one output. For that reason, some texts 
only discuss combinatorial circuits with exactly one output. In reality, however, some important sharing of intermediate 
signals may take place if the entire n-output circuit is constructed at once. Such sharing can significantly reduce the 
number of gates required to build the circuit.  
When we build a combinatorial circuit from some kind of specification, we always try to make it as good as possible. 
The only problem is that the definition of "as good as possible" may vary greatly. In some applications, we simply want 
to minimize the number of gates (or the number of transistors, really). In other, we might be interested in as short a 
delay (the time it takes a signal to traverse the circuit) as possible, or in as low power consumption as possible. In 
general, a mixture of such criteria must be applied. 
Describing existing circuits using Truth tables 
To specify the exact way in which a combinatorial circuit works, we might use different methods, such as logical 
expressions or truth tables.  
A truth table is a complete enumeration of all possible combinations of input values, each one with its associated output 
value.  
When used to describe an existing circuit, output values are (of course) either 0 or 1. Suppose for instance that we wish 
to make a truth table for the following circuit:  
 
All we need to do to establish a truth table for this circuit is to compute the output value for the circuit for each possible 
combination of input values. We obtain the following truth table:  
  w x y | a b 
  ----------- 
  0 0 0 | 0 1 
  0 0 1 | 0 1 
  0 1 0 | 1 1 
  0 1 1 | 1 0 
  1 0 0 | 1 1 
  1 0 1 | 1 1 
  1 1 0 | 1 1 
  1 1 1 | 1 0 
                                                               
 
 
Specifying circuits to build 
When used as a specification for a circuit, a table may have some output values that are not specified, perhaps because 
the corresponding combination of input values can never occur in the particular application. We can indicate such 
unspecified output values with a dash -.  
For instance, let us suppose we want a circuit of four inputs, interpreted as two nonnegative binary integers of two 
binary digits each, and two outputs, interpreted as the nonnegative binary integer giving the quotient between the two 
input numbers. Since division is not defined when the denominator is zero, we do not care what the output value is in 
this case. Of the sixteen entries in the truth table, four have a zero denominator. Here is the truth table:  
  x1 x0 y1 y0 | z1 z0 
  ------------------- 
   0  0  0  0   | -  - 
   0  0  0  1   | 0  0 
   0  0  1  0   | 0  0 
   0  0  1  1   | 0  0 
   0  1  0  0   | -  - 
   0  1  0  1   | 0  1 
   0  1  1  0   | 0  0 
   0  1  1  1   | 0  0 
   1  0  0  0   | -  - 
   1  0  0  1   | 1  0 
   1  0  1  0   | 0  1 
   1  0  1  1   | 0  0 
   1  1  0  0   | -  - 
   1  1  0  1   | 1  1 
   1  1  1  0   | 0  1 
   1  1  1  1   | 0  1 
Unspecified output values like this can greatly decrease the number of circuits necessary to build the circuit. The reason 
is simple: when we are free to choose the output value in a particular situation, we choose the one that gives the fewest 
total number of gates.  
Circuit minimization is a difficult problem from complexity point of view. Computer programs that try to optimize 
circuit design apply a number of heuristics to improve speed. In this course, we are not concerned with optimality. We 
are therefore only going to discuss a simple method that works for all possible combinatorial circuits (but that can waste 
large numbers of gates).  
A separate single-output circuit is built for each output of the combinatorial circuit.  
Our simple method starts with the truth table (or rather one of the acceptable truth tables, in case we have a choice). Our 
circuit is going to be a two-layer circuit. The first layer of the circuit will have at most 2
n
 AND-gates, each with n inputs 
(where n is the number of inputs of the combinatorial circuit). The second layer will have a single OR-gate with as many 
inputs as there are gates in the first layer. For each line of the truth table with an output value of 1, we put down a AND-
gate with n inputs. For each input entry in the table with a 1 in it, we connect an input of the AND-gate to the 
corresponding input. For each entry in the table with a 0 in it, we connect an input of the AND-gate to the corresponding 
input inverted.  
The output of each AND-gate of the fist layer is then connected to an input of the OR-gate of the second layer.  
As an example of our general method, consider the following truth table (where a - indicates that we don't care what 
value is chosen):  
                                                               
 
  x y z | a b 
  ----------- 
  0 0 0 | - 0 
  0 0 1 | 1 1 
  0 1 0 | 1 - 
  0 1 1 | 0 0 
  1 0 0 | 0 1 
  1 0 1 | 0 - 
  1 1 0 | - - 
  1 1 1 | 1 0 
The first step is to arbitrarily choose values for the undefined outputs. With out simple method, the best solution is to 
choose a 0 for each such undefined output. We get this table:  
  x y z | a b 
  ----------- 
  0 0 0 | 0 0 
  0 0 1 | 1 1 
  0 1 0 | 1 0 
  0 1 1 | 0 0 
  1 0 0 | 0 1 
  1 0 1 | 0 0 
  1 1 0 | 0 0 
  1 1 1 | 1 0 
Now, we have to build two separate single-output circuits, one for the a column and one for the b column.  
A=x'y'z+x'yz'+xyz 
B=x'y'z+xy'z' 
For the first column, we get three 3-input AND-gates in the first layer, and a 3-input OR-gate in the second layer. We get 
three AND -gates since there are three rows in the a column with a value of 1. Each one has 3-inputs since there are 
three inputs, x, y, and z of the circuit. We get a 3-input OR-gate in the second layer since there are three AND -gates in 
the first layer.  
Here is the complete circuit for the first column:  
 
For the second column, we get two 3-input AND -gates in the first layer, and a 2-input OR-gate in the second layer. We 
get two AND-gates since there are two rows in the b column with a value of 1. Each one has 3-inputs since again there 
are three inputs, x, y, and z of the circuit. We get a 2-input AND-gate in the second layer since there are two AND-gates 
in the first layer.  
Here is the complete circuit for the second column:  
                                                               
 
 
Now, all we have to do is to combine the two circuits into a single one:  
 
While this circuit works, it is not the one with the fewest number of gates. In fact, since both output columns have a 1 in 
the row correspoding to the inputs 0 0 1, it is clear that the gate for that row can be shared between the two subcircuits:  
 
In some cases, even smaller circuits can be obtained, if one is willing to accept more layers (and thus a higher circuit 
delay).  
Page 5


                                                               
 
Combinational circuit 
Introduction 
The combinational circuit consist of logic gates whose outputs at any time is determined directly from the present 
combination of input without any regard to the previous input. A combinational circuit performs a specific information 
processing operation fully specified logically by a set of Boolean functions. 
A combinatorial circuit is a generalized gate. In general such a circuit has m inputs and n outputs.  Such a circuit can 
always be constructed as n separate combinatorial circuits, each with exactly one output. For that reason, some texts 
only discuss combinatorial circuits with exactly one output. In reality, however, some important sharing of intermediate 
signals may take place if the entire n-output circuit is constructed at once. Such sharing can significantly reduce the 
number of gates required to build the circuit.  
When we build a combinatorial circuit from some kind of specification, we always try to make it as good as possible. 
The only problem is that the definition of "as good as possible" may vary greatly. In some applications, we simply want 
to minimize the number of gates (or the number of transistors, really). In other, we might be interested in as short a 
delay (the time it takes a signal to traverse the circuit) as possible, or in as low power consumption as possible. In 
general, a mixture of such criteria must be applied. 
Describing existing circuits using Truth tables 
To specify the exact way in which a combinatorial circuit works, we might use different methods, such as logical 
expressions or truth tables.  
A truth table is a complete enumeration of all possible combinations of input values, each one with its associated output 
value.  
When used to describe an existing circuit, output values are (of course) either 0 or 1. Suppose for instance that we wish 
to make a truth table for the following circuit:  
 
All we need to do to establish a truth table for this circuit is to compute the output value for the circuit for each possible 
combination of input values. We obtain the following truth table:  
  w x y | a b 
  ----------- 
  0 0 0 | 0 1 
  0 0 1 | 0 1 
  0 1 0 | 1 1 
  0 1 1 | 1 0 
  1 0 0 | 1 1 
  1 0 1 | 1 1 
  1 1 0 | 1 1 
  1 1 1 | 1 0 
                                                               
 
 
Specifying circuits to build 
When used as a specification for a circuit, a table may have some output values that are not specified, perhaps because 
the corresponding combination of input values can never occur in the particular application. We can indicate such 
unspecified output values with a dash -.  
For instance, let us suppose we want a circuit of four inputs, interpreted as two nonnegative binary integers of two 
binary digits each, and two outputs, interpreted as the nonnegative binary integer giving the quotient between the two 
input numbers. Since division is not defined when the denominator is zero, we do not care what the output value is in 
this case. Of the sixteen entries in the truth table, four have a zero denominator. Here is the truth table:  
  x1 x0 y1 y0 | z1 z0 
  ------------------- 
   0  0  0  0   | -  - 
   0  0  0  1   | 0  0 
   0  0  1  0   | 0  0 
   0  0  1  1   | 0  0 
   0  1  0  0   | -  - 
   0  1  0  1   | 0  1 
   0  1  1  0   | 0  0 
   0  1  1  1   | 0  0 
   1  0  0  0   | -  - 
   1  0  0  1   | 1  0 
   1  0  1  0   | 0  1 
   1  0  1  1   | 0  0 
   1  1  0  0   | -  - 
   1  1  0  1   | 1  1 
   1  1  1  0   | 0  1 
   1  1  1  1   | 0  1 
Unspecified output values like this can greatly decrease the number of circuits necessary to build the circuit. The reason 
is simple: when we are free to choose the output value in a particular situation, we choose the one that gives the fewest 
total number of gates.  
Circuit minimization is a difficult problem from complexity point of view. Computer programs that try to optimize 
circuit design apply a number of heuristics to improve speed. In this course, we are not concerned with optimality. We 
are therefore only going to discuss a simple method that works for all possible combinatorial circuits (but that can waste 
large numbers of gates).  
A separate single-output circuit is built for each output of the combinatorial circuit.  
Our simple method starts with the truth table (or rather one of the acceptable truth tables, in case we have a choice). Our 
circuit is going to be a two-layer circuit. The first layer of the circuit will have at most 2
n
 AND-gates, each with n inputs 
(where n is the number of inputs of the combinatorial circuit). The second layer will have a single OR-gate with as many 
inputs as there are gates in the first layer. For each line of the truth table with an output value of 1, we put down a AND-
gate with n inputs. For each input entry in the table with a 1 in it, we connect an input of the AND-gate to the 
corresponding input. For each entry in the table with a 0 in it, we connect an input of the AND-gate to the corresponding 
input inverted.  
The output of each AND-gate of the fist layer is then connected to an input of the OR-gate of the second layer.  
As an example of our general method, consider the following truth table (where a - indicates that we don't care what 
value is chosen):  
                                                               
 
  x y z | a b 
  ----------- 
  0 0 0 | - 0 
  0 0 1 | 1 1 
  0 1 0 | 1 - 
  0 1 1 | 0 0 
  1 0 0 | 0 1 
  1 0 1 | 0 - 
  1 1 0 | - - 
  1 1 1 | 1 0 
The first step is to arbitrarily choose values for the undefined outputs. With out simple method, the best solution is to 
choose a 0 for each such undefined output. We get this table:  
  x y z | a b 
  ----------- 
  0 0 0 | 0 0 
  0 0 1 | 1 1 
  0 1 0 | 1 0 
  0 1 1 | 0 0 
  1 0 0 | 0 1 
  1 0 1 | 0 0 
  1 1 0 | 0 0 
  1 1 1 | 1 0 
Now, we have to build two separate single-output circuits, one for the a column and one for the b column.  
A=x'y'z+x'yz'+xyz 
B=x'y'z+xy'z' 
For the first column, we get three 3-input AND-gates in the first layer, and a 3-input OR-gate in the second layer. We get 
three AND -gates since there are three rows in the a column with a value of 1. Each one has 3-inputs since there are 
three inputs, x, y, and z of the circuit. We get a 3-input OR-gate in the second layer since there are three AND -gates in 
the first layer.  
Here is the complete circuit for the first column:  
 
For the second column, we get two 3-input AND -gates in the first layer, and a 2-input OR-gate in the second layer. We 
get two AND-gates since there are two rows in the b column with a value of 1. Each one has 3-inputs since again there 
are three inputs, x, y, and z of the circuit. We get a 2-input AND-gate in the second layer since there are two AND-gates 
in the first layer.  
Here is the complete circuit for the second column:  
                                                               
 
 
Now, all we have to do is to combine the two circuits into a single one:  
 
While this circuit works, it is not the one with the fewest number of gates. In fact, since both output columns have a 1 in 
the row correspoding to the inputs 0 0 1, it is clear that the gate for that row can be shared between the two subcircuits:  
 
In some cases, even smaller circuits can be obtained, if one is willing to accept more layers (and thus a higher circuit 
delay).  
                                                               
 
Boolean functions 
Operations of  binary variables can be described by mean of appropriate mathematical function called Boolean function. 
A Boolean function define a mapping from a set of binary input values into a set of output values. A Boolean function is 
formed with binary variables, the binary operators AND and OR and the unary operator NOT.  
For example , a Boolean function f(x
1,
x
2,
x
3,
……,x
n
) =y defines a mapping from an arbitrary combination of binary input 
values (x
1,
x
2,
x
3,
……,x
n
)  into a binary value y. a binary function with n input variable can operate on 2
n
 distincts values. 
Any such function can be described by using a truth table consisting of 2
n
 rows and n columns. The content of this table 
are the values produced by that function when applied to all the possible combination of the n input variable. 
Example 
x y x.y 
0 0 0 
0 1 0 
1 0 0 
1 1 1 
The function f, representing x.y, that is f(x,y)=xy. Which mean that f=1 if x=1 and y=1 and f=0 otherwise. 
For each rows of the table, there is a value of the function equal to 1 or 0. The function f is equal to the sum of all rows 
that gives a value of 1. 
A Boolean function may be transformed from an algebraic expression into a logic diagram composed of AND, OR and 
NOT gate. When a Boolean function is implemented with logic gates, each literal in the function designates an input to a 
gate and each term  is implemented with a logic gate . e.g. 
 F=xyz 
 F=x+y'z 
Complement of a function 
The complement of a function F is F' and is obtained from an interchange of 0’s to 1’s and 1’s to 0’s in the value of F. 
the complement of a function may be derived algebraically trough De Morgan’s theorem  
(A+B+C+….)'= A'B'C'….  
 (ABC….)'= A'+ B'+C'…… 
The generalized form of de Morgan’s theorem state that the complement of function is obtained by interchanging AND 
and OR and complementing each literal.  
F=X'YZ'+X'Y'Z' 
F'=( X'YZ'+X'Y'Z')'  
 =( X'YZ')'.( X'Y'Z')' 
 =( X''+Y'+Z'')( X''+Y''+Z'') 
=( X+Y'+Z)( X+Y+Z) 
Read More
90 docs

Top Courses for Computer Science Engineering (CSE)

90 docs
Download as PDF
Explore Courses for Computer Science Engineering (CSE) exam

Top Courses for Computer Science Engineering (CSE)

Signup for Free!
Signup to see your scores go up within 7 days! Learn & Practice with 1000+ FREE Notes, Videos & Tests.
10M+ students study on EduRev
Related Searches

mock tests for examination

,

practice quizzes

,

Free

,

Short Notes: Combinational Circuit | Short Notes for Computer Science Engineering - Computer Science Engineering (CSE)

,

Important questions

,

Exam

,

Summary

,

pdf

,

Viva Questions

,

study material

,

ppt

,

past year papers

,

MCQs

,

Previous Year Questions with Solutions

,

Short Notes: Combinational Circuit | Short Notes for Computer Science Engineering - Computer Science Engineering (CSE)

,

shortcuts and tricks

,

Objective type Questions

,

Extra Questions

,

video lectures

,

Sample Paper

,

Short Notes: Combinational Circuit | Short Notes for Computer Science Engineering - Computer Science Engineering (CSE)

,

Semester Notes

;