• No results found

CSE140: Components and Design Techniques for Digital Systems

N/A
N/A
Protected

Academic year: 2021

Share "CSE140: Components and Design Techniques for Digital Systems"

Copied!
68
0
0

Loading.... (view fulltext now)

Full text

(1)

1

CSE140: Components and Design Techniques for Digital Systems

Tajana Simunic Rosing

(2)

Sources: TSR, Katz, Boriello & Vahid

2

Where we are now…

• What we covered thus far:

– Number representations – Logic gates

– Boolean algebra

– Introduction to CMOS

• HW#2 due, HW#3 assigned

• Where we are going:

– Logic representations – SOP and POS

– K-maps

– Algorithm for simplification

(3)

3

Combinational Circuit Introduction

Combinational digital circuit a 1

b

1 F 0

a 1

b

? F 0

• We’ll start with a simple form of circuit:

– Combinational circuit

• A digital circuit whose outputs depend solely on the present combination of the circuit inputs’

values

• Built out of simple components: switches and gates

Digital circuit

Sequential digital circuit

(4)

Sources: TSR, Katz, Boriello & Vahid

4

Combinational Logic Design Process

Step Description Step 1 Capture the

function

Create a truth table or equations to describe the desired behavior of the combinational logic.

Step 2 Convert to equations

This step is only necessary if you captured the function using a truth table instead of equations.

Simplify the equations if desired.

Step 3 Implement as a gate- based circuit

For each output, create a circuit corresponding to the output’s equation.

2.7

(5)

5

Example: Three 1s Detector

• Problem: Detect 3 consecutive 1s in 8-bit input: abcdefgh

• 00011101 

• 01111000 

• 10101011 

– Step 1: Capture the function

• Truth table or equation?

– Step 2: Convert to equation – Step 3: Implement with gates

bcd

def

fgh abc

cde

efg

y b a

c

d

e

f

g

h

a

(6)

Sources: TSR, Katz, Boriello & Vahid

6

Example: Seat Belt Warning Light System

• Design circuit for warning light

• Sensors

– s=1: seat belt fastened – k=1: key inserted

– p=1: person in seat

• Capture logic equation

– What are conditions for warning light to go on?

• Convert equation to circuit

(7)

7

Example: Number of 1s Count

• Problem: Output in binary on

two outputs yz the number of 1s on three inputs

• 010 

• 101 

• 000 

– Step 1: Capture the function

• Truth table or equation?

– Step 2: Convert to equation

– Step 3: Implement as gates

b a c b a c b a c b a c

z b a

c b a c a b

y

(8)

Sources: TSR, Katz, Boriello & Vahid

8

Design example: 1-bit binary adder

• Inputs: A, B, Carry-in

• Outputs: Sum, Carry-out

A B

Cin Cout

A B Cin Cout S S 0 0 0

0 0 1 0 1 0

0 1 1

1 0 0

1 0 1 1 1 0

1 1 1

A A A A A B B B B B S S S S S

Cin Cout

(9)

9

CSE140: Components and Design Techniques for Digital Systems

Representation of logic functions

Tajana Simunic Rosing

(10)

Sources: TSR, Katz, Boriello & Vahid

10

Canonical Form -- Sum of Minterms

• Truth tables are too big for numerous inputs

• Use standard form of equation instead

– Known as canonical form

– Regular algebra: group terms of polynomial by power

• ax2 + bx + c (3x2 + 4x + 2x2 + 3 + 1 --> 5x2 + 4x + 4) – Boolean algebra: create a sum of minterms

• Minterm: product term with every literal (e.g. a or a’) appearing exactly once

Determine if F(a,b)=ab+a’ is same function as F(a,b)=a’b’+a’b+ab, by converting the first equation to the canonical form

(11)

11

A B C F F’

0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0

F =

F’ = A’B’C’ + A’BC’ + AB’C’

Sum-of-products canonical forms

• Also known as disjunctive normal form

• Minterm expansion:

F = 001 011 101 110 111 + A’BC + AB’C + ABC’ + ABC A’B’C

(12)

Sources: TSR, Katz, Boriello & Vahid

12

short-hand notation for minterms of 3 variables

