5
2/3/19 1 Introduction to Digital Design Week 5: Design Process, More Gates Yao Zheng Assistant Professor University of Hawaiʻi at Mānoa Department of Electrical Engineering Overview Combinational design process Translate from equation (or table) to circuit. More gates NAND, NOR, XOR, XNOR. Muxes and decoders Decoder: converts input binary number to one high output. Multiplexor: routes one of its N data inputs to its one output, based on binary value of select inputs. Additional considerations Circuit delay and critical path. Active low Inputs. Schematic capture and simulation. 2 3 Combinational Logic Design Process Step Description Step 1: Capture behavior Capture the function Create a truth table or equations, whichever is most natural for the given problem, to describe the desired behavior of each output of the combinational logic. 2A: Create equations This substep is only necessary if you captured the function using a truth table instead of equations. Create an equation for each output by ORing all the minterms for that output. Simplify the equations if desired. 2B: Implement as a gate- based circuit For each output, create a circuit corresponding to the output’s equation. (Sharing gates among multiple outputs is OK optionally.) 2.7 Step 2: Convert to circuit 4 Example: Three 1s Pattern Detector Problem: Detect three consecutive 1s in 8-bit input: abcdefgh 00011101 à 1 10101011 à 0 11110000 à 1 Step 1: Capture the function Truth table or equation? Truth table too big: 2^8=256 rows Equation: create terms for each possible case of three consecutive 1s y = abc + bcd + cde + def + efg + fgh Step 2a: Create equation -- already done Step 2b: Implement as a gate-based circuit bcd def fgh abc cde efg y a b c d e f g h a a 5 Example: Number of 1s Counter Problem: Output in binary on two outputs yz the # of 1s on three inputs • 010 à 01 • 101 à 10 • 000 à 00 Step 1: Capture the function Truth table or equation? Truth table is straightforward Step 2a: Create equations y = a’bc + ab’c + abc’ + abc z = a’b’c + a’bc’ + ab’c’ + abc Optional: Let's simplify y: y = a'bc + ab'c + ab(c' + c) = a'bc + ab'c + ab Step 2b: Implement as a gate-based circuit a b c a b c a b c a b c z a b c a b c a b y a a 6 Example: Number of 1s Counter Video

ee260 2019 spring materials week 05 slides

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ee260 2019 spring materials week 05 slides

2/3/19

1

1

Introduction to Digital Design

Week 5: Design Process, More Gates

Yao ZhengAssistant Professor

University of Hawaiʻi at MānoaDepartment of Electrical Engineering

Overview• Combinational design process

– Translate from equation (or table) to circuit.

• More gates

– NAND, NOR, XOR, XNOR.

• Muxes and decoders– Decoder: converts input binary number to one high output.

– Multiplexor: routes one of its N data inputs to its one output, based on binary value of select inputs.

• Additional considerations– Circuit delay and critical path.

– Active low Inputs.

– Schematic capture and simulation.

2

3

Combinational Logic Design ProcessStep Description

Step 1:Capturebehavior

Capture the function

Create a truth table or equations, whichever is most natural for the given problem, to describe the desired behavior of each output of the combinational logic.

2A: Createequations

This substep is only necessary if you captured the function using a truth table instead of equations. Create an equation for each output by ORing all the minterms for that output. Simplify the equations if desired.

2B: Implementas a gate-based circuit

For each output, create a circuit corresponding to the output’s equation. (Sharing gates among multiple outputs is OK optionally.)

2.7

Step 2:Convertto circuit

4

Example: Three 1s Pattern Detector• Problem: Detect three consecutive 1s

in 8-bit input: abcdefgh• 00011101 à 1 • 10101011 à 0

• 11110000 à 1– Step 1: Capture the function

• Truth table or equation? – Truth table too big: 2^8=256 rows

– Equation: create terms for each possible case of three consecutive 1s

• y = abc + bcd + cde + def + efg + fgh– Step 2a: Create equation -- already

