## CONVERTION OF PHYSICAL PROBLEM TO A LOGICAL PROBLEM

The move from the the specification of the system required to the implementation as a Digital Logic circuit is achieved by design. The example shown below follows the development of a safety system for a large drilling machine. The safety is both that of the operator of the machine and the machine itself. This is a rather artificial example but it does illustrate the main points to be considered. A large drill normally requires coolant to prevent the drill tip from overheating, so the check that coolant in switched ON and that it is flowing is vital. The second aspect is that of operator safety. Here a guard is required to be in place before the machine can operate. This could be a toughened plastic sheet so that the work could be observed during the drilling process. The simplest sensor would be a micro-switch held OFF while the guard was down. The requirements of the system are given below.

• Separate control of coolant.
• Sensor to detect FLOW of COOLANT.
• Drilling machine can only be switched ON if COOLANT is FLOWING, and GUARD is down and ON BUTTON is pressed.
• Drilling machine MUST STOP if COOLANT FLOW stops or GUARD is lifted or STOP BUTTON is pressed.
• Indicator light for COOLANT SUPPLY OK.
• Indicator light for DRILLING MACHINE POWER ON.

[ There are extra components after the combinational logic which "latches" or saves the logic value produced by the control circuits, and interfaces to the higher current and voltage required by the Coolant Valve and the drilling machine motor.]

The clue to the form of the logic control circuit is in the wording of the specification. The DRILLING MACHINE must be STARTED by an AND function with three inputs.
```      1) COOLANT FLOWING SENSOR - LOGIC '1' is COOLANT FLOW Present.
2) GUARD DOWN SENSOR (possibly a micro-switch) - LOGIC '1' is GUARD DOWN.
3) MOTOR "ON" PUSH BUTTON PRESSED - LOGIC '1' when PRESSED.

The DRILLING MACHINE must be STOPPED by an OR function with three inputs.

1) COOLANT NOT FLOWING - LOGIC '1' when COOLANT is NOT FLOWING. This can be
generated by inverting COOLANT FLOWING SENSOR signal.
2) GUARD NOT DOWN  - LOGIC '1' when GUARD is NOT DOWN. This can be generated
by inverting the GUARD DOWN SENSOR signal.
3) MOTOR "OFF" PUSH BUTTON PRESSED - LOGIC '1' when PRESSED.

```
The PUSH BUTTONS and the GUARD DOWN micro-switch must all give LOGIC '0' when not operated, so we must use NORMALLY CLOSED switches, which OPEN when PRESSED. The PULL UP resistor connecting the output to the +5 Volts will take the OUTPUT to LOGIC '1' when the SWITCH is OPENED as required.

## INTRODUCTION TO BOOLEAN ALGEBRA

The study of Logic by the philosophers in the 19th century raised a lot of interest in this type of problem amongst other academics. In particular, mathemeticians looked for ways of proving the correctness of logical descriptions in a more rigourous way than Truth tables. One man, George Boole, is associated so strongly with this work that this branch of mathemetics is named Boolean Algebra after him. This algebra deals with base two number systems and was therefore seen in the mid 20th century as ideal for work with binary logic circuits. The following rules are the most useful for the present work, although represent a small sub-set of the total.

AND Functions

A.A = A [read as A AND A = A]
```     A     A      OUTPUT = A AND A
0     0             0
1     1             1
```
Truth Table shows output is equal to A.

A.1 = A [read as A AND 1 = A]
```     A     1      OUTPUT = A AND 1
0     1             0
1     1             1
```
Truth Table shows output is equal to A.

A.0 = 0 [read as A AND 0 = 0]
```     A     0      OUTPUT = A AND 0
0     0             0
1     0             0
```
Truth Table shows output is equal to 0.

A.(NOT A) = 0 [read as A AND NOT A = 0]
```     A     NOT A      OUTPUT = A AND NOT A
0       1                 0
1       0                 0
```
Truth Table shows output is equal to 0.

OR Functions

A+A = A [read as A OR A = A]
```     A     A      OUTPUT = A OR A
0     0             0
1     1             1
```
Truth Table shows output is equal to A.

A+1 = 1 [read as A OR 1 = 1]
```     A     1      OUTPUT = A OR 1
0     1             1
1     1             1
```
Truth Table shows output is equal to 1.

