6-1 programmable and steering logic chapter #6: sequential logic design

53
6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

Upload: emmeline-wells

Post on 19-Jan-2016

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-1

Programmable and Steering Logic

Chapter #6: Sequential Logic Design

Page 2: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-2

Programmable and Steering LogicChapter Overview

• Sequential Networks Simple Circuits with Feedback R-S Latch J-K Flipflop Edge-Triggered Flipflops

• Timing Methodologies Cascading Flipflops for Proper Operation Narrow Width Clocking vs. Multiphase Clocking Clock Skew

• Realizing Circuits with Flipflops Choosing a FF Type Characteristic Equations Conversion Among Types

• Metastability and Asynchronous Inputs

• Self-Timed Circuits

Page 3: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-3

Programmable and Steering LogicSequential Switching Networks

Circuits with Feedback: Some outputs are also inputs

Traffic Light Controller is a complex sequential logic network

Sequential logic forms basis for building "memory" into circuits

These memory elements are primitive sequential circuits

SwitchingNetwork

X1

Xn

X2..

.

.

Zm

Z2

Z1

transistor

Clock

Combinational Logic

State

Combinational Logic

Lights and time control

Page 4: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-4

Programmable and Steering LogicSequential Switching NetworksSimple Circuits with Feedback

Primitive memory elements created from cascaded gates

Simplest gate component: inverter

Basis for commercial static RAM designs

Cross-coupled NOR gates and NAND gates also possible

Cascaded Inverters: Static Memory Cell"0"

"1"

Selectively break feedback path to load new value into cell

Z

LD

\LD

LD

\LD

A

Page 5: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-5

Programmable and Steering LogicSequential Switching NetworksInverter Chains

Odd # of stages leads to ring oscillatorSnapshot taken just before last inverter changes

duty cycle : % of time singal is high during its period

Output highpropagating

thru this stage

Timing Waveform:

A (=X) B C D E

Period of Repeating Waveform ( tp)Gate Delay ( td)

0

1

0

1

0

1

tp = n * tdn = # inverters

A

B C D E

1 0 0 0 1

X

Page 6: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-6

Programmable and Steering LogicSequential Switching NetworksInverter Chains

1 1 1 1 1

0 0 0 0 0

X0 0 0 0

0 1 1 1 1

XX1 1 1

1 1 0 0 0

X X X 0 0 0 0 0 1 1

X X X X 1 1 1 1 1 0

X X X X X 0 0 0 0 0 1

Time

Propagation of Signals through the Inverter Chain

Page 7: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-7

Programmable and Steering LogicSequential Switching Networks

Just like cascaded inverters,with capability to force output

to 0 (reset) or 1 (set)

Timing Waveform

Cross-Coupled NOR Gates

R

R

S

S

Q

\Q

100

R

S

Q

\ Q

Reset Hold Set

ForbiddenState

Reset Set

ForbiddenState

Race

Page 8: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-8

Programmable and Steering LogicSequential Switching NetworksState Behavior of R-S Latch

Truth Table Summary of R-S Latch Behavior

Q

hold 0 1

unstable

S

0 0 1 1

R

0 1 0 1

Q Q Q Q

Q Q

0 1

1 0

0 0

Q Q1 1

Page 9: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-9

Programmable and Steering LogicSequential Logic Networks

Theoretical R-S Latch State Diagram

Q Q Q Q

Q Q

0 1 1 0

0 0

SR = 1 0

SR = 0 1

SR = 0 1

SR = 1 1

SR = 1 0

SR = 1 1

SR = 00, 01 SR = 00, 10

Q Q1 1

SR = 0 0

SR = 0 0, 11

SR = 11

SR = 1 0SR = 0 1

stays for very short time

Page 10: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-10

Programmable and Steering LogicSequential Logic NetworksObserved R-S Latch Behavior

Q Q Q Q

Q Q

0 1 1 0

0 0

SR = 1 0

SR = 0 1

SR = 0 1

SR = 1 1

SR = 1 0

SR = 1 1

SR = 00, 01 SR = 00, 10

SR = 0 0

SR = 11

SR = 0 0

Very difficult to observe R-S Latch in the 1-1 state

Ambiguously returns to state 0-1 or 1-0

A so-called "race condition"