A B C minterms 0 0 0 A’B’C’ m0 0 0 1 A’B’C m1 0 1 0 A’BC’ m2 0 1 1 A’BC m3 1 0 0 AB’C’ m4 1 0 1 AB’C m5 1 1 0 ABC’ m6 1 1 1 ABC m7

F in canonical form:

F(A, B, C) = m(1,3,5,6,7)

= m1 + m3 + m5 + m6 + m7

= A’B’C + A’BC + AB’C + ABC’ + ABC canonical form  minimal form

F(A, B, C) = A’B’C + A’BC + AB’C + ABC + ABC’

= (A’B’ + A’B + AB’ + AB)C + ABC’

= ((A’ + A)(B’ + B))C + ABC’

= C + ABC’

= ABC’ + C

= AB + C

Sum-of-products canonical form (cont’d)

• Product minterm

– ANDed product of literals – input combination for which output is 1 – each variable appears exactly once, true or inverted (but not both)

(13)

13

A B C F F’

0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0

F = 000 010 100 F =

F’ = (A + B + C’) (A + B’ + C’) (A’ + B + C’) (A’ + B’ + C) (A’ + B’ + C’)

Product-of-sums canonical form

• Also known as conjunctive normal form

• Also known as maxterm expansion

• Implements “zeros” of a function

(A + B + C) (A + B’ + C) (A’ + B + C)

(14)

Sources: TSR, Katz, Boriello & Vahid

14

A B C maxterms

0 0 0 A+B+C M0

0 0 1 A+B+C’ M1 0 1 0 A+B’+C M2 0 1 1 A+B’+C’ M3 1 0 0 A’+B+C M4 1 0 1 A’+B+C’ M5 1 1 0 A’+B’+C M6 1 1 1 A’+B’+C’ M7 short-hand notation for

maxterms of 3 variables

F in canonical form:

F(A, B, C) = M(0,2,4)

= M0 • M2 • M4

= (A + B + C) (A + B’ + C) (A’ + B + C) canonical form  minimal form

F(A, B, C) = (A + B + C) (A + B’ + C) (A’ + B + C)

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

= (A + C) (B + C)

Product-of-sums canonical form (cont’d)

• Sum term (or maxterm)

– ORed sum of literals – input combination for which output is false – each variable appears exactly once, true or inverted (but not both)

(15)

15

Mapping between canonical forms

• Minterm to maxterm conversion

– use maxterms whose indices do not appear in minterm expansion – e.g., F(A,B,C) = m(1,3,5,6,7)

• Maxterm to minterm conversion

– use minterms whose indices do not appear in maxterm expansion – e.g., F(A,B,C) = M(0,2,4)

• Minterm expansion of F to minterm expansion of F’

– use minterms whose indices do not appear – e.g., F(A,B,C) = m(1,3,5,6,7) F’(A,B,C) =

• Maxterm expansion of F to maxterm expansion of F’

– use maxterms whose indices do not appear – e.g., F(A,B,C) = M(0,2,4) F’(A,B,C) =

• Minterm to maxterm conversion

– use maxterms whose indices do not appear in minterm expansion – e.g., F(A,B,C) = m(1,3,5,6,7) = M(0,2,4)

• Maxterm to minterm conversion

– use minterms whose indices do not appear in maxterm expansion – e.g., F(A,B,C) = M(0,2,4) = m(1,3,5,6,7)

• Minterm expansion of F to minterm expansion of F’

– use minterms whose indices do not appear

– e.g., F(A,B,C) = m(1,3,5,6,7) F’(A,B,C) = m(0,2,4)

• Maxterm expansion of F to maxterm expansion of F’

– use maxterms whose indices do not appear

– e.g., F(A,B,C) = M(0,2,4) F’(A,B,C) = M(1,3,5,6,7)

(16)

Sources: TSR, Katz, Boriello & Vahid

16

A B C D W X Y Z

0 0 0 0 0 0 0 1

0 0 0 1 0 0 1 0

0 0 1 0 0 0 1 1

0 0 1 1 0 1 0 0

0 1 0 0 0 1 0 1

0 1 0 1 0 1 1 0

