70
snick snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville and others 1

Snick snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

  • View
    217

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

snick

snack

CPSC 121: Models of Computation2010 Winter Term 2

Sequential Circuits (“Mealy Machines”)

Steve Wolfman, based on notes by Patrice Belleville and others

1

Page 2: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Outline

• Prereqs, Learning Goals, and Quiz Notes

• Problems and Discussion– A Pushbutton Light Switch– Memory and Events: D Latches & Flip-Flops– General Implementation of DFAs

(with a more complex DFA as an example)– How Powerful are DFAs?

• Next Lecture Notes

2

Page 3: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Learning Goals: Pre-Class

We are mostly departing from the readings for next class to talk about a new kind of circuit on our way to a full computer: sequential circuits.

The pre-class goals are to be able to:– Trace the operation of a deterministic finite-state

automaton (represented as a diagram) on an input, including indicating whether the DFA accepts or rejects the input.

– Deduce the language accepted by a simple DFA after working through multiple example inputs.

3

Page 4: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Learning Goals: In-Class

By the end of this unit, you should be able to:– Translate a DFA into a sequential circuit that

implements the DFA.– Explain how and why each part of the

resulting circuit works.

4

Page 5: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Where We Are inThe Big Stories

Theory

How do we model computational systems?

Now: With our powerful modelling language (pred logic), we can prove things like universality of NAND gates for combinational circuits.

Our new model (DFAs) are sort of full computers.

Hardware

How do we build devices to compute?

Now: Learning to build a new kind of circuit with

memory that will be the key new feature we need to build full-blown computers!

5

Page 6: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Outline

• Prereqs, Learning Goals, and Quiz Notes

• Problems and Discussion– A Pushbutton Light Switch– Memory and Events: D Latches & Flip-Flops– General Implementation of DFAs

(with a more complex DFA as an example)– How Powerful are DFAs?

• Next Lecture Notes

6

Page 7: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Problem: Toggle Light Switch

Problem: Design a circuit to control a light so that the light changes state any time its “push-button” switch is pressed.

(Like the light switches in Dempster: Press and release, and the light changes state. Press and release again, and it changes again.)

??

7

Page 8: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Concept Q: Toggle Switch

How many gates does the circuit take?

a.One

b.Two

c.Three

d.None of these (b/c it’s a different number)

e.None of these (b/c it can’t be done)

??

8

Page 9: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

A Light Switch “DFA”

light off

light on

toggle

toggle

This Deterministic Finite Automaton (DFA) isn’t really about accepting/rejecting; its current state is the state of the light.

??

9

Page 10: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Outline

• Prereqs, Learning Goals, and !Quiz Notes

• Problems and Discussion– A Pushbutton Light Switch– Memory and Events: D Latches & Flip-Flops– General Implementation of DFAs

(with a more complex DFA as an example)– How Powerful are DFAs?

• Next Lecture Notes

10

Page 11: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Departures from Combinational Circuits

MEMORY:We need to “remember” the light’s state.

EVENTS:We need to act on a button push rather than in response to an input value.

11

Page 12: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Worked Problem: “Muxy Memory”

Worked Problem: How can we use a mux to store a bit of memory? Let’s have it output the stored bit when the control is 0 and load a new value when the control is 1.

0

1output

???

new data

control12

Page 13: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Worked Problem: Muxy Memory

Worked Problem: How can we use a mux to store a bit of memory? Let’s have it output the stored bit when the control is 0 and load a new value when the control is 1.

0

1output (Q)

old output (Q’)

new data (D)

control (G)

This violates our basic combinational constraint: no cycles.13

Page 14: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Problem: Truth Table for Muxy Memory (AKA D Latch)

Problem: Write a truth table for the D Latch.G D Q' Q

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 114

Page 15: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Truth Table for D Latch

Fill in the D latch’s truth table:

G D Q'

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. b. c. d. e.Q

0

1

0

1

0

1

0

1

Q

0

1

0

1

0

0

1

1

Q

0

1

0

1

0

F

F

1

Q

0

0

0

1

1

1

0

1

None of

these

15

Page 16: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Worked Problem: Truth Table for D Latch

Worked Problem: Write a truth table for the D Latch. G D Q' Q

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 1

