CPSC 121: Models of Computation Unit 8: Sequential Circuits CPSC - - PowerPoint PPT Presentation

cpsc 121 models of computation
SMART_READER_LITE
LIVE PREVIEW

CPSC 121: Models of Computation Unit 8: Sequential Circuits CPSC - - PowerPoint PPT Presentation

CPSC 121: Models of Computation Unit 8: Sequential Circuits CPSC 121 2011W T2 Unit 8: Sequential Circuits By the start of class, you should be able to Trace the operation of a DFA (deterministic finite- state automaton) represented as a


slide-1
SLIDE 1

CPSC 121 – 2011W T2

CPSC 121: Models of Computation

Unit 8: Sequential Circuits

slide-2
SLIDE 2

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

By the start of class, you should be able to

 Trace the operation of a DFA (deterministic finite-

state automaton) represented as a diagram on an input, and indicate whether the DFA accepts or rejects the input.

 Deduce the language accepted by a simple DFA

after working through multiple example inputs.

slide-3
SLIDE 3

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Quiz 8 feedback:

 Very well done.  Many fine answers to the push-button light

  • question. We will revisit this problem soon.
slide-4
SLIDE 4

CPSC 121 – 2011W T2

  • 1. Course Introduction

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

CPSC 121: the BIG questions:

  • 1. How can we build a computer that is able to

execute a user-defined program?

a) Computers execute instructions one at a time. b) They need to remember values, unlike the circuits you designed in labs 1, 2, 3 and 4. c) That is, a computer is a very large and very complicated sequential circuit.

slide-5
SLIDE 5

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

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.

slide-6
SLIDE 6

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Announcements:

 Online quiz #9 is due Tuesday March 6 th at 19:00.  Textbook sections:

 Epp, 4 th edition: 5.1 to 5.4  Epp, 3 rd edition: 4.1 to 4.4  Rosen, 6 th edition: 4.1, 4.2  Rosen, 7 th edition: 5.1, 5.2

slide-7
SLIDE 7

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Unit Summary

 Latches, toggles and flip-flops.  Branch prediction.  Other problems and exercises.

slide-8
SLIDE 8

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

There are two types of Finite-State Automata:

 Those whose output is determined solely by the

final state (Moore machines).

 Used to match a string to a pattern.

 Input validation.  Searching text for contents.  Lexical Analysis: the first step in a compiler or an interpreter.

(define (fun x) (if (<= x 0) 1 (* x (fun (- x 1)))))

( define ( fun x ) ( if ( <= x 0 ) 1 ( * x ( fun ( - x 1 ) ) ) ) )

slide-9
SLIDE 9

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

 Those that produce output every time the state

changes (Mealy machines).

 Examples:

 Simple ciphers  Traffic lights controller.  Predicting branching in machine-language programs

A circuit that implements a finite state machine

  • f either type needs to remember the current

state:

 It needs memory.

slide-10
SLIDE 10

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Recall the latch from lab #5: When en is low, the MUX retains its current value. When en is high, it changes its value to d instead.

slide-11
SLIDE 11

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Problem: Design a circuit that changes state every time a button is pushed.

? ?

slide-12
SLIDE 12

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

What signal does the button generate?

low high

slide-13
SLIDE 13

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Complete the circuit...

Circuit to calculate the next state

slide-14
SLIDE 14

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

What is wrong with our solution?

a) We should have used XOR instead of NOT. b) We designed an effective random bit generator. c) The delay introduced by the NOT gate is too long. d) There is some other problem with the circuit. e) Nothing is wrong.

slide-15
SLIDE 15

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

This toll booth has a similar problem.

From MIT 6.004, Fall 2002

slide-16
SLIDE 16

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Instead use this:

From MIT 6.004, Fall 2002 P.S. Call this a “bar”, not a “gate”,

  • r we'll tie ourselves in (k)nots.
slide-17
SLIDE 17

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