A+0 = A [read as A AND A = A]
```     A     0      OUTPUT = A OR 0
0     0             0
1     0             1
```
Truth Table shows output is equal to A.

A+(NOT A) = 1 [read as A OR NOT A = 1]
```     A   NOT  A      OUTPUT = A AND A
0      1               1
1      0               1
```
Truth Table shows output is equal to A.

Miscellaneous Functions

This technique of expanding the terms in the bracket follows the same rules as those of conventional arithmetic.

A.(B+C) = A.B + A.C
```A  B  C  (B+C) A.(B+C)  A.B A.C   A.B+A.C
0  0  0    0      0      0   0       0
0  0  1    1      0      0   0       0
0  1  0    1      0      0   0       0
0  1  1    1      0      0   0       0
1  0  0    0      0      0   0       0
1  0  1    1      1      0   1       1
1  1  0    1      1      1   0       1
1  1  1    1      1      1   1       1
```
The Truth Table columns for A.(B+C) and A.B+A.C are equal for all values of A, B and C proving that the expansion formula is correct.

## SIMPLIFICATION USING BOOLEAN ALGEBRA & TRUTH TABLES

The use of TRUTH TABLES for simplification is a rather intuitive method and has a very variable success rate because of that fact. It main advantage is that the solution that you arrive at can be added to the TRUTH TABLE and it's accuracy checked. An example will perhaps make the idea clearer. Look again at the problem of implementing an EXCLUSIVE NOR gate. The TRUTH table shown below.
```B    A  OUTPUT
0    0    1
0    1    0
1    0    0
1    1    1
```
The output is a 1 only when A or B are the same. The two cases for a TRUE output are A = 0 and B = 0; A = 1 and B = 1. This suggests a way of making the circuit, by asking what logic function gives a '1' when A and B are '1' with 0 otherwise? An AND function, so AND A to B is one case. The other case is needs a function which has one value when both inputs are 0 and another value otherwise. The OR function could be used but the case of both input 0's gives a 0, so it would need inverting. The two cases are OR'd together to give the required circuit. The TRUTH table shows how circuit operation is calculated in sections. The NOT A and NOT B columns are included to make the calculations easier
```B  NOT B  A  NOT A   W     X     Y  X+Y = OUTPUT
0    1    0    1     0     1     0      1
0    1    1    0     1     0     0      0
1    0    0    1     1     0     0      0
1    0    1    0     1     0     1      1
```
The circuit to implement the above looks like this.

This is more suited to implementing a design rather than simplification, so boolean algebra is normally used instead. [ A truth table can be quickly drawn of the algebra result to see if it is really correct!]

Boolean Example 1

Consider the function Z = NOT A.C + A.B + A.C + NOT A.B
What will it simplify to?

First group like terms
Z = NOT A.C + NOT A.B + A.B + A.C
Take out common factors
Z = NOT A.(C + B) + A.( B + C)
Continue to take out common factors
Z = (B + C).(NOT A.1 + A.1)
Use RULES: NOT A.1 = NOT A / A.1 = A
Z = (B + C).(NOT A + A)
Use RULE: NOT A + A = 1
Z = (B + C).1
Use RULE: (B + C).1 = (B + C)
Therefore Z = (B + C)

CHECK using TRUTH TABLE
```NOT A  C  B  A  | NOT A.B  NOT A.C  A.B   A.C|   (B + C)
1    0  0  0  |  0        0      0     0   |   0
0    0  0  1  |  0        0      0     0   |   0
1    0  1  0  |  1        0      0     0   |   1
0    0  1  1  |  0        0      1     0   |   1
1    1  0  0  |  0        1      0     0   |   1
0    1  0  1  |  0        0      0     1   |   1
1    1  1  0  |  1        1      0     0   |   1
0    1  1  1  |  0        0      1     1   |   1
```
If any of the rows between the vertical lines is a 1 then the original Z = NOT A.C + A.B + A.C + NOT A.C would be 1. NOTE: The value of (B + C) is identical for ALL VALUES of A, B and C therefore the BOOLEAN SIMPLIFICATION is CORRECT

Here are some examples to try for next week.
• Simplify A.(B + C) + A.NOT B
• Simplify A.B.NOT C + A.NOT B.NOT C
• Simplify X.Y + Y.Z + NOT X.Z + Y.NOT Z

The solutions to the above examples are shown HERE.