# Combinational logic - Basic Applications of Boolean Gates

### Experiments with electronic gates

 Logic circuits can be divided into two major sections: combinational logic and sequential logic. The main difference is that the first type of circuit logic doesn’t depend on time or sequence of movements, and the second type of logic does. A clear example to understand this difference can be illustrated by showing the two locks below:

 Combinational Logic Sequential Logic

The lock on the left has four discs that can be rotated separately. When the notches are aligned, the metal hook is released. The only one condition needed is that the appropriate four notches are aligned, no matter if the left disc is set before the one on the right. The lock will open if you have the correct combination.

On the contrary, the lock on the right has only one knob, and the combination could be 3cw – 52ccw – 20cw. This means that one must first get to number 3 going clockwise, then to 52 counterclockwise, and finally get to number 20 clockwise. If you use the same numbers in different order, the lock won’t open. This is a sequential lock, a correct sequence is important.

Due to its stability, reliability, low maintenance and ease at reading digital displays, these days everything is going the digital way.

Logic circuits can be simulated with the so called boolean or logic gates. This is kind of Digital Electronics 101...

Let’s say that we’d like to find out the behavior of the following combinational circuit:

We can create an m-file to effortlessly solve the logic circuit, like this:

function f = combination(x)
% x(1) = A
% x(2) = B
% x(3) = C
% Symbol ~ is used for NOT gates

% We have 4 logic-AND gates
and1 = ~x(1) & ~x(2) & ~x(3);
and2 = ~x(1) & x(2)  & ~x(3);
and3 = ~x(1) & ~x(2) & x(3);
and4 = ~x(1) & x(2)  & x(3);

% We have 1 logic-OR gate
f = and1 | and2 | and3 | and4;

We can test our function for this specific example of combinational logic:

% These are all the possible combinations for 3 inputs
M = [ 0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1];

% We give all the combinations, one at a time
for i = 1 : 8
comb_log(i) = combination(M(i, :));

end

% We display the results
comb_log

The results are:

comb_log =  1     1     1     1     0     0     0     0

If you make some analysis using the DeMorgan laws, you can conclude that this function can also be simplified to F = not(A), and you can visualize it from the results...

This means that we have not only a MATrix LABoratory, but we've got also a circuit logic simulator!

From 'Combinational Logic' to home

From 'Combinational Logic' to 'Boolean Algebra'