Page 11: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-11

Programmable and Steering Logic

Input

Clock

T su T h

Sequential Switching Networks

Definition of Terms

Setup Time (Tsu)

Clock: Periodic Event, causes state of memory element to change

rising edge, falling edge, high level, low level

There is a timing "window" around the

clocking event during which the input

must remain stable and unchanged

in order to be recognized

There is a timing "window" around the

clocking event during which the input

must remain stable and unchanged

in order to be recognized

Minimum time before the clocking event by which the input must be stable

Hold Time (Th)Minimum time after the clocking event during which the input must remain stable

Page 12: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-12

Programmable and Steering LogicSequential Switching Networks

Level-Sensitive Latch

\ S

\ R

\ Q

Q

\enb

Schematic:

Timing Diagram:Set Reset

aka Gated R-S Latch

any level changeis propagated

Page 13: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-13

Programmable and Steering LogicSequential Switching Networks

Latches vs. Flipflops

Input/Output Behavior of Latches and Flipflops

Type When Inputs are Sampled When Outputs are Validunclocked always propagation delay from latch input change

level clock high propagation delay fromsensitive (Tsu, Th around input changelatch falling clock edge)

positive edge clock lo-to-hi transition propagation delay fromflipflop (Tsu, Th around rising edge of clock rising clock edge)

negative edge clock hi-to-lo transition propagation delay fromflipflop (Tsu, Th around falling edge of clock falling clock edge)

master/slave clock hi-to-lo transition propagation delay fromflipflop (Tsu, Th around falling edge of clock falling clock edge)

Page 14: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-14

Programmable and Steering LogicSequential Switching Networks

7474

7476

Bubble herefor negative

edge triggereddevice

Timing Diagram:

Behavior the same unless input changes while the clock is high

Edge triggered device sample inputs on the event edge

Transparent latches sample inputs as long as the clock is assertedPositive edge-triggered

flip-flop

Level-sensitive latch

D Q

D Q

C

Clk

Clk

D

Clk

Q

Q

7474

7476

Page 15: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-15

Programmable and Steering LogicSequential Switching ElementsTypical Timing Specifications: Flipflops vs. Latches

74LS74 PositiveEdge Triggered

D Flipflop

• Setup time• Hold time• Minimum clock width• Propagation delays (low to high, high to low, max and typical)

All measurements are made from the clocking eventthat is, the rising edge of the clock

D

Clk

Q

T su 20 ns

T h 5 ns

T w 25 ns

T plh 25 ns 13 ns

T su 20 ns

T h 5 ns

T phl 40 ns 25 ns

Page 16: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-16

Programmable and Steering LogicSequential Switching NetworksTypical Timing Specifications: Flipflops vs. Latches

74LS76TransparentLatch

• Setup time• Hold time• Minimum Clock Width• Propagation Delays: high to low, low to high, maximum, typical data to output clock to output

Measurements from falling clock edgeor rising or falling data edge

T su 20 ns

T h 5 ns

T su 20 ns

T h 5 ns

T w 20 ns

T plh C » Q 27 ns 15 ns

T phl C » Q 25 ns 14 ns

T plh D » Q 27 ns 15 ns

T phl D » Q 16 ns 7 ns

D

Clk

Q

from clock change to output change

from input change to output change

Page 17: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-17

Programmable and Steering LogicSequential Switching ElementsR-S Latch Revisited

Truth Table:Next State = F(S, R, Current State)

S

R

Q

R-SLatch Q+

Derived K-Map:

Characteristic Equation:

Q+ = S + R Q t

R

SR 00 01 11 10

0 0 X 1

1 0 X 1

0

1

Q ( t )

S

Page 18: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-18

Programmable and Steering LogicSequential Switching NetworksJ-K Flipflop

How to eliminate the forbidden state?

Idea: use output feedback to guarantee that R and S are never both one

J, K both one yields toggle

Characteristic Equation:

Q+ = Q K + Q J

R-S latch

K

J S

R

Q

\ Q \ Q

Q

Page 19: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-19

Programmable and Steering Logic

J

K

Q

\ Q

100

Sequential Switching NetworksJ-K Latch: Race Condition

Set Reset Toggle

Race Condition

Race : toggle signal asserted while the output change

