Hardware Implementations
Gates and Circuits
Three Main Gates
AND OR NOT
Gate Diagrams
Example 1: [(today is Monday) AND (it is raining)] OR (it is snowing)
Gate Diagrams
Example: What does it represent?
Gate Diagrams
Example: {[(today is Monday) AND (it is raining)] OR (it is snowing)} AND {NOT [(it is raining) AND (it is snowing)]}
Truth Table to Gates
First, build the Boolean algebra expression that gives Z Z = AB + A’B’ Z = (A AND B) OR
(NOT A AND NOT B)
A B Z
T T T
T F F
F T F
F F T
Truth Table to Gates
Z = AB + A’B’ Next, build the
circuit that goes with the Boolean algebra expression Z
A B Z
T T T
T F F
F T F
F F T
Z = AB + A’B’
Binary Arithmetic
We can add binary numbers just like decimal numbers only using base two arithmetic.
For example:
5 101
1110
101
+ 7 + 111 + 111
12 1100 1100
Binary Addition
Notice in addition:
0 0 1 1
+ 0 + 1 + 0 + 1
0 1 1 10
False True True False
False False False True
Sum
Carry
A B Sum
(1) T (1) T (0) F
(1) T (0) F (1) T
(0) F (1) T (1) T
(0) F (0) F (0) F
Sum and Carry
A B Carry
1 1 1
1 0 0
0 1 0
0 0 0
A B Sum
1 1 0
1 0 1
0 1 1
0 0 0
Sum Circuit
A B Sum
1 1 0
1 0 1
0 1 1
0 0 0
Sum = AB’ + A’B
Carry Circuit
A B Carry
1 1 1
1 0 0
0 1 0
0 0 0
Carry = AB
Half Adder - Sum and Carry
Half Adder
The sum digit is 0 if the sum is even. The sum digit is 1 if the sum is odd. The carry is 1 if the sum is greater than 1. Handles the case where we add two binary
digits with no inward carry.
Full Adder
Takes a carry in and produces the result and carry out.
So, we have 3 inputs and two outputs. Combine two half-adders together with an OR gate
to get a full adder for each binary digit. How many half adders would we need to add two
8-digit binary numbers? How many gates?
Full Adder
Subtraction
A B Sub
1 1 0
1 0 1
0 1 1
0 0 0
A B Borrow
1 1 0
1 0 0
0 1 1
0 0 0
Binary Subtraction
We do binary subtraction like decimal subtraction only the borrowing is done in 2’s instead of 10’s.
122 01111010
- 7 - 00000111
115 01110011
Subtraction as Addition
If A = 01111010, B = 00000111, then using the twos-complement representation for –B, we have –B = 11111000 + 1 = 11111001 so
122 01111010
- 7 + 11111001
115 01110011
Binary Multiplication
Again, just like decimal except we add and multiply in binary.
* 0 1
0 0 0
1 0 1
5 101
x 7 x 111
35 100011
NAND Gates and NOT
This gate represents (A NAND NOT B).
NAND Truth Table
A B A NAND B
T T F
T F T
F T T
F F T
NAND
Fact: All other gates (AND, OR, NOT) can be constructed using only NAND gates
Verification:
Exercises
Fill in a truth table and give a Boolean expression for the following circuits.
Exercises
- How would you create a one binary digit multiplier? A two-digit by one-digit multiplier? A two-digit by two-digit multiplier? * 0 1
0 0 0
1 0 1