The circuit version of this improved tollbooth is called a flip-flop:

slide-18
SLIDE 18

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

And we get the following improved circuit for

  • ur button and light problem:
slide-19
SLIDE 19

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Unit Summary

 Latches, toggles and flip-flops.  Branch prediction.  Other problems and exercises.

slide-20
SLIDE 20

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

How do computers really execute programs?

 Programs written in a high-level language (Racket,

Java) are translated into machine language.

 A machine-language program is a sequence of very

simple instructions.

 Each instruction is a sequence of 0s and 1s.  Each instruction also has a human-readable version

 Humans don't like looking at long sequences of 0s and 1s.  The human-readable version is not actually part of the program.

slide-21
SLIDE 21

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Example (modified to make it easier to understand):

(1) sum ← 0 (2) is n = 0? (3) if true go to 7 (4) sum ← sum + n (5) n ← n – 1 (6) goto 2

Some instructions like instruction 3 may tell the computer that the next instruction to execute is not the next in the sequence (4), but elsewhere (7).

slide-22
SLIDE 22

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

To speed things up, a modern computer starts executing an instruction before the previous one is finished. This means that when it is executing

if true go to 7

it does not yet know if the condition is true, and hence does not know if the next instruction is

sum ← sum + n

  • r instruction number 7.
slide-23
SLIDE 23

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

So we want to be able to predict the outcome.

 If we guess wrong, then we will ignore some of the

work that was done.

We will keep track of two pieces of information:

 what we will predict (F = not branch, T = branch).  how confident we are that we are correct (F = not

very, T = very).

 once we know if the branch was taken, we update

this information.

slide-24
SLIDE 24

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

How many states will the Finite State Automaton have?

a) 2 b) 4 c) 8 d) Another value less than 8. e) Another value larger than 8.

slide-25
SLIDE 25

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Let us fill out a truth table that describes the behaviour we want of the automaton.

Current State Taken? Next State Pred Conf? Pred Conf? F F F F T F F T T T F T F F T F T T F F T F F F T T F T T T T T F T F T T T T T

slide-26
SLIDE 26

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Hence we get the following DFA:

slide-27
SLIDE 27

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

How do we turn a DFA into a circuit?

 Number the states, starting with 0, and figure out how

many bits you need to store the state number.

 Number the inputs, starting with 0, and figure out how

many bits you need to represent the input.

 Layout enough D flip-flops to store the state (one per bit).  For each state, build a combinational circuit that computes

the next state (and the output, if needed) given the input.

 Send all those into multiplexers, and use the current state

as the control signal (so you only keep the correct one).

 Store the next state back into the D flip-flops.

slide-28
SLIDE 28

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

The circuit will look like the following:

Compute Output Next State circuits

slide-29
SLIDE 29

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Now let us complete the implementation using Logisim...

slide-30
SLIDE 30

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Unit Summary

 Latches, toggles and flip-flops.  Branch prediction.  Other problems and exercises.

slide-31
SLIDE 31

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Real numbers:

 We can write numbers in decimal using the format

(-)? d+ (.d+)?

where the ( )? mean that the part in parentheses is

  • ptional, and d+ stands for “1 or more digits”.

 Design a DFA that will accept input strings that are

valid real numbers using this format.

 You can use else as a label on an edge instead of listing

every character that does not appear on another edge leaving from a state.

slide-32
SLIDE 32

CPSC 121 – 2011W T2

Unit 8: Sequential Circuits

Real numbers (continued)

 Then design a circuit that turns a LED on if the input

is a valid real number, and off otherwise.

 Hint: Logisim has a keyboard component you can use.  Hint: my DFA for this problem has 6 states.

Design a DFA for a vending machine that sells

  • ne of three items (lemon juice, whiteboard

markers, and corn flour) for 35¢ each. It should accept 5¢, 10¢ and 25¢ coins, and does not need to return change.