0 1 1 0 0 1 1 1

0 1 1 1 1 0 0 0

1 0 0 0 1 0 0 1

1 0 0 1 0 0 0 0

1 0 1 0 X X X X

1 0 1 1 X X X X

1 1 0 0 X X X X

1 1 0 1 X X X X

1 1 1 0 X X X X

1 1 1 1 X X X X

off-set of W

these inputs patterns should never be encountered in practice – "don’t care" about associated output values, can be exploited in minimization

Incompletely specified functions

• Example: binary coded decimal increment by 1

– BCD digits encode the decimal digits 0 – 9

don’t care (DC) set of W on-set of W

Don’t cares and canonical forms

– so far, only represented on-set – also represent don’t-care-set

– need two of the three sets (on-set, off-set, dc-set)

(17)

17

canonical sum-of-products

minimized sum-of-products

canonical product-of-sums

minimized product-of-sums

F1

F2

F3 B

A

C

F4

Alternative two-level implementations of

F = AB + C

(18)

Sources: TSR, Katz, Boriello & Vahid

18

CSE140: Components and Design Techniques for Digital Systems

Logic simplification

Tajana Simunic Rosing

Sources: Katz, Boriello & Vahid

(19)

19

A B F 0 0 1 0 1 0 1 0 1 1 1 0

B has the same value in both on-set rows – B remains

A has a different value in the two rows – A is eliminated

F = A’B’+AB’ = (A’+A)B’ = B’

Key to simplification: the uniting theorem

• Uniting theorem: A (B’ + B) = A

• Essence of simplification of two-level logic

– find two element subsets of the ON-set where only one variable changes its value – this single varying variable can be eliminated and a single product term used to represent both elements

(20)

Sources: TSR, Katz, Boriello & Vahid

20

1-cube

X

0 1

Boolean cubes

• Visual technique for applying the uniting theorem

• n input variables = n-dimensional "cube"

2-cube X

Y

11

00 01

10

3-cube

X Y Z 000

111

101 4-cube

W X Y Z 0000

1111

1000 0111

(21)

21

A B F 0 0 1 0 1 0 1 0 1 1 1 0

ON-set = solid nodes OFF-set = empty nodes DC-set = 'd nodes

two faces of size 0 (nodes)

combine into a face of size 1(line)

A varies within face, B does not this face represents the literal B'

Mapping truth tables onto Boolean cubes

• Uniting theorem combines two “faces" of a cube into a larger “face"

• Example:

A B

11

00 01

10 F

(22)

Sources: TSR, Katz, Boriello & Vahid

22

A B Cin Cout

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