Toggle Correctness: Single State change per clocking event

Solution: Master/Slave Flipflop

Page 20: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-20

Programmable and Steering LogicSequential Switching NetworkMaster/Slave J-K Flipflop

Master Stage Slave Stage

Sample inputs while clock high Sample inputs while clock low

Uses time to break feedback path from outputs to inputs!Uses time to break feedback path from outputs to inputs!

Correct ToggleOperation

J

R-S Latch

R-S Latch

K R

S

Clk

\Q

Q

\P

P

R

S

\Q

Q

\Q

Q

Master outputs

Slave outputs

Set Reset T oggle 1's

Catch 100

J

K

Clk

P

\ P

Q

\ Q

Page 21: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-21

Programmable and Steering LogicSequential Switching NetworksEdge-Triggered Flipflops

1's Catching: a 0-1-0 glitch on the J or K inputs leads to a state change! forces designer to use hazard-free logic

Solution: edge-triggered logic

Negative Edge-TriggeredD flipflop

4-5 gate delays

setup, hold timesnecessary to successfully

latch the input

Characteristic Equation:Q+ = D

Q

Q

D

Clk=1

R

S

0

0

D

DD

Holds D when clock goes low

Holds D when clock goes low

Negative edge-triggered FFwhen clock is high

holding state

Page 22: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-22

Programmable and Steering LogicSequential Switching NetworkEdge-triggered Flipflops

Step-by-step analysis

Q

Q

D

Clk=0

R

S

D

DD

D

D

D

Negative edge-triggered FFwhen clock goes high-to-low

data is latched

Q

Q

D'

Clk=0

R

S

D

D

D

D

D' ° D

0

0

1

2

3

4

5

6

Negative edge-triggered FFwhen clock is low

data is heldD is changedgate 2,4,5 are holding their values

Page 23: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-23

Programmable and Steering LogicSequential Switching Networks

Positive vs. Negative Edge Triggered Devices

Positive Edge Triggered

Inputs sampled on rising edgeOutputs change after rising edge

Negative Edge Triggered

Inputs sampled on falling edgeOutputs change after falling edge

Toggle FlipflopFormed from J-K with both inputs wired together

Positive edge- t riggered FF

Negative edge- t riggered FF

D

Clk

Q pos

\ Q pos

Q neg

\ Q neg

100

Page 24: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-24

Programmable and Steering LogicSequential Switching Networks

TTL Latch and Flip-Flop Components

7473 : JK Flip-Flop with active low clear

7473A : Negative Edge-Triggered JK

7474 : D Flip-Flop with clear and preset

What if you need a negative edge triggered D

Invert the clock signal into 7474

Use 7473A and wires J and K together

Page 25: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-25

Programmable and Steering LogicTiming Methodology

Overview

• Set of rules for interconnecting components and clocks

• When followed, guarantee proper operation of system

• Approach depends on building blocks used for memory elements

For systems with latches:

Narrow Width Clocking

Multiphase Clocking (e.g., Two Phase Non-Overlapping)

For systems with edge-triggered flipflops:

Single Phase Clocking

• Correct Timing:

(1) correct inputs, with respect to time, are provided to the FFs

(2) no FF changes more than once per clocking event

Page 26: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-26

Programmable and Steering Logic

In

Q 0

Q 1

Clk

100

Timing MethodologiesCascaded Flipflops and Setup/Hold/Propagation Delays

Shift RegisterS,R are preset, preclear

New value to first stagewhile second stageobtains current valueof first stage

Correct Operation,assuming positiveedge triggered FF

IN

CLK

Q0 Q1D

C

Q

Q

D

C

Q

Q

Page 27: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-27

Programmable and Steering LogicTiming MethodologiesCascaded Flipflops and Setup/Hold/Propagation Delays

Why this works:

• Propagation delays far exceed hold times; Clock width constraint exceeds setup time

• This guarantees following stage will latch current value before it is replaced by new value

• Assumes infinitely fast distribution of the clock

Timing constraintsguarantee proper

operation ofcascaded components

Timing constraintsguarantee proper

operation ofcascaded components

T su 20 ns

T plh 13 ns

T h 5 ns

T su 20 ns

T plh 13 ns

T h 5 ns

In

Clk

Q 0

