Combinational logic design

Содержание

Слайд 2

Introduction Boolean Equations Boolean Algebra From Logic to Gates Multilevel Combinational

Introduction
Boolean Equations
Boolean Algebra
From Logic to Gates
Multilevel Combinational Logic
X’s and Z’s, Oh

My
Karnaugh Maps
Combinational Building Blocks
Timing

Chapter 2 :: Topics

Слайд 3

A logic circuit is composed of: Inputs Outputs Functional specification Timing specification Introduction

A logic circuit is composed of:
Inputs
Outputs
Functional specification
Timing specification

Introduction

Слайд 4

Nodes Inputs: A, B, C Outputs: Y, Z Internal: n1 Circuit

Nodes
Inputs: A, B, C
Outputs: Y, Z
Internal: n1
Circuit elements
E1, E2, E3
Each a

circuit

Circuits

Слайд 5

Combinational Logic Memoryless Outputs determined by current values of inputs Sequential

Combinational Logic
Memoryless
Outputs determined by current values of inputs
Sequential Logic
Has memory
Outputs determined

by previous and current values of inputs

Types of Logic Circuits

Слайд 6

Every element is combinational Every node is either an input or

Every element is combinational
Every node is either an input or connects

to exactly one output
The circuit contains no cyclic paths
Example:

Rules of Combinational Composition

Слайд 7

Functional specification of outputs in terms of inputs Example: S =

Functional specification of outputs in terms of inputs
Example: S = F(A,

B, Cin)
Cout = F(A, B, Cin)

Boolean Equations

Слайд 8

Complement: variable with a bar over it A, B, C Literal:

Complement: variable with a bar over it
A, B, C
Literal: variable

or its complement
A, A, B, B, C, C
Implicant: product of literals
ABC, AC, BC
Minterm: product that includes all input variables
ABC, ABC, ABC
Maxterm: sum that includes all input variables
(A+B+C), (A+B+C), (A+B+C)

Some Definitions

Слайд 9

Y = F(A, B) = All equations can be written in

Y = F(A, B) =

All equations can be written in SOP

form
Each row has a minterm
A minterm is a product (AND) of literals
Each minterm is TRUE for that row (and only that row)
Form function by ORing minterms where the output is TRUE
Thus, a sum (OR) of products (AND terms)

Sum-of-Products (SOP) Form

Слайд 10

Y = F(A, B) = Sum-of-Products (SOP) Form All equations can

Y = F(A, B) =

Sum-of-Products (SOP) Form

All equations can be written

in SOP form
Each row has a minterm
A minterm is a product (AND) of literals
Each minterm is TRUE for that row (and only that row)
Form function by ORing minterms where the output is TRUE
Thus, a sum (OR) of products (AND terms)
Слайд 11

Y = F(A, B) = AB + AB = Σ(1, 3)

Y = F(A, B) = AB + AB = Σ(1, 3)

Sum-of-Products

(SOP) Form

All equations can be written in SOP form
Each row has a minterm
A minterm is a product (AND) of literals
Each minterm is TRUE for that row (and only that row)
Form function by ORing minterms where the output is TRUE
Thus, a sum (OR) of products (AND terms)

Слайд 12

Y = F(A, B) = (A + B)(A + B) =

Y = F(A, B) = (A + B)(A + B) =

Π(0, 2)

All Boolean equations can be written in POS form
Each row has a maxterm
A maxterm is a sum (OR) of literals
Each maxterm is FALSE for that row (and only that row)
Form function by ANDing the maxterms for which the output is FALSE
Thus, a product (AND) of sums (OR terms)

Product-of-Sums (POS) Form

Слайд 13

You are going to the cafeteria for lunch You won’t eat

You are going to the cafeteria for lunch
You won’t eat lunch

(E)
If it’s not open (O) or
If they only serve corndogs (C)
Write a truth table for determining if you will eat lunch (E).

Boolean Equations Example

Слайд 14

You are going to the cafeteria for lunch You won’t eat

You are going to the cafeteria for lunch
You won’t eat lunch

(E)
If it’s not open (O) or
If they only serve corndogs (C)
Write a truth table for determining if you will eat lunch (E).

Boolean Equations Example

Слайд 15

SOP & POS Form SOP – sum-of-products POS – product-of-sums

SOP & POS Form

SOP – sum-of-products
POS – product-of-sums

Слайд 16

SOP – sum-of-products POS – product-of-sums E = (O + C)(O

SOP – sum-of-products
POS – product-of-sums

E = (O + C)(O + C)(O

+ C)
= Π(0, 1, 3)

E = OC
= Σ(2)

SOP & POS Form

Слайд 17

Axioms and theorems to simplify Boolean equations Like regular algebra, but

Axioms and theorems to simplify Boolean equations
Like regular algebra, but simpler:

variables have only two values (1 or 0)
Duality in axioms and theorems:
ANDs and ORs, 0’s and 1’s interchanged

Boolean Algebra

Слайд 18

Boolean Axioms

Boolean Axioms

Слайд 19

B 1 = B B + 0 = B T1: Identity Theorem

B 1 = B
B + 0 = B

T1: Identity Theorem

Слайд 20

B 1 = B B + 0 = B T1: Identity Theorem

B 1 = B
B + 0 = B

T1: Identity Theorem

Слайд 21

B 0 = 0 B + 1 = 1 T2: Null Element Theorem

B 0 = 0
B + 1 = 1

T2: Null Element Theorem

Слайд 22

B 0 = 0 B + 1 = 1 T2: Null Element Theorem

B 0 = 0
B + 1 = 1

T2: Null Element Theorem

Слайд 23

B B = B B + B = B T3: Idempotency Theorem

B B = B
B + B = B

T3: Idempotency Theorem

Слайд 24

B B = B B + B = B T3: Idempotency Theorem

B B = B
B + B = B

T3: Idempotency Theorem

Слайд 25

B = B T4: Identity Theorem

B = B

T4: Identity Theorem

Слайд 26

B = B T4: Identity Theorem

B = B

T4: Identity Theorem

Слайд 27

B B = 0 B + B = 1 T5: Complement Theorem

B B = 0
B + B = 1

T5: Complement Theorem

Слайд 28

B B = 0 B + B = 1 T5: Complement Theorem

B B = 0
B + B = 1

T5: Complement Theorem

Слайд 29

Boolean Theorems Summary

Boolean Theorems Summary

Слайд 30

Boolean Theorems of Several Vars Note: T8’ differs from traditional algebra:

Boolean Theorems of Several Vars

Note: T8’ differs from traditional algebra: OR

(+) distributes over AND (•)

(

)

Слайд 31

Y = AB + AB Simplifying Boolean Equations Example 1:

Y = AB + AB

Simplifying Boolean Equations

Example 1:

Слайд 32

Y = AB + AB = B(A + A) T8 =

Y = AB + AB
= B(A + A) T8
= B(1) T5’

= B T1

Simplifying Boolean Equations

Example 1:

Слайд 33

Y = A(AB + ABC) Example 2: Simplifying Boolean Equations

Y = A(AB + ABC)

Example 2:

Simplifying Boolean Equations

Слайд 34

Y = A(AB + ABC) = A(AB(1 + C)) T8 =

Y = A(AB + ABC)
= A(AB(1 + C)) T8
= A(AB(1)) T2’

= A(AB) T1
= (AA)B T7
= AB T3

Example 2:

Simplifying Boolean Equations

Слайд 35

Y = AB = A + B Y = A +

Y = AB = A + B
Y = A + B

= A B

DeMorgan’s Theorem

Слайд 36

Backward: Body changes Adds bubbles to inputs Forward: Body changes Adds bubble to output Bubble Pushing

Backward:
Body changes
Adds bubbles to inputs
Forward:
Body changes
Adds bubble to output

Bubble Pushing

Слайд 37

What is the Boolean expression for this circuit? Bubble Pushing

What is the Boolean expression for this circuit?

Bubble Pushing

Слайд 38

What is the Boolean expression for this circuit? Y = AB + CD Bubble Pushing

What is the Boolean expression for this circuit?

Y = AB +

CD

Bubble Pushing

Слайд 39

Begin at output, then work toward inputs Push bubbles on final

Begin at output, then work toward inputs
Push bubbles on final output

back
Draw gates in a form so bubbles cancel

Bubble Pushing Rules

Слайд 40

Bubble Pushing Example

Bubble Pushing Example

Слайд 41

Bubble Pushing Example

Bubble Pushing Example

Слайд 42

Bubble Pushing Example

Bubble Pushing Example

Слайд 43

Bubble Pushing Example

Bubble Pushing Example

Слайд 44

Two-level logic: ANDs followed by ORs Example: Y = ABC +

Two-level logic: ANDs followed by ORs
Example: Y = ABC + ABC

+ ABC

From Logic to Gates

Слайд 45

Inputs on the left (or top) Outputs on right (or bottom)

Inputs on the left (or top)
Outputs on right (or bottom)
Gates flow

from left to right
Straight wires are best

Circuit Schematics Rules

Слайд 46

Wires always connect at a T junction A dot where wires

Wires always connect at a T junction
A dot where wires cross

indicates a connection between the wires
Wires crossing without a dot make no connection

Circuit Schematic Rules (cont.)

Слайд 47

Example: Priority Circuit Output asserted corresponding to most significant TRUE input Multiple-Output Circuits

Example: Priority Circuit
Output asserted
corresponding to
most significant
TRUE input

Multiple-Output Circuits

Слайд 48

Example: Priority Circuit Output asserted corresponding to most significant TRUE input Multiple-Output Circuits

Example: Priority Circuit
Output asserted
corresponding to
most significant
TRUE input

Multiple-Output Circuits

Слайд 49

Priority Circuit Hardware

Priority Circuit Hardware

Слайд 50

Don’t Cares

Don’t Cares

Слайд 51

Contention: circuit tries to drive output to 1 and 0 Actual

Contention: circuit tries to drive output to 1 and 0
Actual value

somewhere in between
Could be 0, 1, or in forbidden zone
Might change with voltage, temperature, time, noise
Often causes excessive power dissipation
Warnings:
Contention usually indicates a bug.
X is used for “don’t care” and contention - look at the context to tell them apart

Contention: X

Слайд 52

Floating, high impedance, open, high Z Floating output might be 0,

Floating, high impedance, open, high Z
Floating output might be 0, 1,

or somewhere in between
A voltmeter won’t indicate whether a node is floating
Tristate Buffer

Floating: Z

Слайд 53

Floating nodes are used in tristate busses Many different drivers Exactly

Floating nodes are used in tristate busses
Many different drivers
Exactly one is

active at
once

Tristate Busses

Слайд 54

Boolean expressions can be minimized by combining terms K-maps minimize equations

Boolean expressions can be minimized by combining terms
K-maps minimize equations graphically
PA

+ PA = P

Karnaugh Maps (K-Maps)

Слайд 55

Circle 1’s in adjacent squares In Boolean expression, include only literals

Circle 1’s in adjacent squares
In Boolean expression, include only literals whose

true and complement form are not in the circle
Y = AB

K-Map

Слайд 56

3-Input K-Map

3-Input K-Map

Слайд 57

Y = AB + BC 3-Input K-Map

Y = AB + BC

3-Input K-Map

Слайд 58

Complement: variable with a bar over it A, B, C Literal:

Complement: variable with a bar over it
A, B, C
Literal: variable

or its complement
A, A, B, B, C, C
Implicant: product of literals
ABC, AC, BC
Prime implicant: implicant corresponding to the largest circle in a K-map

K-Map Definitions

Слайд 59

Every 1 must be circled at least once Each circle must

Every 1 must be circled at least once
Each circle must span

a power of 2 (i.e. 1, 2, 4) squares in each direction
Each circle must be as large as possible
A circle may wrap around the edges
A “don't care” (X) is circled only if it helps minimize the equation

K-Map Rules

Слайд 60

4-Input K-Map

4-Input K-Map

Слайд 61

4-Input K-Map

4-Input K-Map

Слайд 62

4-Input K-Map

4-Input K-Map

Слайд 63

K-Maps with Don’t Cares

K-Maps with Don’t Cares

Слайд 64

K-Maps with Don’t Cares

K-Maps with Don’t Cares

Слайд 65

K-Maps with Don’t Cares

K-Maps with Don’t Cares

Слайд 66

Multiplexers Decoders Combinational Building Blocks

Multiplexers
Decoders

Combinational Building Blocks

Слайд 67

Selects between one of N inputs to connect to output log2N-bit

Selects between one of N inputs to connect to output
log2N-bit select

input – control input
Example: 2:1 Mux

Multiplexer (Mux)

Слайд 68

2- Logic gates Sum-of-products form Tristates For an N-input mux, use

2-<>

Logic gates
Sum-of-products form

Tristates
For an N-input mux, use N tristates
Turn on exactly

one to select the appropriate input

Multiplexer Implementations

Слайд 69

Using the mux as a lookup table Logic using Multiplexers

Using the mux as a lookup table

Logic using Multiplexers

Слайд 70

Reducing the size of the mux Logic using Multiplexers

Reducing the size of the mux

Logic using Multiplexers

Слайд 71

N inputs, 2N outputs One-hot outputs: only one output HIGH at once Decoders

N inputs, 2N outputs
One-hot outputs: only one output HIGH at once

Decoders

Слайд 72

Decoder Implementation

Decoder Implementation

Слайд 73

OR minterms Logic Using Decoders

OR minterms

Logic Using Decoders

Слайд 74

ENOUGH FOR TODAY!

ENOUGH FOR TODAY!

Слайд 75

Delay between input change and output changing How to build fast circuits? Timing

Delay between input change and output changing
How to build fast circuits?

Timing

Слайд 76

Propagation delay: tpd = max delay from input to output Contamination

Propagation delay: tpd = max delay from input to output
Contamination delay:

tcd = min delay from input to output

Propagation & Contamination Delay

Слайд 77

Delay is caused by Capacitance and resistance in a circuit Speed


Delay is caused by
Capacitance and resistance in a circuit
Speed of light

limitation
Reasons why tpd and tcd may be different:
Different rising and falling delays
Multiple inputs and outputs, some of which are faster than others
Circuits slow down when hot and speed up when cold

Propagation & Contamination Delay

Слайд 78

Critical (Long) Path: tpd = 2tpd_AND + tpd_OR Short Path: tcd


Critical (Long) Path: tpd = 2tpd_AND + tpd_OR
Short Path: tcd

= tcd_AND

Critical (Long) & Short Paths

Слайд 79

When a single input change causes an output to change multiple times Glitches

When a single input change causes an output to change multiple

times

Glitches

Слайд 80

What happens when A = 0, C = 1, B falls? Glitch Example

What happens when A = 0, C = 1, B falls?

Glitch

Example
Слайд 81

Glitch Example (cont.)

Glitch Example (cont.)

Слайд 82

Fixing the Glitch

Fixing the Glitch