(A'+A)BCin

AB(Cin'+Cin)

A(B+B')Cin

Cout = BCin+AB+ACin

the on-set is completely covered by the combination (OR) of the subcubes of lower dimensionality - note that “111”

is covered three times

Three variable example

• Binary full-adder carry-out logic

A B C 000

111

101

(23)

23

F(A,B,C) = m(4,5,6,7)

on-set forms a square - a cube of dimension 2

This subcube represents the literal A

Higher dimensional cubes

• Sub-cubes of higher dimension than 2

A B C 000

111

101 100 001

010 011

110

In a 3-cube (three variables):

– a 0-cube, i.e., a single node, yields a term in 3 literals

– a 1-cube, i.e., a line of two nodes, yields a term in 2 literals – a 2-cube, i.e., a plane of four nodes, yields a term in 1 literal – a 3-cube, i.e., a cube of eight nodes, yields a constant term "1"

In general,

(24)

Sources: TSR, Katz, Boriello & Vahid

24

A B F 0 0 1 0 1 0 1 0 1 1 1 0

Karnaugh maps

• Flat map of Boolean cube

– wrap–around at edges

– hard to draw and visualize for more than 4 dimensions – virtually impossible for more than 6 dimensions

• Alternative to truth-tables to help visualize adjacencies

– guide to applying the uniting theorem

– on-set elements with only one variable changing value are adjacent unlike the situation in a linear truth-table

0 2

1 3

0 1 B A

0 1

1

0 0 1

(25)

25

Karnaugh maps (cont’d)

• Numbering scheme based on Gray–code

– e.g., 00, 01, 11, 10

– only a single bit changes in code for adjacent map cells

0 2

1 3

00 01 C AB

0 1

6 4

7 5

11 10

C

B

A

0 2

1 3

6 4

7 5

C

B

A

0 4

1 5

12 8

13 9 D

A

3 7

2 6

15 11

14 10

C A B

B C 000

111

101 100 001

010 011

110

(26)

Sources: TSR, Katz, Boriello & Vahid

26

Karnaugh map examples

• F =

• Cout =

• f(A,B,C) = m(0,4,5,7)

0 0

0 1

1 0

1 1

Cin

B

A

1 1

0 0

B

A

1 0

0 0

0 1

1 1

C

B

A

0 2

1 3

00 01 C AB

0 1

6 4

7 5

11 10

C

B

A

(27)

27

CSE140: Components and Design Techniques for Digital Systems

Logic simplification cont.

Tajana Simunic Rosing

(28)

Sources: TSR, Katz, Boriello & Vahid

Total students enrolled : 151

# Solutions received : 137

Max score : 100.00

Min score (w/o 0s) : 30.00

Mean score : 86.03

Median score : 89.00

CSE140a HW2 Stats

buckets # students students (%)

0 ~ 5 14 9.27%

5 ~ 10 0 0.00%

10 ~ 15 0 0.00%

15 ~ 20 0 0.00%

20 ~ 25 0 0.00%

25 ~ 30 1 0.66%

30 ~ 35 0 0.00%

35 ~ 40 0 0.00%

40 ~ 45 0 0.00%

45 ~ 50 1 0.66%

50 ~ 55 3 1.99%

55 ~ 60 0 0.00%

60 ~ 65 4 2.65%

65 ~ 70 6 3.97%

70 ~ 75 11 7.28%

75 ~ 80 18 11.92%

80 ~ 85 11 7.28%

85 ~ 90 29 19.21%

90 ~ 95 11 7.28%

95 ~ 100 42 27.81%

0.0%

10.0%

20.0%

30.0%

0 ~ 5 5 ~ 10 10 ~ 15 15 ~ 20 20 ~ 25 25 ~ 30 30 ~ 35 35 ~ 40 40 ~ 45 45 ~ 50 50 ~ 55 55 ~ 60 60 ~ 65 65 ~ 70 70 ~ 75 75 ~ 80 80 ~ 85 85 ~ 90 90 ~ 95 95 ~ 100

Students (%)

Bucket of Points

HW2 Grade Distribution

(29)

29

Where we are now…

• What we covered thus far:

– Chap 1

– Logic representations – SOP and POS

– K-maps

• HW#3 due, HW#4 assigned

• Midterm #1 next week on Th

• Where we are going:

– K-maps – more examples – Mux and Demux

(30)

Sources: TSR, Katz, Boriello & Vahid

30

find the smallest number of the largest possible subcubes to cover the ON-set

(fewer terms with fewer inputs per term)

Karnaugh map: 4-variable example

• F(A,B,C,D) = m(0,2,3,5,6,7,8,10,11,14,15) F =

D A

B

A B C D 0000

1111

1000 0111

1 0

0 1

0 1

0 0

1 1

1 1

1 1

1 1

C

(31)

31

Karnaugh maps: don’t cares

• f(A,B,C,D) = m(1,3,5,7,9) + d(6,12,13)

without don't cares with don’t cares

f = f =

0 0 1 1

X 0

X 1

D A

1 1 0 X

0 0

0 0

B C

0 0

1 1

X 0

X 1

D A

1 1 0 X

0 0

0 0

B C

don't cares can be treated as 1s or 0s depending on which is more advantageous

(32)

Sources: TSR, Katz, Boriello & Vahid

32

Another Example

• F = m(0, 2, 7, 8, 14, 15) + d(3, 6, 9, 12, 13)

1 0

0 0

X 1

X X

X 1

1 X

1 0

1 0

D A

B C

(33)

33

we'll need a 4-variable Karnaugh map for each of the 3 output functions

Design example: two-bit comparator

block diagram LT

EQ GT

A B < C D A B = C D A B > C D A B

C D N1

N2

A B C D LT EQ GT 0 0 0 0 0 1 0

0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 truth table and

(34)

Sources: TSR, Katz, Boriello & Vahid

34

A' B' D + A' C + B' C D

B C' D' + A C' + A B D' LT =

EQ = GT =

K-map for EQ

K-map for LT K-map for GT

Design example: two-bit comparator (cont’d)

0 0

1 0

0 0

0 0

D A

1 1

1 1

0 1

0 0

B C

1 0

0 1

0 0

0 0

D A

0 0

0 0

1 0

0 1

B C

0 1

0 0

1 1

1 1

D A

0 0

0 0

0 0

1 0

B C

= (A xnor C) • (B xnor D)

LT and GT are similar (flip A/C and B/D) A' B' C' D' + A' B C' D + A B C D + A B' C D’

(35)

35

block diagram truth table and

4-variable K-map for each of the 4 output functions

A2 A1 B2 B1 P8 P4 P2 P1 0 0 0 0 0 0 0 0

0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1

Design example: 2x2-bit multiplier

P1 P2 P4 P8 A1

A2 B1 B2

(36)

Sources: TSR, Katz, Boriello & Vahid

36

K-map for P8 K-map for P4

K-map for P2 K-map for P1

Design example: 2x2-bit multiplier (cont’d)

0 0

0 0

0 0

0 0

B1 A2

0 0

0 0

0 1

1 1

A1 B2

0 0

0 1

0 0

1 0

B1 A2

0 1

0 0

1 0

0 0

A1 B2

0 0

0 0

0 0

1 1

B1 A2

0 1

0 1

0 1

1 0

A1 B2

0 0

0 0

0 0

0 0

B1 A2

0 0

0 0

1 0

0 0

A1 B2

(37)

37

I8 I4 I2 I1 O8 O4 O2 O1

0 0 0 0 0 0 0 1

0 0 0 1 0 0 1 0

0 0 1 0 0 0 1 1

0 0 1 1 0 1 0 0

0 1 0 0 0 1 0 1

0 1 0 1 0 1 1 0

0 1 1 0 0 1 1 1

0 1 1 1 1 0 0 0

1 0 0 0 1 0 0 1

1 0 0 1 0 0 0 0

1 0 1 0 X X X X

1 0 1 1 X X X X

1 1 0 0 X X X X

1 1 0 1 X X X X

1 1 1 0 X X X X

1 1 1 1 X X X X

block diagram truth table and

4-variable K-map for each of the 4 output functions O1

O2 O4 O8 I1

I2 I4 I8

Design example: BCD + 1

(38)

Sources: TSR, Katz, Boriello & Vahid

38

O8 O4

O2 O1

Design example: BCD + 1 (cont’d)

0 0

0 0

X 1

X 0

I1 I8

0 1

0 0

X X

X X

I4 I2

0 0

1 1

X 0

X 0

I1 I8

0 0

1 1

X X

X X

I4 I2

0 1

0 1

X 0

X 0

I1 I8

1 0

0 1

X X

X X

I4 I2

1 1

0 0

X 1

X 0

I1 I8

0 0

1 1

X X

X X

I4 I2

(39)

39

CSE140: Components and Design Techniques for Digital Systems

Muxes and demuxes

Tajana Simunic Rosing

(40)

Sources: TSR, Katz, Boriello & Vahid

Contention: X

A = 1

Y = X B = 0

• 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

(41)

Transmission Gate:

Mux/Tristate building block

A B

EN

EN

• nMOS pass 1’s poorly

• pMOS pass 0’s poorly

• Transmission gate is a better switch

– passes both 0 and 1 well

• When EN = 1, the switch is ON:

– EN = 0 and A is connected to B

• When EN = 0, the switch is OFF:

– A is not connected to B

(42)

Sources: TSR, Katz, Boriello & Vahid

Floating: Z

E A Y

0 0 Z

0 1 Z

1 0 0

1 1 1

A

E

Y

• 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

(43)

Tristate Busses

en1 to bus from bus

en2 to bus from bus

en3 to bus from bus

en4 to bus from bus

shared bus

processor

video

Ethernet

memory

• Floating nodes are used in tristate busses

– many different drivers, but only one is active at once

(44)

Sources: TSR, Katz, Boriello & Vahid

2:1 Multiplexer or Mux

• Selects between one of N inputs to connect to output

• log2N-bit select input – control input

• Example: 2:1 Mux

Y

0 0

0 1

1 0

1 1

0 1 0 1 0

0 0 0

0 0

0 1

1 0

1 1

1 1 1 1

0 0 1 1 0 1

S D0

Y D1

D1 D0

S Y

0

1 DD10 S

D1

Y D0

S

S 00 01

0

1 Y

11 10 D0 D1

0

0 0

1 1

1 1

0

Y = D0S + D1S

Y D0

S

D1

Logic gates Tristates Pass gates

(45)

45

2 -1

I0 I1 I2 I3 I4 I5 I6 I7

A B C

mux 8:1 Z I0 I1

I2 I3

A B

mux 4:1 Z I0 I1

A

mux 2:1 Z

k=0 n

Multiplexers

• 2:1 mux: Z = A'I0 + AI1

• 4:1 mux: Z = A'B'I0 + A'BI1 + AB'I2 + ABI3

• 8:1 mux: Z = A'B'C'I0 + A'B'CI1 + A'BC'I2 + A'BCI3 + AB'C'I4 + AB'CI5 + ABC'I6 + ABCI7

• In general: Z =  (mkIk)

– in minterm shorthand form for a 2n:1 Mux

(46)

Sources: TSR, Katz, Boriello & Vahid

A B Y

0 0 0

0 1 0

1 0 0

1 1 1

Y = AB

00 01 Y

10 11

A B

• Using the mux as a lookup table

Logic using Multiplexers

(47)

A B Y

0 0 0

0 1 0

1 0 0

1 1 1

Y = AB

A Y

0 1

0 0

1 A

B

Y B

• Reducing the size of the mux

Logic using Multiplexers

(48)

Sources: TSR, Katz, Boriello & Vahid

48

C0 C1 C2 Function Comments

0 0 0 1 always 1

0 0 1 A + B logical OR 0 1 0 (A • B)' logical NAND 0 1 1 A xor B logical xor 1 0 0 A xnor B logical xnor 1 0 1 A • B logical AND 1 1 0 (A + B)' logical NOR

1 1 1 0 always 0

Mux example: Logical function unit

C2 C0 C1

0 1 2 3 4 5 6 7 S2

8:1 MUX

S1 S0 F

(49)

49

Mux as general-purpose logic

• A 2n-1:1 multiplexer can implement any function of n variables – with n-1 variables used as control inputs and

– the data inputs tied to the last variable or its complement

• Example: F(A,B,C) = AC + BC' + A'B‘C

(50)

Sources: TSR, Katz, Boriello & Vahid

2:4 Decoder A1

A0

Y3 Y2 Y1 Y0 00

0110 11

0 0

0 1

1 0

1 1

0 0 0 1

Y3 Y2 Y1 Y0 A0

A1

0 0 1 0

0 1 0 0

1 0 0 0

• N inputs, 2N outputs

• One-hot outputs: only one output HIGH at once

Demux or Decoder

(51)

51

1:2 Decoder:

O0 = G  S’

O1 = G  S

2:4 Decoder:

O0 = G  S1’  S0’

O1 = G  S1’  S0 O2 = G  S1  S0’

O3 = G  S1  S0

3:8 Decoder:

O0 = G  S2’  S1’  S0’

O1 = G  S2’  S1’  S0 O2 = G  S2’  S1  S0’

O3 = G  S2’  S1  S0 O4 = G  S2  S1’  S0’

O5 = G  S2  S1’  S0 O6 = G  S2  S1  S0’

O7 = G  S2  S1  S0

Decoder: logic equations

• Decoders/demultiplexers

– control inputs (called “selects” (S)) represent binary index of output to which the input is connected

– data input usually called “enable” (G)

(52)

Sources: TSR, Katz, Boriello & Vahid

Y3

Y2

Y1

Y0 A0

A1

Decoder Implementation

(53)

2:4 Decoder A

B

00 0110 11

Y = AB + AB

Y

AB AB AB AB Minterm

= A  B

• OR minterms

Logic Using Decoders

A'B'C' A'B'C A'BC' A'BC AB'C' AB'C ABC' ABC

A B C 0 1 2 3 4 5 6 7 S2

3:8 DEC

S1 S0

“1”

(54)

Sources: TSR, Katz, Boriello & Vahid

54

Example of demux as general-purpose logic

F1 = A'BC'D + A'B'CD + ABCD F2 = ABC'D' + ABC

F3 = (A' + B' + C' + D')

A B

0 A'B'C'D' 1 A'B'C'D 2 A'B'CD' 3 A'B'CD 4 A'BC'D' 5 A'BC'D 6 A'BCD'

7 A'BCD

8 AB'C'D' 9 AB'C'D 10 AB'CD' 11 AB'CD 12 ABC'D' 13 ABC'D 14 ABCD' 15 ABCD 4:16

Enable DEC

C D

(55)

55

Another example

• F(A,B,C) = M(0,2,4)

(56)

Sources: TSR, Katz, Boriello & Vahid

56

CSE140: Components and Design Techniques for Digital Systems

Timing and hazards

Tajana Simunic Rosing

(57)

A

Y

Time

delay

A Y

• Delay between input change and output changing

• How to build fast circuits?

Timing

(58)

Sources: TSR, Katz, Boriello & Vahid

A Y

Time

A Y

tpd

tcd

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

• Contamination delay: tcd = min delay from input to output

Propagation & Contamination Delay

(59)

• 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

(60)

Sources: TSR, Katz, Boriello & Vahid

A B C

D Y

Critical Path

Short Path n1

n2

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

Critical (Long) & Short Paths

(61)

A B C

Y

00 01

1 Y

11 10

AB 1 1

0 1

0 1

0 0 C

0

Y = AB + BC

• Glitch occurs when an input change causes multiple output changes;

circuit with a potential for a glitch has a hazard

• There are 3 types of hazards:

• Static-0 : output should be 0 but has a 1 glitch

• Static-1 : output should be 1 but has a 0 glitch

• Dynamic: transition 0->1 or 1->0 with a glitch

• Example:

Glitches or Hazards

A = 0 B = 1 0 C = 1

Y = 1 0 1

Short Path

Critical Path

B

Y

1 0 0 1

glitch

n1 n2

n2 n1

What happens if A = 0, C = 1, &

B falls?

(62)

Sources: TSR, Katz, Boriello & Vahid

00 01

1 Y

11 10 AB

1 1

0 1

0 1

0 0 C

0

Y = AB + BC + AC AC

B = 1 0

Y = 1 A = 0

C = 1

Fixing a hazard

(63)

63

Another example

• F(A,B,C,D)=m(1,3,5,7,8,9,12,13)

• Test two single bit input transitions:

– 1100 -> 1101 – 1100 -> 0101

A C’

D

Z

D

0 0

1 1

1 1

1 1

A

1 1 0 0

0 0

0 0

B C

(64)

Sources: TSR, Katz, Boriello & Vahid

64

CSE140: Components and Design Techniques for Digital Systems

Two and Multilevel logic implementation

Tajana Simunic Rosing

References

Related documents

combining the 10 synthetic DEMs generated from this input. b) and c) Volume and height: Solid black and black dashed lines as a), with black

Q’ negative edge-triggered D flip-flop (D-FF) 4-5 gate delays. must respect setup and hold time constraints

Draw the logic diagram and the truth table for a 3 input AND gate using only

CSE140: Components and Design Techniques for Digital Systems2. Two and Multilevel

Figure 1.18 shows an example of cascade control where the primary controller, TC, is used to measure the output temperature, T2, and compare this with the Setpoint value of the TC,

When you are ordering replacement parts, please refer to this Parts Catalogue and quote both part numbers and part names correctly.. Modifications or additions which have been

Exploring One-Step Equations with Double Number Lines Using Double Number Lines to Solve One-Step Addition Equations (No Type-In). Using Double Number Lines to Solve

The range vertical differential component (differential tropospheric delay between aircraft and ground assuming aircraft and ground are not at the same altitude but are