Digital Circuits/Logic Operations

From Wikibooks, the open-content textbooks collection

Jump to: navigation, search

In this page we are going to briefly discuss some of the background information necessary before studying Digital Circuits.

Boolean Algebra was created by George Boole (1815–1864) in his paper An Investigation of the Laws of Thought, on Which Are Founded the Mathematical Theories of Logic and Probabilities, published in 1854. It had few applications at the time, but eventually scientists and engineers realized that his system could be used to create efficient computer logic.

Contents

[edit] Boolean Algebra

Boolean algebra is a bit of an oddity in the mathematical world. Boolean algebra uses, as its fundamental values, the states of "true" and "false". To facilitate mathematics, we will turn "true" values into the number 1, and we will turn "false" values into the number 0. Then, we will go over some of the basic rules of boolean algebra:

Addition 
  • 1 + 1 = 1
  • 1 + 0 = 1
  • 0 + 0 = 0

There are only 2 values in boolean algebra, so there is no place to store the carry from an addition operation. The strangest part of boolean algebra is that 1 + 1 = 1. It's strange, but it's important.

Multiplication 
  • 1 × 1 = 1
  • 1 × 0 = 0
  • 0 × 0 = 0

These results seem pretty normal.

[edit] Inversion

Inversion, or a NOT operation changes a 1 to a 0, and changes 0 to 1. Mathematically, we will use the symbol "!" (exclamation point) to denote the logical inversion of a quantity or a variable. For instance:

  • !1 = 0
  • !0 = 1

Since you are using base 2 and since there are only two states then it stands to reason that if it's NOT "one" then it is "zero" and if it's NOT "zero" then it is "one"

If we want to talk about a variable that is always inverted, we will use the following notation:

\overline{X} = !X

Where the bar over top of the X denotes the fact that this value is always the opposite of the value.

[edit] Truth Tables

A truth table is a method to show how the output of a digital circuit reacts to the inputs. Along the top row of the truth table the state of each input for a given scenario is identified beginning at the left, with the last column on the right representing the corresponding output. All the possible combinations of inputs for the circuit are listed, and the resulting outputs are defined at the end of each row.

For example the truth table for the expression "Q is true only if A and B are the same" is given below:

A B Q
0 0 1
0 1 0
1 0 0
1 1 1

[edit] AND and OR

In terms of maths, AND gates are implemented by Boolean multiplication. OR gates are implemented by Boolean addition. Remember, in Boolean algebra, there are no carrys in addition.

To understand the difference between AND and OR, let's examine the truth tables below. As an aside, the result of a digital operation is usually named "Q". One explanation for this is that it used to be called "O", for "output", but was marked with a stroke to avoid confustion with zero, giving a symbol much like a "Q".

AND OR NOT
Q=X \cdot Y Q = X + Y Q=\overline{X}
X Y Q
0 0 0
0 1 0
1 0 0
1 1 1
X Y Q
0 0 0
0 1 1
1 0 1
1 1 1
X Q
0 1
1 0

In the case of AND, both X and Y must be 1 for the result to be 1. In the case of OR, either X or Y or both must be a 1 for the result to be 1.

These simple operators are good because they allow us to create very simple logic circuits:

If user put in the correct money AND the Coke button is pressed, drop a can of Coke.

We can turn this into a Boolean expression:

COKE = MONEY and BUTTON

There are ways, however, to combine these expressions to make much more complex but useful digital circuits. By using multiple operators on the same inputs, it is possible to create much more complex outputs. Consider the following case:

To pass a test of three yes/no questions, Quentin needs to get 4 marks or more.
Question A is worth 2 marks, question B is worth 3 and question C is worth 5.

Quentin can pass his test by answering Question C correctly, or by answering Question A and Question B correctly. He can also answer all the questions and pass. We can formulate the following logical expression:

Q = (A and B) or C

Notice how parentheses have been used to group the variables. This is done if there is risk of confusing the order of operation. In fact, AND has a higher precedence than OR, and NOT is higher than both. Thus Q = A and B or C is also valid to write, even if it is less clear at forst glance. If you write the operators as Boolean alegebra, this becomes less of a problem: Q = AB + C is quite clearly grouped.

Quentin's passing of his test can be shown in a truth table:

A B C Q
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

This truth table follows the rule: "If A and B are true, or C is true, then Q is true"