Like a “normal” mux table, but what happens when Q' Q?16

Page 17: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Worked Problem: Truth Table for D Latch

Worked Problem: Write a truth table for the D Latch. G D Q' Q

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 1

Q' “takes on” Q’s value at the “next step”.17

Page 18: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

D Latch Symbol + Semantics

When G is low, the latch maintains its memory.

When G is high, the latch loads a new value from D.

0

1output (Q)

old output (Q’)

new data (D)

control (G)18

Page 19: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

D Latch Symbol + Semantics

When G is low, the latch maintains its memory.

When G is high, the latch loads a new value from D.

0

1output (Q)

old output (Q’)

new data (D)

control (G)19

Page 20: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

D Latch Symbol + Semantics

When G is low, the latch maintains its memory.

When G is high, the latch loads a new value from D.

output (Q)

new data (D)

control (G)

D

G

Q

20

Page 21: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Hold On!!

Why does the D Latch have two inputs and one output when the mux inside has THREE inputs and one output?

a. The D Latch is broken as is; it should have three inputs.

b. A circuit can always ignore one of its inputs.

c. One of the inputs is always true.

d. One of the inputs is always false.

e. None of these (but the D Latch is not broken as is).

21

Page 22: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Using the D Latch for Circuits with Memory

Problem: What goes in the cloud? What do we send into G?

D

GQ

CombinationalCircuit to calculate

next stateinput output

??

22

Page 23: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Using the D Latch for Our Light Switch

Problem: What do we send into G?

D

GQ

input output

??

current light state

a. T if the button is down, F if it’s up.b. T if the button is up, F if it’s down.c. Neither of these. 23

Page 24: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

A Timing Problem:We Need EVENTS!

Problem: What do we send into G?

D

GQ

output

“pulse” when

button is pressed

current light state

button pressed

As long as the button is down, D flows to Q flows through the NOT gate and back to D...

which is bad!24

Page 25: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

A Timing Problem, Metaphor(from MIT 6.004, Fall 2002)

What’s wrong with this tollbooth?

P.S. Call this a “bar”, not a “gate”, or we’ll tie ourselves in (k)nots.

25

Page 26: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

A Timing Solution, Metaphor(from MIT 6.004, Fall 2002)

Is this one OK?

26

Page 27: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

A Timing Problem

Problem: What do we send into G?

D

GQ

output

“pulse” when

button is pressed

current light state

button pressed

As long as the button is down, D flows to Q flows through the NOT gate and back to D...

which is bad!27

Page 28: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

A Timing Solution (Almost)

D

GQ

output

button pressed

D

GQ

Never raise both “bars” at the same time.

28

Page 29: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

A Timing Solution

D

GQ

output

D

GQ

??

The two latches are never enabled at the same time (except for the moment needed for the NOT gate on the left to compute, which is so short that no “cars” get through).

29

Page 30: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

A Timing Solution

D

GQ

output

D

GQ

button pressed

button press signal

30

Page 31: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Master/Slave D Flip-Flop Symbol + Semantics

When CLK goes from low to high, the flip-flop loads a new value from D.

Otherwise, it maintains its current value.

output (Q)

new data (D)

control or

“clock” signal (CLK)

D

G

Q

D

G

Q

31

Page 32: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Master/Slave D Flip-Flop Symbol + Semantics

When CLK goes from low to high, the flip-flop loads a new value from D.

Otherwise, it maintains its current value.

output (Q)

new data (D)

control or

“clock” signal (CLK)

D

G

Q

D

G

Q

32

Page 33: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Master/Slave D Flip-Flop Symbol + Semantics

When CLK goes from low to high, the flip-flop loads a new value from D.

Otherwise, it maintains its current value.

output (Q)

new data (D)

control or

“clock” signal (CLK)

D

G

Q

D

G

Q

33

Page 34: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Master/Slave D Flip-Flop Symbol + Semantics

When CLK goes from low to high, the flip-flop loads a new value from D.

Otherwise, it maintains its current value.

new data

clock signal

D

Q output

34

Page 35: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

A Pushbutton Light Switch

output

button press signal

D

QWhat goes here?

a. A wire c. An AND gate e. None of these.b. A NOT gate d. An XOR gate

35

Page 36: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Outline