Q 1

Page 28: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-28

Programmable and Steering LogicTiming MethodologiesNarrow Width Clocking versus Multiphase Clocking

Level Sensitive Latches vs. Edge Triggered Flipflops

• Latches use fewer gates to implement a memory function

• Less complex clocking with edge triggered devices

CMOS Dynamic Storage ElementFeedback path broken by two

phases of the clock(just like master/slave idea!)

8 transistors to implement memory function

but requires two clock signals constrainedto be non-overlapping

Edge-triggered D-FF: 6 gates (5 x 2-input, 1 x 3-input) = 26 transistors!

\Clk2

Clk2

LD•Clk1

\(LD • Clk1)

A Z

Page 29: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-29

Programmable and Steering LogicTiming MethodologiesNarrow Width Clocking for Systems with Latches for State

Two-sided Constraints: must be careful of very fast signals as well as very slow signals!

Generic Block Diagramfor Clocked Sequential

System

state implemented bylatches or edge-triggered FFs

Clock Width < fastest propagation through comb. logic plus latch prop delay

Clock Period > slowest propagation through comb. logic (rising edge to rising edge)

Clock

Combinational logic

S t a t e

Page 30: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-30

Programmable and Steering LogicTiming Methodologies

Two Phase Non-Overlapped Clocking

Clock Waveforms: must never overlap!

only worry about slow signals

Embedding CMOS storageelement into Clocked SequentialLogic

Note that Combinational Logiccan be partitioned into twopieces

C/L1: inputs latched and stable by end of phase 1; compute between phases, latch outputs by end of phase 2

C/L2: just the reverse

1

2

Combinational Logic 1

Combinational Logic 2

1 /1 2 /2

Page 31: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-31

Programmable and Steering Logic

Clk

Phase 1

Phase 2

100

Timing MethodologiesGenerating Two-Phase Non-Overlapping Clocks

Single reference clock (or crystal)

Phase 1 high while clock is low

Phase 2 high while clock is high

Phase X cannot go high until phase Y goes low!

Non-overlap time can be increased by increasing the delay on the feedback path

Use all positive or all negative edge triggered F/F single phase clock

Clk phase1

phase2

Page 32: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-32

Programmable and Steering Logic

FF0 samples IN FF1 samples Q 0 100

In

Q 0

Q 1

Clk1

Clk2

Timing MethodologiesThe Problem of Clock Skew

Correct behavior assumes next state of all storage elements determined by all storage elements at the same time

Not possible in real systems! • logical clock driven from more than one physical circuit with timing behavior • different wire delay to different points in the circuit

Original State: Q0 = 1, Q1 = 1, In = 0Because of skew, next state becomes: Q0 = 0, Q1 = 0, not Q0 = 0, Q1 = 1

CLK2 is a delayedversion of CLK1

Effect of Skew on Cascaded Flipflops:

Page 33: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-33

Programmable and Steering LogicTiming Methodologies

Design Strategies for Minimizing Clock Skew

Typical propagation delays for LS FFs: 13 ns

Need substantial clock delay (on the order of 13 ns) for skew to be a problem in this relatively slow technology

Nevertheless, the following are good design practices:

• distribute clock signals in general direction of data flows

• wire carrying the clock between two communicating components should be as short as possible

• for multiphase clocked systems, distribute all clocks in similar wire paths; this minimizes the possibility of overlap

• for the non-overlap clock generate, use the phase feedback signals from the furthest point in the circuit to which the clock is distributed; this guarantees that the phase is seen as low everywhere before it allows the next phase to go high

Page 34: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-34

Programmable and Steering LogicRealing Circuits with Different Kinds of FFsChoosing a Flipflop

R-S Clocked Latch: used as storage element in narrow width clocked systems its use is not recommended! however, fundamental building block of other flipflop types

J-K Flipflop: versatile building block can be used to implement D and T FFs usually requires least amount of logic to implement (In,Q,Q+) but has two inputs with increased wiring complexity

because of 1's catching, never use master/slave J-K FFs edge-triggered varieties exist

D Flipflop: minimizes wires, much preferred in VLSI technologies simplest design technique best choice for storage registers

T Flipflops: don't really exist, constructed from J-K FFs usually best choice for implementing counters