done– Step 2b: Implement as a gate-based

circuit

bcd

def

fgh

abc

cde

efg

y

abc

d

e

f

g

h

aa

5

Example: Number of 1s Counter• Problem: Output in binary on two

outputs yz the # of 1s on three inputs• 010 à 01 • 101 à 10 • 000 à 00

– Step 1: Capture the function• Truth table or equation?

– Truth table is straightforward

– Step 2a: Create equations• y = a’bc + ab’c + abc’ + abc• z = a’b’c + a’bc’ + ab’c’ + abc• Optional: Let's simplify y:

– y = a'bc + ab'c + ab(c' + c) = a'bc + ab'c + ab

– Step 2b: Implement as a gate-based circuit

abc

abc

abc

abc

zabc

abc

ab

y

a

a

6

Example: Number of 1s Counter

Video

Page 2: ee260 2019 spring materials week 05 slides

2/3/19

2

7

Simplifying Notations• Used in previous circuit

abc

ab

abc

(a)

ab

cabc

acb'

(b)a

List inputs multiple timesà Less wiring in drawing

Draw inversion bubble rather than inverter. Or list input as complemented.

8

Example: Keypad Converter• Keypad has 7 outputs

– One per row– One per column

• Key press sets one row and one column output to 1– Press "5" à r2=1, c2=1

• Goal: Convert keypad outputs into 4-bit binary number– 0-9 à 0000 to 1001– * à 1010, # à 1011– nothing pressed: 1111

1

*

3

#

2

4 65

7 98

0

r2

r3

r4

c1 c2 c3

r1

Converter

wxyz

9

Example: Keypad Converter• Step 1: Capture behavior

– Truth table too big (2^7 rows); equations not clear either– Informal table can help

w = r3c2 + r3c3 + r4c1 + r4c3 + r1'r2'r3'r4'c1'c2'c3'x = r2c1 + r2c2 + r2c3 + r3c1 + r1'r2'r3'r4’c1'c2'c3'y = r1c2 + r1c3 + r2c3 + r3c1 + r4c1 + r4c3 + r1'r2'r3'r4'c1'c2'c3'z = r1c1 + r1c3 + r2c2 + r3c1 + r3c3 + r4c3 + r1'r2'r3'r4'c1'c2'c3'

a

a

a

Step 2b: Implement as circuit (note sharable gates) ...

10

Example: Sprinkler Controller• Microprocessor outputs which zone to water (e.g.,

cba=110 means zone 6) and enables watering (e=1)• Decoder should set appropriate valve to 1

d0d1d2d3d4d5d6d7e

c

decoder

Micro-processor

b

a

zone 0 zone 1

243

56

7

d0 = a'b'c'ed1 = a'b'ced2 = a'bc'ed3 = a'bced4 = ab'c'ed5 = ab'ced6 = abc'ed7 = abce

Step 1: Capture behavior

a

Equations seem like a natural fit

11

Example: Sprinkler Controller• Step 2b: Implement as circuit

d0d1d2d3d4d5d6d7e

c

decoder

Micro-processor

b

a

zone 0 zone 1

243

56

7

d0 = a'b'c'ed1 = a'b'ced2 = a'bc'ed3 = a'bced4 = ab'c'ed5 = ab'ced6 = abc'ed7 = abce

abc

e

d0

d1

d2

d3

d4

d5

d6

d7

12

More Gates

• NAND: Opposite of AND (“NOT AND”)

• NOR: Opposite of OR (“NOT OR”)

• XOR: Exactly 1 input is 1, for 2-input XOR. (For more inputs -- odd number of 1s)

• XNOR: Opposite of XOR (“NOT XOR”)

2.8

x0011

y0101

F1110

xy F

x0011

y0101

F1000

xy F

NORNAND

x0011

y0101

F0110

XOR

x0011

y0101

F1001

XNOR1

0

x y

Fx

y

1

0

x

x

y

y

F

NAND NOR

• NAND same as AND with power &

ground switched

• nMOS conducts 0s well, but not 1s

(reasons beyond our scope) – so

NAND is more efficient

• Likewise, NOR same as OR with power/ground switched

• NAND/NOR more common

• AND in CMOS: NAND with NOT

• OR in CMOS: NOR with NOT

a

Page 3: ee260 2019 spring materials week 05 slides

2/3/19

3

13

More Gates: Example Uses

• Aircraft lavatory sign example– S = (abc)’

• Detecting all 0s– Use NOR

• Detecting equality – Use XNOR

• Detecting odd # of 1s– Use XOR– Useful for generating “parity”

bit common for detecting errors

S

Circuitabc

000

1 a0b0

a1b1

a2b2

A=B

14

Completeness of NAND• Any Boolean function can be implemented using just

NAND gates. Why?– Need AND, OR, and NOT

– NOT: 1-input NAND (or 2-input NAND with inputs tied together)

– AND: NAND followed by NOT– OR: NAND preceded by NOTs

– Thus, NAND is a universal gate• Can implement any circuit using just NAND gates

• Likewise for NOR

15

Number of Possible Boolean Functions• How many possible functions of 2

variables?– 22 rows in truth table, 2 choices for each– 2(22) = 24 = 16 possible functions

• N variables– 2N rows– 2(2N) possible functions

a0011

b0101

0 or 1 2 choices0 or 1 2 choices0 or 1 2 choices0 or 1 2 choices

F

24 = 16possible functions

f00000

b0101

a0011

f10001

f20010

f30011

f40100

f50101

f60110

f70111

f81000

f91001

f101010

f111011

f121100

f131101

f141110

f151111

0

a A

ND

b a b

a X

OR

b

a O

R b

a N

OR

b

a X

NO

R b b’ a’

a N

AN

D b 1

16

Decoders and Muxes• Decoder: Popular combinational

logic building block, in addition to logic gates– Converts input binary number to

one high output• 2-input decoder: four possible

input binary numbers– So has four outputs, one for each

possible input binary number• Internal design

– AND gate for each output to detect input combination

• Decoder with enable e– Outputs all 0 if e=0– Regular behavior if e=1

• n-input decoder: 2n outputs

2.9

i0i1

d0d1d2d3 1

11

000

i0i1

d0d1d2d3 0

00

001

i0i1

d0d1d2d3

i0i1

d0d1d2d30

01

010

010

100

i0i1

d0d1d2d3e 1

1

11

000

e

i0i1

d0d1d2d3 0

11

000

0i0

d0

d1

d2

d3

i1

i1’i0’

i1’i0

i1i0’

i1i0

a a

17

Decoder Example• New Year’s Eve

Countdown Display– Microprocessor counts

from 59 down to 0 in binary on 6-bit output

– Want illuminate one of 60 lights for each binary number

– Use 6x64 decoder• 4 outputs unused

d0d1d2d3

i0i1i2i3i4i5

e

6x64dcd

d58d59d60d61d62d63

0 HappyNew Year

123

5859

a

010000

0010

00

2 2 1100000

0100

00

1000000

1000

00

0 0

Processor

18

Decoder Simulation

Link

Page 4: ee260 2019 spring materials week 05 slides

2/3/19

4

19

Decoder Questions

Video

20

Multiplexor (Mux)• Mux: Another popular combinational building block

– Routes one of its N data inputs to its one output, based on binary value of select inputs

• 4 input mux à needs 2 select inputs to indicate which input to route through

• 8 input mux à 3 select inputs • N inputs à log2(N) selects

– Like a rail yard switch

21

Mux Internal Design

s0

di0

i1

2×1

i1i0

s01

d

2×1

i1i0

s00

d

2×1

i1i0

s0

d

0

i0 (1*i0=i0)i0 (0+i0=i0)1

0

2x1 mux

i04× 1

i2i1

i3s1 s0

d

s0

d

i0

i1

i2

i3

s1

4x1 mux

0

a

22

Mux Example• City mayor can set four switches up or down, representing

his/her vote on each of four proposals, numbered 0, 1, 2, 3• City manager can display any such vote on large green/red

LED (light) by setting two switches to represent binary 0, 1, 2, or 3

• Use 4x1 mux

i04x1

i2

i1

i3

s1 s0

d

1

2

3

4

Mayor’s switches

manager'sswitches

Green/RedLED

on/off

a

Proposal

23

Muxes Commonly Together – N-bit Mux

• Ex: Two 4-bit inputs, A (a3 a2 a1 a0), and B (b3 b2 b1 b0)– 4-bit 2x1 mux (just four 2x1 muxes sharing a select line) can select

between A or B

i0

s0i1

2x 1d

i0

s0i1

2x 1d

i0

s0i1

2x 1d

i0

s0i1

2x 1d

a3b3

I0

s0

s0

I1

4-bit2x1

D CA

B

a2b2

a1b1

a0b0

s0

4C

44

4

c3

c2

c1

c0

is shortfor

Simplifyingnotation:

24

N-bit Mux Example

• Four possible display items– Temperature (T), Average miles-per-gallon (A), Instantaneous mpg (I), and

Miles remaining (M) – each is 8-bits wide– Choose which to display on D using two inputs x and y

• Pushing button sequences to the next item– Use 8-bit 4x1 mux

I08-bit4x1

I2

I1

I3s1 s0

D

x y

8

8 D

TAIM

88

8

button

We'll designthis later

a

To the above-mirror display

From the car's central computer

Page 5: ee260 2019 spring materials week 05 slides

2/3/19

5

25

Mux Questions

Video

26

Additional ConsiderationsNon-Ideal Gate Behavior -- Delay

• Real gates have some delay– Outputs don’t change immediately after inputs change

xy

(a)time

0

0

0

1

1

1

x

y

F

F

(b)time

0

0

0

1

1

1

x

y

F

(c)time

0

0

0

1

1

1

x

y

F(1.8 V)

(0 V)

ideal more realistic

with delay but otherwise ideal

a a a

2.10

27

Circuit Delay and Critical Path

• Wires also have delay• Assume gates and wires have delays as shown• Path delay – time for input to affect output• Critical path – path with longest path delay• Circuit delay – delay of critical path

k

wp

s

t

BeltWarn

1 ns 1 ns0.5 ns

1+1+1+1+1 = 5 ns

1 ns1 ns

1 ns1 ns

1 ns

1 ns

1+0.5+1+1+1+1+1 = 6.5 ns1+1+1 = 3 ns

Critical path delay = 6.5 nsHence, circuit’s delay is 6.5 ns

1 nsa

28

Active Low Inputs• Data inputs: flow through component (e.g., mux data

input)• Control input: influence component behavior

– Normally active high – 1 causes input to carry out its purpose– Active low – Instead, 0 causes input to carry out its purpose– Example: 2x4 decoder with active low enable

• 1 disables decoder, 0 enables– Drawn using inversion bubble i0

i1

d0

d1

d2

d3e e 1

1

1

1

0

0

0

i0

i1

d0

d1

d2

d30

1

1

0

0

0

(a) (b)0

29

Schematic Capture and Simulation

• Schematic capture– Computer tool for user to capture logic circuit graphically

• Simulator– Computer tool to show what circuit outputs would be for given inputs

• Outputs commonly displayed as waveform

SimulateSimulate

d3

d2

d1

d0

i0

i1Outputs

Inputs

d3

d2

d1

d0

i0

i1Outputs

Inputs a

Summary• Combinational design process

– Translate from equation (or table) to circuit.

• More gates

– NAND, NOR, XOR, XNOR.

• Muxes and decoders– Decoder: converts input binary number to one high output.

– Multiplexor: routes one of its N data inputs to its one output, based on binary value of select inputs.

• Additional considerations– Circuit delay and critical path.

– Active low Inputs.

– Schematic capture and simulation.

30