• Prereqs, Learning Goals, and !Quiz Notes

• Problems and Discussion– A Pushbutton Light Switch– Memory and Events: D Latches & Flip-Flops– General Implementation of DFAs

(with a more complex DFA as an example)– How Powerful are DFAs?

• Next Lecture Notes

36

Page 37: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

“Mealy Machines” DFAs whose state matters

A “Mealy Machine” is a DFA that’s not about accepting or rejecting but about outputting values as it transitions.

Its output can depend on its state and its input.

Let’s work with a specific example...

37

Page 38: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Branch Prediction Machine

Modern computers “pre-execute” instructions... but to pre-execute an “if” (AKA branch), they have to guess whether to execute the then or else part.

Here’s one reasonable way to guess: whatever the last branch did, the next one will, too. (Why? Think loops!)

It’s nice to build some “inertia” into this so it won’t flip its guess at the first failure...

38

Page 39: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Branch Predictor

Here’s that algorithm as a DFA (with no accepting state):

Can we build a branch prediction circuit?

YES!

yes?

no?

NO!

nottaken

taken

nottaken

taken

nottaken

takentaken

not taken

39

Page 40: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

General Implementation of DFAs as “Mealy Machines”

Each time the clock “ticks” move from one state to the next.

D

QCombinational

circuit to calculatenext state/output

input output

CLK

Each of these lines (except the clock) may carry multiple bits; the D flip-flop may be several flip-flops to store several bits.

40

Page 41: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

How to Implement a DFA as a “Mealy Machine”

(1) Number the states, starting with 0, and figure out how many bits you need to store the state number.

(2) Number the inputs, starting with 0, and figure out how many bits you need to represent the input.

(3) Lay out enough D flip-flops to store the state.(4) For each state, build a combinational circuit that

determines the next state and the output given the input. (A separate circuit for each state! These are often very simple!)

(5) Send all those “next states” and outputs from the circuits into multiplexers, and use the current state as the control signal. (So, only the appropriate circuit from (4) gets used.)

(6) Send the multiplexer output back into your flip-flops.41

Page 42: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the PredictorStep 1 + 2

YES!3

yes?2

no?1

NO!0

nottaken

taken

nottaken

taken

nottaken

takentaken

not takenHow many 1-bit flip-flops do we

need to represent the state?a.0 (no memory is needed)b.1c.2d.3e.None of these

taken = 1not taken = 0

42

Page 43: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Just Truth Tables...

Current State taken New state

0 0 0 0 0

0 0 1 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

YES!3

yes?2

no?1

NO!0

nottaken

taken

nottaken

taken

nottaken

takentaken

not taken

What’s in this row?a.0 0b.0 1c.1 0d.1 1e.None of these.

43

Page 44: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Just Truth Tables...

Current State taken New state

0 0 0 0 0

0 0 1 0 1

0 1 0 0 0

0 1 1 1 1

1 0 0 0 0

1 0 1 1 1

1 1 0 1 0

1 1 1 1 1

YES!3

yes?2

no?1

NO!0

nottaken

taken

nottaken

taken

nottaken

takentaken

not taken

44

Page 45: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Renaming to Make a Pattern Clearer...

pred last taken pred' last'

0 0 0 0 0

0 0 1 0 1

0 1 0 0 0

0 1 1 1 1

1 0 0 0 0

1 0 1 1 1

1 1 0 1 0

1 1 1 1 1

YES!3

yes?2

no?1

NO!0

nottaken

taken

nottaken

taken

nottaken

takentaken

not taken

45

Page 46: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor:Step 3

We always use this pattern.

In this case, we need two flip-flops.

D

QCombinational

circuit to calculatenext state/output

input output

CLK

D

Q

Let’s switch to TkGate schematics...46

Page 47: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

???

Implementing the Predictor:Step 3

D

Q ??

inputoutput

CLK

D

Q

47

Page 48: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor:Step 3

48

???

Page 49: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor: Step 4 + 5 + 6

49

Page 50: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor: Step 4 + 5 + 6

What should the next “prediction” be in state 0?a.same value as “taken” switchb.negation of “taken” switch (“~taken”)c.Td.Fe.None of these.

50

Page 51: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor: Step 4 + 5 + 6

What should the next prediction be in state 1?a.takenb.~takenc.Td.Fe.None of these.

51

Page 52: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor: Step 4 + 5 + 6

What should the next prediction be in state 2?a.takenb.~takenc.Td.Fe.None of these.

52

Page 53: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor: Step 4 + 5 + 6

What should the next prediction be in state 3?a.takenb.~takenc.Td.Fe.None of these.

53

Page 54: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Just Truth Tables...

pred last taken pred' last'

0 0 0 0 0

0 0 1 0 1

0 1 0 0 0

0 1 1 1 1

1 0 0 0 0

1 0 1 1 1

1 1 0 1 0

1 1 1 1 1

54

Page 55: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor: Step 4 + 5 + 6

55

Page 56: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor: Step 4 + 5 + 6

What should the next “last” value be in state 0?a.takenb.~takenc.Td.Fe.None of these.

56

Page 57: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Implementing the Predictor: Step 4 + 5 + 6

TADA!! 57

Page 58: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

You can often simplify, but that’s not the point.

58

Page 59: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Outline

• Prereqs, Learning Goals, and !Quiz Notes

• Problems and Discussion– A Pushbutton Light Switch– Memory and Events: D Latches & Flip-Flops– General Implementation of DFAs

(with a more complex DFA as an example)– How Powerful are DFAs?

• Next Lecture Notes

59

Page 60: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Steps to Build a Powerful Machine

(1) Number the states, starting with 0, and figure out how many bits you need to store the state number.

(2) Number the inputs, starting with 0, and figure out how many bits you need to represent the input.

(3) Lay out enough D flip-flops to store the state.(4) For each state, build a combinational circuit that

determines the next state and the output given the input. (A separate circuit for each state!)

(5) Send all those “next states” and outputs from the circuits into multiplexers, and use the current state as the control signal.

(6) Send the multiplexer output back into your flip-flops.

60

Page 61: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

How Powerful Is a DFA?

How does a DFA compare to a modern computer?

a.Modern computer is more powerful.

b.DFA is more powerful.

c.They’re the same.

61

Page 62: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Where We’ll Go From Here...

We’ll come back to DFAs again later in lecture.

In two upcoming labs, you’ll:

• Build a circuit to perform a practical task using techniques like these.

• Explore how to build something like a DFA that can run other DFAs... a general purpose computer.

62

Page 63: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Outline

• Prereqs, Learning Goals, and !Quiz Notes

• Problems and Discussion– A Pushbutton Light Switch– Memory and Events: D Latches & Flip-Flops– General Implementation of DFAs

(with a more complex DFA as an example)– How Powerful are DFAs?

• Next Lecture Notes

63

Page 64: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Learning Goals: In-Class

By the end of this unit, you should be able to:– Translate a DFA into a sequential circuit that

implements the DFA.– Explain how and why each part of the

resulting circuit works.

64

Page 65: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Next Lecture Learning Goals: Pre-Class

By the start of class, you should be able to:– Convert sequences to and from explicit formulas

that describe the sequence.– Convert sums to and from summation/”sigma”

notation.– Convert products to and from product/”pi”

notation.– Manipulate formulas in summation/product

notation by adjusting their bounds, merging or splitting summations/products, and factoring out values.

65

Page 66: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Next Lecture Prerequisites

See the Mathematical Induction Textbook Sections at the bottom of the “Textbook and References” page.

Complete the open-book, untimed quiz on Vista that’s due before the next class.

66

Page 67: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

snick

snack

More problems to solve...

(on your own or if we have time)

67

Page 68: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Problem: Traffic Light

Problem: Design a DFA with outputs to control a set of traffic lights.

68

Page 69: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

Problem: Traffic Light

Problem: Design a DFA with outputs to control a set of traffic lights.

Thought: try allowing an output that sets a timer which in turn causes an input like our toggle when it goes off.

Variants to try:- Pedestrian cross-walks- Turn signals- Inductive sensors to indicate presence of cars- Left-turn signals

69

Page 70: Snick  snack CPSC 121: Models of Computation 2010 Winter Term 2 Sequential Circuits (“Mealy Machines”) Steve Wolfman, based on notes by Patrice Belleville

1 2 3a a

a,b,cb

b,cc

PROBLEM: Does this accept the empty string?

70