Preset and Clear inputs highly desirable!!

Page 35: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-35

Programmable and Steering LogicRealizing Circuits with Different Kinds of FlipflopsCharacteristic Equations

R-S:

D:

J-K:

T:

Q+ = S + R Q

Q+ = D

Q+ = J Q + K Q

Q+ = T Q + T Q

Derived from the K-mapsfor Q+ = (Inputs, Q)

E.g., J=K=0, then Q+ = Q J=1, K=0, then Q+ = 1 J=0, K=1, then Q+ = 0 J=1, K=1, then Q+ = Q

Implementing One FF in Terms of Another

D implemented with J-K J-K implemented with D

D J

K J

K C

Q

Q C

D Q

Q

Q

Page 36: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-36

Programmable and Steering LogicRealizing Circuits with Different Kinds of FlipflopsDesign Procedure

Excitation Tables: What are the necessary inputs to cause a particular kind of change in state?

Implementing D FF with a J-K FF:

1) Start with K-map of Q+ = (D, Q)

2) Create K-maps for J and K with same inputs (D, Q)

3) Fill in K-maps with appropriate values for J and K to cause the same state changes as in the original K-map

E.g., D = Q= 0, Q+ = 0 then J = 0, K = X

D 0 1 0 1

T 0 1 1 0

Q + 0 1 0 1

Q 0 0 1 1

S 0 1 0 X

R X 0 1 0

K X X 1 0

J 0 1 X X D

0 1

0 1

Q + = D

0 1

0

1

Q

D

X X

1 0

K = D

0 1

0

1

Q D

0 1

X X

J = D

0 1

0

1

Q

Page 37: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-37

Programmable and Steering LogicRealizing Circuits with Different Kinds of Flipflops

Implementing J-K FF with a D FF:

Design Procedure (Continued)

1) K-Map of Q+ = F(J, K, Q)

2,3) Revised K-map using D's excitation table its the same! that is why design procedure with D FF is simple!

Resulting equation is the combinational logic input to D to cause same behavior as J-K FF. Of course it is identical to the characteristic equation for a J-K FF.

0 0 1 1

1 0 0 1

00 01 11 10 J

K

JK Q

Q + = D = JQ + KQ

0

1

Page 38: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-38

Programmable and Steering LogicMetastability and Asynchronous InputsTerms and Definitions

Clocked synchronous circuits • common reference signal called the clock • state of the circuit changes in relation to this clock signal

Asynchronous circuits • inputs, state, and outputs sampled or changed independent of a common reference signal

R-S latch is asynchronous, J-K master/slave FF is synchronous

Synchronous inputs • active only when the clock edge or level is active

Asynchronous inputs • take effect immediately, without consideration of the clock

Compare R, S inputs of clocked transparent latch vs. plain latch(level sensitive)

Page 39: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-39

Programmable and Steering LogicMetastability and Asynchronous InputsAsynchronous Inputs Are Dangerous!

Since they take effect immediately, glitches can be disastrous

Synchronous inputs are greatly preferred!

But sometimes, asynchronous inputs cannot be avoided e.g., reset signal, memory wait signal

Page 40: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-40

Programmable and Steering LogicMetastability and Asynchronous OutputsHandling Asynchronous Inputs

D Q

D Q

Q0

Clock

Clock

Q1

Async Input

D Q

D Q

Q0

Clock

Clock

Q1

Async Input D Q

Clocked Synchronous

System

Synchronizer

Never allow asynchronous inputs to be fanned out to more than one FF within the synchronous system

Page 41: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-41

Programmable and Steering LogicMetastability and Asynchronous InputsWhat Can Go Wrong

In is asynchronousFans out to D0 and D1

One FF catches thesignal, one does not

impossible state mightbe reached!

Setup time violation!

Single FF that receives the asynchronous signal is a synchronizer

In

Q 0

Q 1

Clk

Page 42: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-42

Programmable and Steering LogicMetastability and Asynchronous Inputs Synchronizer Failure

When FF input changes close to clock edge, the FF may enter the metastable state: neither a logic 0 nor a logic 1

It may stay in this state an indefinate amount of time, although this is not likely in real circuits

Small, but non-zero probabilitythat the FF output will get stuck

in an in-between state

Oscilloscope Traces DemonstratingSynchronizer Failure and Eventual

Decay to Steady State

D Q In ?

T ime

Logic 1

Logic 0

Page 43: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-43

Programmable and Steering LogicMetastability and Asynchronous InputsSolutions to Synchronizer Failure

• reset the entire clock • the probability of failure can never be reduced to 0, but it can be reduced• slow down the system clock this gives the synchronizer more time to decay into a steady state synchronizer failure becomes a big problem for very high speed systems• use fastest possible logic in the synchronizer this makes for a very sharp "peak" upon which to balance S or AS TTL D-FFs are recommended• cascade two synchronizers• use timing strategy that is independent of the speed

D DQ Q

Clk

AsynchronousInput

SynchronizedInput

Synchronous System

Page 44: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-44

Programmable and Steering LogicSelf-Timed and Speed Independent CircuitsLimits of Synchronous Systems

Fully synchronous not possible for very large systems because of problems of clock skew

Partition system into components that are locally clocked

These communicate using "speed independent" protocols

Request/Acknowledgement Signaling

S1

requester client master

S2

provider server slave

Request

Data Flow

Acknowledgement

Communications Signals Clocked

SubsystemClocked

Subsystem

Page 45: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-45

Programmable and Steering LogicSelf-Timed and Speed Independent CircuitsSynchronous Signaling

Master issues read request; Slave produces data and acks back

Alternative Synchronous Scheme:Slave issues WAIT signal if it cannot satisfy request in oneclock cycle

Req

Data

Ack

Clk

Req

Data

W ait

Clk

Page 46: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-46

Programmable and Steering LogicSelf-Timed and Speed Independent CircuitsAsynchronous/Speed Independent Signaling

4 Cycle Signaling/Return to Zero Signaling

(1) master raises request slave performs request

(2) slave "done" by raising acknowledge

(3) master latches data acks by lowering request

(4) slave resets self by lowing acknowledge signal

Communicate information by signal levels rather than edges!

No clock signal

Req

Data

Ack

Page 47: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-47

Programmable and Steering LogicSelf-Timed and Speed Independent Circuits

Alternative: 2 cycle signaling

Non-Return-to-Zero

(1) master raises request slave services request

(2) slave indicates that it is done by raising acknowledge

Next request indicated by low level of request

Requires additional state in master and slave to remember previous setting or request/acknowledge

4 Cycle Signaling is more foolproof

Ack

Data

Req

Page 48: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-48

Programmable and Steering LogicSelf-Timed and Speed Independent CircuitsSelf-Timed Circuits

Determine on their own when a given request has been serviced

No internal clocks

Usually accomplished by modeling worse case delay within self-timed component

Models worst case delay e.g., if combinational logic is 5 gate levels deep, delay line between request in and ack out is also 5 levels deep

Input

Req

Output

Ack

Combinational logic

Delay

Page 49: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-49

Programmable and Steering LogicPractical Matters

Debouncing Switches

bouncing : when a switch is flipped from one terminal to another it does not make a clean, solid contact

solution : debouncing a switchinitial setup

Page 50: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-50

Programmable and Steering LogicPractical Matters

• Debouncing a switch

Page 51: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-51

Programmable and Steering LogicPractical Matters

• 555 programmable timer

Page 52: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-52

Programmable and Steering LogicPractical Matters

• Free-running clock frequency of 555 timer

Page 53: 6-1 Programmable and Steering Logic Chapter #6: Sequential Logic Design

6-53

Programmable and Steering LogicChapter Summary

• Fundamental Building Block of Circuits with State: latch and flipflop

• R-S Latch, J-K master/slave Flipflop, Edge-triggered D Flipflop

• Clocking Methodologies:

For latches: Narrow width clocking vs. Multiphase Non-overlapped Narrow width clocking and two sided timing constraints Two phase clocking and single sided timing constraints

For FFs: Single phase clocking with edge triggered flipflops

Cascaded FFs work because propagation delays exceed hold times

Beware of Clock Skew

• Asynchronous Inputs and Their Dangers

Synchronizer Failure: What it is and how to minimize its impact

Asynchronous Signaling Conventions: 4 and 2 Cycle Handshakes

Self-Timed Circuits

• Speed Independent Circuits