# Designing a Logic System

In Module 1 we saw the principles of simple logic design. We saw how we could produce a **truth table** from a combination of different logic gates. The diagram shows another combination of logic gates:

**Question 1**. Complete the truth table and click to see the answer

A |
B |
C |
D |
## Q Click here |

0 | 0 | 1 | 0 | |

0 | 1 | 1 | 1 | |

1 | 0 | 0 | 0 | |

1 | 1 | 0 | 0 |

In drawing up the truth table, we notice that:

- C is A inverted, so that when A is a 1, C is a 0 and vice versa.
- D is a 1 when both C AND D are a 1.
- Q is a 1 when B is a 1.

Now let us do the reverse. We are going to design a circuit having been given a description.

Design a circuit with two inputs A and B that will give an output that is high only when B is high and A is low. |

A |
B |
Q |

0 | 0 | 0 |

0 | 1 | 1 |

1 | 0 | 0 |

1 | 1 | 0 |

- We know that an AND gate will give a 1 only when both its inputs are high. So we can connect B directly to the input, but not A. We have a clue in the last sentence, NOT A.

- So we need a NOT gate in the line from A.

**Question 2**. Can you draw this circuit?

We can solve a problem if we are given a truth table rather than a written description. Here is another truth table:

A |
B |
Q |

0 | 0 | 1 |

0 | 1 | 0 |

1 | 0 | 1 |

1 | 1 | 1 |

**Question 3. **What three conditions are needed for the outputs to be 1?

**Question 4**. Can you draw this circuit? C

## Simplifying Logic Circuits with Boolean Algebra

The methods we have looked at above are OK for very simple systems, but with a more complex system we would find the truth tables very cumbersome, if not impossible. So we can use **Boolean algebra**, which we first met in Module 1. Let us look at a few of the rules:

**A**,**B**, and**Q**represent the variables which can only be 1 or 0.**AŻ**(“A-bar”) is**NOT A**. If**AŻ**= 0, A = 1 and vice versa.**AŻ**is said to be**complementary**to**A**.

**Important Note**: It is impossible using this web editor to place the bar above the A, so I have placed it behind, like this, **AŻ**. In Word, I have put the bars above the letters using the line drawing function. However it does not copy across at all well. In some questions I have written “A-bar”. If you can do it any better, then please tell me, and then come and do the edits for me! The double compliment A bar-bar I will write as **AŻ Ż**.

Go back to Module 1 Topic 2 to revise the basic rules of Boolean Algebra

A useful property of logic gates is that there is often more than one solution to a problem, and Boolean algebra helps to simplify the expressions required. This allows us to use the minimum number of gates, desirable as that reduces the effort in design and wiring. Here are some laws that will simplify matters:

- De Morgan’s First Law:

- De Morgan’s Second Law

There are other laws:

- Double inversion:

- Commutative Laws:

A + B = B + A

- Associative Laws:

A + (B + C) = (A + B) + C

A.(B.C) = (A.B).C

- Distributive Laws:

A .(B + C) = (A.B) + (A.C)

A + (B.C) = (A + B).(A + C)

- Product of Sums:

(A + B).(A + B) = A.A + A.B + B.A + B.B

- Redundancy:

A.B + A.B.C + A.B.D = A.B

There are a lot of laws here, which we will use to simplify the circuit as shown in below:

The Boolean expression for this circuit is:

The associative law says:

See where the brackets have moved. Well so what? Look at De Morgan I:

Then De Morgan II gives us:

The double bar gives us a double inversion, so we get: