Chapter 3. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 3 <1>

Similar documents
Chapter 3. Chapter 3 :: Topics. Introduction. Sequential Circuits

CPE100: Digital Logic Design I

Finite State Machine (FSM)

Synchronous Sequential Circuit Design. Digital Computer Design

Different encodings generate different circuits

CPE100: Digital Logic Design I

ALU, Latches and Flip-Flops

Timing Constraints in Sequential Designs. 63 Sources: TSR, Katz, Boriello & Vahid

Lecture 10: Sequential Networks: Timing and Retiming

Sequential Logic. Handouts: Lecture Slides Spring /27/01. L06 Sequential Logic 1

CSE140: Design of Sequential Logic

CPE100: Digital Logic Design I

Problem Set 9 Solutions

Synchronous Sequential Logic

CSE140: Components and Design Techniques for Digital Systems. Midterm Information. Instructor: Mohsen Imani. Sources: TSR, Katz, Boriello & Vahid

Sequential Logic. Road Traveled So Far

Jin-Fu Li Advanced Reliable Systems (ARES) Lab. Department of Electrical Engineering. Jungli, Taiwan

Designing Sequential Logic Circuits

6. Finite State Machines

ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN. Week 9 Dr. Srinivas Shakkottai Dept. of Electrical and Computer Engineering

Adders, subtractors comparators, multipliers and other ALU elements

Lecture 7: Sequential Networks

ELCT201: DIGITAL LOGIC DESIGN

Chapter 7 Sequential Logic

Adders, subtractors comparators, multipliers and other ALU elements

5. Sequential Logic x Computation Structures Part 1 Digital Circuits. Copyright 2015 MIT EECS

Ch 7. Finite State Machines. VII - Finite State Machines Contemporary Logic Design 1

Fundamentals of Computer Systems

ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN. Week 7 Dr. Srinivas Shakkottai Dept. of Electrical and Computer Engineering

Latches. October 13, 2003 Latches 1

Integrated Circuits & Systems

EECS Components and Design Techniques for Digital Systems. FSMs 9/11/2007

Sequential Logic Design: Controllers

Homework #4. CSE 140 Summer Session Instructor: Mohsen Imani. Only a subset of questions will be graded

Sequential vs. Combinational

Lecture 10: Synchronous Sequential Circuits Design

Memory Elements I. CS31 Pascal Van Hentenryck. CS031 Lecture 6 Page 1

Fundamentals of Computer Systems

Digital Design. Sequential Logic

EXPERIMENT Traffic Light Controller

Sequential Circuits. Circuits with state. Silvina Hanono Wachman Computer Science & Artificial Intelligence Lab M.I.T. L06-1

Synchronous Sequential Circuit Design. Dr. Ehab A. H. AL-Hialy Page 1

Fundamentals of Computer Systems

L4: Sequential Building Blocks (Flip-flops, Latches and Registers)

Sequential Logic Circuits

Topic 8: Sequential Circuits

Sequential logic and design

King Fahd University of Petroleum and Minerals College of Computer Science and Engineering Computer Engineering Department

State and Finite State Machines

ELEC Digital Logic Circuits Fall 2014 Sequential Circuits (Chapter 6) Finite State Machines (Ch. 7-10)

CSE 140 Midterm 2 - Solutions Prof. Tajana Simunic Rosing Spring 2013

Sequential Logic Worksheet

Models for representing sequential circuits

BER KELEY D AV IS IR VINE LOS AN GELES RIVERS IDE SAN D IEGO S AN FRANCISCO

State & Finite State Machines

ENGG 1203 Tutorial _03 Laboratory 3 Build a ball counter. Lab 3. Lab 3 Gate Timing. Lab 3 Steps in designing a State Machine. Timing diagram of a DFF

Lecture 7: Logic design. Combinational logic circuits

Digital Design 2010 DE2 1

State & Finite State Machines

Lecture 14: State Tables, Diagrams, Latches, and Flip Flop

Introduction to Digital Logic

Y. Tsiatouhas. VLSI Systems and Computer Architecture Lab

L4: Sequential Building Blocks (Flip-flops, Latches and Registers)

ALU A functional unit

Metastability. Introduction. Metastability. in Altera Devices

Chapter 4. Sequential Logic Circuits

Appendix B. Review of Digital Logic. Baback Izadi Division of Engineering Programs

Lecture 13: Sequential Circuits, FSM

Synchronous Sequential Circuit

I. Motivation & Examples

EET 310 Flip-Flops 11/17/2011 1

Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1>

Lecture 9: Sequential Logic Circuits. Reading: CH 7

ENEL Digital Circuits Final Examination

Fundamentals of Digital Design

University of Minnesota Department of Electrical and Computer Engineering

Sequential Circuits Sequential circuits combinational circuits state gate delay

14.1. Unit 14. State Machine Design

UNIVERSITY OF BOLTON SCHOOL OF ENGINEERING BENG (HONS) ELECTRICAL & ELECTRONICS ENGINEERING EXAMINATION SEMESTER /2017

Synchronous Logic. These must be the slings and arrows of outrageous fortune. Comp 411 Fall /18/06. L14 Synchronous Logic 1

University of Toronto Faculty of Applied Science and Engineering Edward S. Rogers Sr. Department of Electrical and Computer Engineering

Digital Electronics Sequential Logic

CMPEN 411. Spring Lecture 18: Static Sequential Circuits

Appendix A: Digital Logic. Principles of Computer Architecture. Principles of Computer Architecture by M. Murdocca and V. Heuring

CprE 281: Digital Logic

EEE2135 Digital Logic Design

LOGIC CIRCUITS. Basic Experiment and Design of Electronics

Digital Logic and Design (Course Code: EE222) Lecture 19: Sequential Circuits Contd..

Design of Datapath Controllers

Laboratory Exercise #8 Introduction to Sequential Logic

Stop Watch (System Controller Approach)

Preparation of Examination Questions and Exercises: Solutions

CPE/EE 422/522. Chapter 1 - Review of Logic Design Fundamentals. Dr. Rhonda Kay Gaede UAH. 1.1 Combinational Logic

Adders allow computers to add numbers 2-bit ripple-carry adder

Chapter 14 Sequential logic, Latches and Flip-Flops

Digital Integrated Circuits A Design Perspective

Computers also need devices capable of Storing data and information Performing mathematical operations on such data

Lecture 13: Sequential Circuits, FSM

Sequential Synchronous Circuit Analysis

Memory, Latches, & Registers

Transcription:

Chapter 3 Digital Design and Computer Architecture, 2 nd Edition David Money Harris and Sarah L. Harris Chapter 3 <1>

Chapter 3 :: Topics Introduction Latches and Flip-Flops Synchronous Logic Design Finite State Machines Timing of Sequential Logic Parallelism Chapter 3 <2>

Introduction Outputs of sequential logic depend on current and prior input values it has memory. Some definitions: State: all the information about a circuit necessary to explain its future behavior Latches and flip-flops: state elements that store one bit of state Synchronous sequential circuits: combinational logic followed by a bank of flip-flops Chapter 3 <3>

Sequential Circuits Give sequence to events Have memory (short-term) Use feedback from output to input to store information Chapter 3 <4>

State Elements The state of a circuit influences its future behavior State elements store state Bistable circuit SR Latch D Latch D Flip-flop Chapter 3 <5>

Bistable Circuit Fundamental building block of other state elements Two outputs:, No inputs I2 I1 I1 I2 Chapter 3 <6>

Bistable Circuit Analysis Consider the two possible cases: = 0: then = 1, = 0 (consistent) 1 I1 0 0 I2 1 = 1: then = 0, = 1 (consistent) 0 I1 1 1 I2 0 Stores 1 bit of state in the state variable, (or ) But there are no inputs to control the state Chapter 3 <7>

SR (Set/Reset) Latch SR Latch R N1 S N2 Consider the four possible cases: S = 1, R = 0 S = 0, R = 1 S = 0, R = 0 S = 1, R = 1 Chapter 3 <8>

SR Latch Analysis S = 1, R = 0: then = 1 and = 0 R 0 0 N1 1 S 0 1 N2 0 S = 0, R = 1: then = 1 and = 0 R 1 1 N1 0 S 0 0 N2 1 Chapter 3 <9>

SR Latch Analysis S = 1, R = 0: then = 1 and = 0 R 0 0 N1 1 Set the output S 0 1 N2 0 S = 0, R = 1: then = 1 and = 0 Reset the output R S 1 1 0 0 N1 N2 0 1 Chapter 3 <10>

SR Latch Analysis S = 0, R = 0: prev = 0 prev = 1 then = prev R 0 N1 0 R 0 N1 1 S 0 N2 S 0 N2 S = 1, R = 1: then = 0, = 0 R S 1 0 0 1 N1 N2 0 0 Chapter 3 <11>

SR Latch Analysis S = 0, R = 0: prev = 0 prev = 1 then = prev Memory! R 0 N1 0 R 0 N1 S 0 N2 S 0 N2 S = 1, R = 1: then = 0, = 0 Invalid State NOT R S 1 0 0 1 N1 N2 0 0 Chapter 3 <12>

SR Latch Symbol SR stands for Set/Reset Latch Stores one bit of state () Control what value is being stored with S, R inputs Set: Make the output 1 (S = 1, R = 0, = 1) Reset: Make the output 0 (S = 0, R = 1, = 0) SR Latch Symbol R S Chapter 3 <13>

D Latch Two inputs:, D : controls when the output changes D (the data input): controls what the output changes to Function When = 1, D passes through to (transparent) When = 0, holds its previous value (opaque) Avoids invalid case when NOT Chapter 3 <14> D Latch Symbol D

D Latch Internal Circuit D R R D S S D D 0 X 1 0 1 1 D S R Chapter 3 <15>

D Latch Internal Circuit D R R D S S D D 0 X 1 0 1 1 D X 1 0 S R 0 0 prev 0 1 0 1 1 0 1 0 prev Chapter 3 <16>

D Flip-Flop Inputs:, D Function Samples D on rising edge of When rises from 0 to 1, D passes through to Otherwise, holds its previous value changes only on rising edge of Called edge-triggered Activated on the clock edge D D Flip-Flop Symbols Chapter 3 <17>

D Flip-Flop Internal Circuit Two back-to-back latches (L1 and L2) controlled by complementary clocks When = 0 L1 is transparent L2 is opaque D passes through to N1 When = 1 L2 is transparent L1 is opaque N1 passes through to D D L1 N1 D L2 Thus, on the edge of the clock (when rises from 0 1) D passes through to Chapter 3 <18>

D Latch vs. D Flip-Flop D D D (latch) (flop) Chapter 3 <19>

D Latch vs. D Flip-Flop D D D (latch) (flop) Chapter 3 <20>

Registers D 0 D 0 D 1 D 1 D 3:0 4 4 3:0 D 2 D 2 D 3 D 3 Chapter 3 <21>

Enabled Flip-Flops Inputs:, D, EN The enable input (EN) controls when new data (D) is stored Function EN = 1: D passes through to on the clock edge EN = 0: the flip-flop retains its previous state EN Internal Circuit Symbol D 0 1 D D EN Chapter 3 <22>

Resettable Flip-Flops Inputs:, D, Reset Function: Reset = 1: is forced to 0 Reset = 0: flip-flop behaves as ordinary D flip-flop Symbols D Reset r Chapter 3 <23>

Resettable Flip-Flops Two types: Synchronous: resets at the clock edge only Asynchronous: resets immediately when Reset = 1 Asynchronously resettable flip-flop requires changing the internal circuitry of the flip-flop Synchronously resettable flip-flop? Chapter 3 <24>

Resettable Flip-Flops Two types: Synchronous: resets at the clock edge only Asynchronous: resets immediately when Reset = 1 Asynchronously resettable flip-flop requires changing the internal circuitry of the flip-flop Synchronously resettable flip-flop? Internal Circuit D Reset D Chapter 3 <25>

Settable Flip-Flops Inputs:, D, Set Function: Set = 1: is set to 1 Set = 0: the flip-flop behaves as ordinary D flip-flop Symbols D Set s Chapter 3 <26>

Sequential Logic Sequential circuits: all circuits that aren t combinational A problematic circuit: X Y Z X Y Z 0 1 2 3 4 5 6 7 8 time (ns) Chapter 3 <27>

Sequential Logic Sequential circuits: all circuits that aren t combinational A problematic circuit: X Y Z X Y Z 0 1 2 3 4 5 6 7 8 time (ns) No inputs and 1-3 outputs Astable circuit, oscillates Period depends on inverter delay It has a cyclic path: output fed back to input Chapter 3 <28>

Synchronous Sequential Logic Design Breaks cyclic paths by inserting registers Registers contain state of the system State changes at clock edge: system synchronized to the clock Rules of synchronous sequential circuit composition: Every circuit element is either a register or a combinational circuit At least one circuit element is a register All registers receive the same clock signal Every cyclic path contains at least one register Two common synchronous sequential circuits Finite State Machines (FSMs) Pipelines Chapter 3 <29>

Finite State Machine (FSM) Consists of: State register Stores current state Loads next state at clock edge Combinational logic Computes the next state Computes the outputs S S Next State Current State Next State Logic Output Logic C L Next State C L Outputs Chapter 3 <30>

Finite State Machines (FSMs) Next state determined by current state and inputs Two types of finite state machines differ in output logic: Moore FSM: outputs depend only on current state Mealy FSM: outputs depend on current state and inputs Moore FSM inputs M next state logic k next state k state output logic N outputs Mealy FSM inputs M next state logic k next state k state output logic N outputs Chapter 3 <31>

FSM Black Box Inputs:, Reset, T A, T B Outputs: L A, L B T A T B Traffic Light Controller L A L B Reset Chapter 3 <33>

FSM Example Traffic light controller Traffic sensors: T A, T B (TRUE when there s traffic) Lights: L A, L B Academic Labs L A T A Bravado Blvd. T B T B Dining Hall L B L A T A L B Fields Ave. Dorms Chapter 3 <32>

FSM State Transition Diagram Moore FSM: outputs labeled in each state States: Circles Transitions: Arcs Reset S0 L A : green L B : red Chapter 3 <34>

FSM State Transition Diagram Moore FSM: outputs labeled in each state States: Circles Transitions: Arcs Reset S0 L A : green L B : red T A TA S1 L A : yellow L B : red S3 L A : red L B : yellow T B S2 L A : red L B : green T B Chapter 3 <35>

FSM State Transition Table Current State Inputs Next State S T A T B S' S0 0 X S0 1 X S1 X X S2 X 0 S2 X 1 S3 X X Chapter 3 <36>

FSM State Transition Table Current State Inputs Next State S T A T B S' S0 0 X S1 S0 1 X S0 S1 X X S2 S2 X 0 S3 S2 X 1 S2 S3 X X S0 Chapter 3 <37>

FSM Encoded State Transition Table Current State Inputs Next State S 1 S 0 T A T B S' 1 S' 0 0 0 0 X 0 0 1 X 0 1 X X 1 0 X 0 1 0 X 1 1 1 X X State Encoding S0 00 S1 01 S2 10 S3 11 Chapter 3 <38>

FSM Encoded State Transition Table Current State Inputs Next State S 1 S 0 T A T B S' 1 S' 0 0 0 0 X 0 1 0 0 1 X 0 0 0 1 X X 1 0 1 0 X 0 1 1 1 0 X 1 1 0 1 1 X X 0 0 State Encoding S0 00 S1 01 S2 10 S3 11 S' 1 = S 1 Å S 0 S' 0 = S 1 S 0 T A + S 1 S 0 T B Chapter 3 <39>

FSM Output Table Current State Outputs S 1 S 0 L A1 L A0 L B1 L B0 0 0 0 1 1 0 1 1 Output Encoding green 00 yellow 01 red 10 Chapter 3 <40>

FSM Output Table Current State Outputs S 1 S 0 L A1 L A0 L B1 L B0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 Output Encoding green 00 yellow 01 red 10 L A1 = S 1 L A0 = S 1 S 0 L B1 = S 1 L B0 = S 1 S 0 Chapter 3 <41>

FSM Schematic: State Register S' 1 S 1 S' 0 r Reset S 0 state register Chapter 3 <42>

FSM Schematic: Next State Logic S' 1 S 1 T A T B S' 0 r Reset S 0 S 1 S 0 inputs next state logic state register Chapter 3 <43>

FSM Schematic: Output Logic L A1 S' 1 S 1 L A0 T A S' 0 r S 0 L B1 T B Reset S 1 S 0 L B0 inputs next state logic state register output logic outputs Chapter 3 <44>

FSM Timing Diagram Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10 Reset T A T B S' 1:0?? S0 (00) S1 (01) S2 (10) S3 (11) S0 (00) S1 (01) S 1:0?? S0 (00) S1 (01) S2 (10) S3 (11) S0 (00) L A1:0?? Green (00) Yellow (01) Red (10) Green (00) L B1:0?? Red (10) Green (00) Yellow (01) Red (10) 0 5 10 15 20 25 30 35 40 45 t (sec) Reset S0 L A : green L B : red T A TA S1 L A : yellow L B : red S3 L A : red L B : yellow T B T B S2 L A : red L B : green Chapter 3 <45>

FSM State Encoding Binary encoding: i.e., for four states, 00, 01, 10, 11 One-hot encoding One state bit per state Only one state bit HIGH at once i.e., for 4 states, 0001, 0010, 0100, 1000 Requires more flip-flops Often next state and output logic is simpler Chapter 3 <46>

Moore vs. Mealy FSM Alyssa P. Hacker has a snail that crawls down a paper tape with 1 s and 0 s on it. The snail smiles whenever the last two digits it has crawled over are 01. Design Moore and Mealy FSMs of the snail s brain. Chapter 3 <47>

State Transition Diagrams Moore FSM Reset 0 1 S0 0 1 0 S1 0 0 1 S2 1 Mealy FSM Reset 0/0 S0 1/0 0/0 S1 1/1 Mealy FSM: arcs indicate input/output Chapter 3 <48>

Moore FSM State Transition Table Current State Inputs Next State State Encoding S 1 S 0 A S' 1 S' 0 0 0 0 0 0 1 0 1 0 0 1 1 S0 00 S1 01 S2 10 1 0 0 1 0 1 Chapter 3 <49>

Moore FSM State Transition Table Current State Inputs Next State State Encoding S 1 S 0 A S' 1 S' 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 S0 00 S1 01 S2 10 1 0 0 0 1 1 0 1 0 0 S 1 = S 0 A S 0 = A Chapter 3 <50>

Moore FSM Output Table Current State Output S 1 S 0 Y 0 0 0 1 1 0 Chapter 3 <51>

Moore FSM Output Table Current State Output S 1 S 0 Y 0 0 0 0 1 0 1 0 1 Y = S 1 Chapter 3 <52>

Mealy FSM State Transition & Output Table Current State Input Next State Output S 0 A S' 0 Y 0 0 0 1 1 0 1 1 State Encoding S0 00 S1 01 Chapter 3 <53>

Mealy FSM State Transition & Output Table Current State Input Next State Output S 0 A S' 0 Y 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 State Encoding S0 00 S1 01 Chapter 3 <54>

Moore FSM Schematic A S' 1 S 1 Y S' 0 S 0 r Reset Chapter 3 <55>

Mealy FSM Schematic A S' 0 S 0 Y r Reset Chapter 3 <56>

Moore & Mealy Timing Diagram Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10 Cycle 11 Reset A S Y S 0 1 0 1 1 0 1 1 1 Moore Machine?? S0 S1 S2 S1 S2 S0 S1 S2 S0 Mealy Machine?? S0 S1 S0 S1 S0 S1 S0 Y Chapter 3 <57>

Factoring State Machines Break complex FSMs into smaller interacting FSMs Example: Modify traffic light controller to have Parade Mode. Two more inputs: P, R When P = 1, enter Parade Mode & Bravado Blvd light stays green When R = 1, leave Parade Mode Chapter 3 <58>

Parade FSM Unfactored FSM P R T A T B Controller FSM L A L B Factored FSM P R Mode FSM M T A T B Lights FSM L A L B Controller FSM Chapter 3 <59>

Unfactored FSM PT A Reset S0 L A : green L B : red P P S3 L A : red L B : yellow T A P PT A P P T B T A P T B S1 L A : yellow L B : red P S2 L A : red L B : green P RT A RT A R S4 L A : green L B : red R S7 L A : red L B : yellow R T A R T A R S5 L A : yellow L B : red R S6 L A : red L B : green P R RT B RT B Chapter 3 <60>

Factored FSM Reset S0 L A : green L B : red T A TA S1 L A : yellow L B : red S3 L A : red L B : yellow MT B S2 L A : red L B : green Reset S0 M: 0 P P R S1 M: 1 M + T B R Lights FSM Mode FSM Chapter 3 <61>

FSM Design Procedure 1. Identify inputs and outputs 2. Sketch state transition diagram 3. Write state transition table 4. Select state encodings 5. For Moore machine: 1. Rewrite state transition table with state encodings 2. Write output table 6. For a Mealy machine: 1. Rewrite combined state transition and output table with state encodings 7. Write Boolean equations for next state and output logic 8. Sketch the circuit schematic Chapter 3 <62>

Timing Flip-flop samples D at clock edge D must be stable when sampled Similar to a photograph, D must be stable around clock edge If not, metastability can occur Chapter 3 <63>

Input Timing Constraints Setup time: t setup = time before clock edge data must be stable (i.e. not changing) Hold time: t hold = time after clock edge data must be stable Aperture time: t a = time around clock edge data must be stable (t a = t setup + t hold ) D t setup t hold t a Chapter 3 <64>

Output Timing Constraints Propagation delay: t pcq = time after clock edge that the output is guaranteed to be stable (i.e., to stop changing) Contamination delay: t ccq = time after clock edge that might be unstable (i.e., start changing) t ccq t pcq Chapter 3 <65>

Dynamic Discipline Synchronous sequential circuit inputs must be stable during aperture (setup and hold) time around clock edge Specifically, inputs must be stable at least t setup before the clock edge at least until t hold after the clock edge Chapter 3 <66>

Dynamic Discipline The delay between registers has a minimum and maximum delay, dependent on the delays of the circuit elements 1 C L D2 (a) R1 R2 T c 1 D2 (b) Chapter 3 <67>

Setup Time Constraint Depends on the maximum delay from register R1 through combinational logic to R2 The input to register R2 must be stable at least t setup before clock edge 1 C L D2 T c R1 R2 T c 1 D2 t pcq t pd t setup Chapter 3 <68>

Setup Time Constraint Depends on the maximum delay from register R1 through combinational logic to R2 The input to register R2 must be stable at least t setup before clock edge R1 1 C L T c D2 R2 T c t pcq + t pd + t setup t pd 1 D2 t pcq t pd t setup Chapter 3 <69>

Setup Time Constraint Depends on the maximum delay from register R1 through combinational logic to R2 The input to register R2 must be stable at least t setup before clock edge R1 1 C L T c D2 R2 T c t pcq + t pd + t setup t pd T c (t pcq + t setup ) 1 D2 (t pcq + t setup ): sequencing overhead t pcq t pd t setup Chapter 3 <70>

Hold Time Constraint Depends on the minimum delay from register R1 through the combinational logic to R2 The input to register R2 must be stable for at least t hold after the clock edge R1 1 C L D2 R2 t hold < 1 D2 t ccq t cd t hold Chapter 3 <71>

Hold Time Constraint Depends on the minimum delay from register R1 through the combinational logic to R2 The input to register R2 must be stable for at least t hold after the clock edge R1 1 C L D2 R2 t hold < t ccq + t cd t cd > 1 D2 t ccq t cd t hold Chapter 3 <72>

Hold Time Constraint Depends on the minimum delay from register R1 through the combinational logic to R2 The input to register R2 must be stable for at least t hold after the clock edge 1 D2 R1 1 C L D2 R2 t hold < t ccq + t cd t cd > t hold - t ccq t ccq t cd t hold Chapter 3 <73>

Timing Analysis A Timing Characteristics t ccq = 30 ps B C X' X t pcq = 50 ps t setup = 60 ps t hold = 70 ps D t pd = t cd = Setup time constraint: T c f c = Y' Y per gate t pd t cd Hold time constraint: t ccq + t cd > t hold? = 35 ps = 25 ps Chapter 3 <74>

Timing Analysis A Timing Characteristics t ccq = 30 ps B C X' X t pcq = 50 ps t setup = 60 ps t hold = 70 ps D t pd = 3 x 35 ps = 105 ps t cd = 25 ps Setup time constraint: T c (50 + 105 + 60) ps = 215 ps f c = 1/T c = 4.65 GHz Y' Y per gate t pd t cd = 35 ps = 25 ps Hold time constraint: t ccq + t cd > t hold? (30 + 25) ps > 70 ps? No! Chapter 3 <75>

Timing Analysis Add buffers to the short paths: A Timing Characteristics t ccq t pcq = 30 ps = 50 ps B t setup = 60 ps C X' X t hold = 70 ps D t pd = Y' Y per gate t pd t cd = 35 ps = 25 ps t cd = Setup time constraint: Hold time constraint: T c t ccq + t cd > t hold? f c = Chapter 3 <76>

Timing Analysis Add buffers to the short paths: A Timing Characteristics t ccq t pcq = 30 ps = 50 ps B t setup = 60 ps C X' X t hold = 70 ps D t pd = 3 x 35 ps = 105 ps Y' Y per gate t pd t cd = 35 ps = 25 ps t cd = 2 x 25 ps = 50 ps Setup time constraint: Hold time constraint: T c (50 + 105 + 60) ps = 215 ps t ccq + t cd > t hold? f c = 1/T c = 4.65 GHz (30 + 50) ps > 70 ps? Yes! Chapter 3 <77>

Clock Skew The clock doesn t arrive at all registers at same time Skew: difference between two clock edges Perform worst case analysis to guarantee dynamic discipline is not violated for any register many registers in a system! delay 1 R1 1 C L D2 R2 2 t skew 1 2 Chapter 3 <78>

Setup Time Constraint with Skew In the worst case, 2 is earlier than 1 1 R1 1 C L T c D2 2 R2 1 2 T c 1 D2 t pcq t pd t setup t skew Chapter 3 <79>

Setup Time Constraint with Skew In the worst case, 2 is earlier than 1 1 R1 1 C L T c D2 2 R2 1 2 1 T c t pcq + t pd + t setup + t skew t pd D2 t pcq t pd t setup t skew Chapter 3 <80>

Setup Time Constraint with Skew In the worst case, 2 is earlier than 1 1 R1 1 C L T c D2 2 R2 1 2 1 T c t pcq + t pd + t setup + t skew t pd T c (t pcq + t setup + t skew ) D2 t pcq t pd t setup t skew Chapter 3 <81>

Hold Time Constraint with Skew In the worst case, 2 is later than 1 1 2 1 C D2 L R1 R2 1 2 t ccq + t cd > 1 D2 t ccq t cd t skew t hold Chapter 3 <82>

Hold Time Constraint with Skew In the worst case, 2 is later than 1 1 2 1 C D2 L R1 R2 1 2 1 t ccq + t cd > t hold + t skew t cd > D2 t ccq t cd t skew t hold Chapter 3 <83>

Hold Time Constraint with Skew In the worst case, 2 is later than 1 1 2 1 C D2 L R1 R2 1 2 1 t ccq + t cd > t hold + t skew t cd > t hold + t skew t ccq D2 t ccq t cd t skew t hold Chapter 3 <84>

Violating the Dynamic Discipline Asynchronous (for example, user) inputs might violate the dynamic discipline button D D t setup t hold t aperture Case I D Case II D??? Case III Chapter 3 <85>

Metastability Bistable devices: two stable states, and a metastable state between them Flip-flop: two stable states (1 and 0) and one metastable state If flip-flop lands in metastable state, could stay there for an undetermined amount of time metastable stable stable Chapter 3 <86>

Flip-Flop Internals Flip-flop has feedback: if is somewhere between 1 and 0, cross-coupled gates drive output to either rail (1 or 0) R N1 S N2 Metastable signal: if it hasn t resolved to 1 or 0 If flip-flop input changes at random time, probability that output is metastable after waiting some time, t: P(t res > t) = (T 0 /T c ) e -t/τ t res : time to resolve to 1 or 0 T 0, τ : properties of the circuit Chapter 3 <87>

Metastability Intuitively: T 0 /T c : probability input changes at a bad time (during aperture) P(t res > t) = (T 0 /T c ) e -t/τ τ: time constant for how fast flip-flop moves away from metastability P(t res > t) = (T 0 /T c ) e -t/τ In short, if flip-flop samples metastable input, if you wait long enough (t), the output will have resolved to 1 or 0 with high probability. Chapter 3 <88>

Synchronizers Asynchronous inputs are inevitable (user interfaces, systems with different clocks interacting, etc.) Synchronizer goal: make the probability of failure (the output still being metastable) low Synchronizer cannot make the probability of failure 0 D SYNC Chapter 3 <89>

Synchronizer Internals Synchronizer: built with two back-to-back flip-flops Suppose D is transitioning when sampled by F1 Internal signal D2 has (T c - t setup ) time to resolve to 1 or 0 D2 D F1 F2 T c D2 metastable t res t setup t pcq Chapter 3 <90>

Synchronizer Probability of Failure For each sample, probability of failure is: P(failure) = (T 0 /T c ) e -(T c - t setup )/τ D F1 D2 T c F2 D2 metastable t res t setup t pcq Chapter 3 <91>

Synchronizer Mean Time Between Failures If asynchronous input changes once per second, probability of failure per second is P(failure). If input changes N times per second, probability of failure per second is: P(failure)/second = (NT 0 /T c ) e -(T c - t setup )/τ Synchronizer fails, on average, 1/[P(failure)/second] Called mean time between failures, MTBF: MTBF = 1/[P(failure)/second] = (T c /NT 0 ) e (T c - t setup )/τ Chapter 3 <92>

Example Synchronizer D D2 F1 F2 Suppose: T c = 1/500 MHz = 2 ns τ = 200 ps T 0 = 150 ps t setup = 100 ps N = 10 events per second What is the probability of failure? MTBF? Chapter 3 <93>

Example Synchronizer D D2 F1 F2 Suppose: T c = 1/500 MHz = 2 ns τ = 200 ps T 0 = 150 ps t setup = 100 ps N = 10 events per second What is the probability of failure? MTBF? P(failure) = (150 ps/2 ns) e-(1.9 ns)/200 ps = 5.6 10-6 P(failure)/second = 10 (5.6 10-6 ) MTBF = 5.6 10-5 / second = 1/[P(failure)/second] 5 hours Chapter 3 <94>

Parallelism Two types of parallelism: Spatial parallelism duplicate hardware performs multiple tasks at once Temporal parallelism task is broken into multiple stages also called pipelining for example, an assembly line Chapter 3 <95>

Parallelism Definitions Token: Group of inputs processed to produce group of outputs Latency: Time for one token to pass from start to end Throughput: Number of tokens produced per unit time Parallelism increases throughput Chapter 3 <96>

Parallelism Example Ben Bitdiddle bakes cookies to celebrate traffic light controller installation 5 minutes to roll cookies 15 minutes to bake What is the latency and throughput without parallelism? Chapter 3 <97>

Parallelism Example Ben Bitdiddle bakes cookies to celebrate traffic light controller installation 5 minutes to roll cookies 15 minutes to bake What is the latency and throughput without parallelism? Latency = 5 + 15 = 20 minutes = 1/3 hour Throughput = 1 tray/ 1/3 hour = 3 trays/hour Chapter 3 <98>

Parallelism Example What is the latency and throughput if Ben uses parallelism? Spatial parallelism: Ben asks Allysa P. Hacker to help, using her own oven Temporal parallelism: two stages: rolling and baking He uses two trays While first batch is baking, he rolls the second batch, etc. Chapter 3 <99>

Spatial Parallelism Latency: time to first tray 0 5 10 15 20 25 30 35 40 45 50 Spatial Parallelism Tray 1 Tray 2 Tray 3 Tray 4 Ben 1 Ben 1 Alyssa 1 Alyssa 1 Ben 2 Ben 2 Alyssa 2 Alyssa 2 Roll Bake Legend Time Latency =? Throughput =? Chapter 3 <100>

Spatial Parallelism Latency: time to first tray 0 5 10 15 20 25 30 35 40 45 50 Spatial Parallelism Tray 1 Tray 2 Tray 3 Tray 4 Ben 1 Ben 1 Alyssa 1 Alyssa 1 Ben 2 Ben 2 Alyssa 2 Alyssa 2 Roll Bake Legend Time Latency = 5 + 15 = 20 minutes = 1/3 hour Throughput = 2 trays/ 1/3 hour = 6 trays/hour Chapter 3 <101>

Temporal Parallelism Latency: time to first tray 0 5 10 15 20 25 30 35 40 45 50 Temporal Parallelism Tray 1 Tray 2 Tray 3 Ben 1 Ben 1 Ben 2 Ben 2 Ben 3 Ben 3 Time Latency =? Throughput =? Chapter 3 <102>

Temporal Parallelism Latency: time to first tray 0 5 10 15 20 25 30 35 40 45 50 Temporal Parallelism Tray 1 Tray 2 Tray 3 Ben 1 Ben 1 Ben 2 Ben 2 Ben 3 Ben 3 Time Latency = 5 + 15 = 20 minutes = 1/3 hour Throughput = 1 trays/ 1/4 hour = 4 trays/hour Using both techniques, the throughput would be 8 trays/hour Chapter 3 <103>