Designing Sequential Logic Circuits

Similar documents
Lecture 9: Sequential Logic Circuits. Reading: CH 7

EE141- Spring 2007 Digital Integrated Circuits

Digital Integrated Circuits A Design Perspective

Digital Integrated Circuits A Design Perspective

Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolic. November Digital Integrated Circuits 2nd Sequential Circuits

Integrated Circuits & Systems

GMU, ECE 680 Physical VLSI Design

9/18/2008 GMU, ECE 680 Physical VLSI Design

EECS 427 Lecture 15: Timing, Latches, and Registers Reading: Chapter 7. EECS 427 F09 Lecture Reminders

MODULE 5 Chapter 7. Clocked Storage Elements

Digital Integrated Circuits A Design Perspective

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

ΗΜΥ 307 ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ Εαρινό Εξάμηνο 2018

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

Problem Set 9 Solutions

CMPEN 411. Spring Lecture 18: Static Sequential Circuits

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

Fundamentals of Computer Systems

Clock Strategy. VLSI System Design NCKUEE-KJLEE

EECS 427 Lecture 14: Timing Readings: EECS 427 F09 Lecture Reminders

Y. Tsiatouhas. VLSI Systems and Computer Architecture Lab

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

EE115C Winter 2017 Digital Electronic Circuits. Lecture 19: Timing Analysis

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

CMPEN 411 VLSI Digital Circuits Spring 2012 Lecture 17: Dynamic Sequential Circuits And Timing Issues

EE382 Processor Design Winter 1999 Chapter 2 Lectures Clocking and Pipelining

Lecture 9: Clocking, Clock Skew, Clock Jitter, Clock Distribution and some FM

Hold Time Illustrations

UNIVERSITY OF CALIFORNIA

Timing Issues. Digital Integrated Circuits A Design Perspective. Jan M. Rabaey Anantha Chandrakasan Borivoje Nikolić. January 2003

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

Digital System Clocking: High-Performance and Low-Power Aspects. Vojin G. Oklobdzija, Vladimir M. Stojanovic, Dejan M. Markovic, Nikola M.

Issues on Timing and Clocking

The Linear-Feedback Shift Register

Lecture 4: Technology Scaling

GMU, ECE 680 Physical VLSI Design 1

ALU, Latches and Flip-Flops

Reducing Delay Uncertainty in Deeply Scaled Integrated Circuits Using Interdependent Timing Constraints

EE141. Lecture 28 Multipliers. Lecture #20. Project Phase 2 Posted. Sign up for one of three project goals today

Sequential vs. Combinational

Topics. Dynamic CMOS Sequential Design Memory and Control. John A. Chandy Dept. of Electrical and Computer Engineering University of Connecticut

ELCT201: DIGITAL LOGIC DESIGN

Adders, subtractors comparators, multipliers and other ALU elements

Sequential Logic Design: Controllers

Lecture 27: Latches. Final presentations May 8, 1-5pm, BWRC Final reports due May 7 Final exam, Monday, May :30pm, 241 Cory

EE241 - Spring 2007 Advanced Digital Integrated Circuits. Announcements

EET 310 Flip-Flops 11/17/2011 1

ESE 570: Digital Integrated Circuits and VLSI Fundamentals

Chapter 13. Clocked Circuits SEQUENTIAL VS. COMBINATIONAL CMOS TG LATCHES, FLIP FLOPS. Baker Ch. 13 Clocked Circuits. Introduction to VLSI

Memory, Latches, & Registers

Introduction EE 224: INTRODUCTION TO DIGITAL CIRCUITS & COMPUTER DESIGN. Lecture 6: Sequential Logic 3 Registers & Counters 5/9/2010

CPE100: Digital Logic Design I

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

Topics. CMOS Design Multi-input delay analysis. John A. Chandy Dept. of Electrical and Computer Engineering University of Connecticut

Xarxes de distribució del senyal de. interferència electromagnètica, consum, soroll de conmutació.

Clock signal in digital circuit is responsible for synchronizing the transfer to the data between processing elements.

Digital Logic Design - Chapter 4

ALU A functional unit

Lecture 9: Interconnect

Synchronous Sequential Logic

Lecture 7: Logic design. Combinational logic circuits

EE371 - Advanced VLSI Circuit Design

P2 (10 points): Given the circuit below, answer the following questions:

Time Allowed 3:00 hrs. April, pages

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

Skew-Tolerant Circuit Design

Lecture 11: MOSFET Modeling

EE241 - Spring 2006 Advanced Digital Integrated Circuits

Fundamentals of Computer Systems

Fundamentals of Computer Systems

CHAPTER 9: SEQUENTIAL CIRCUITS

Sequential Logic Circuits

Methodology to Achieve Higher Tolerance to Delay Variations in Synchronous Circuits

Chapter 7 Sequential Logic

Adders, subtractors comparators, multipliers and other ALU elements

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

UNIVERSITY OF CALIFORNIA, BERKELEY College of Engineering Department of Electrical Engineering and Computer Sciences

LECTURE 28. Analyzing digital computation at a very low level! The Latch Pipelined Datapath Control Signals Concept of State

EE141Microelettronica. CMOS Logic

Laboratory Exercise #8 Introduction to Sequential Logic

Latches. October 13, 2003 Latches 1

TAU 2014 Contest Pessimism Removal of Timing Analysis v1.6 December 11 th,

Chapter 4. Sequential Logic Circuits

Introduction to Digital Logic

Lecture 1: Circuits & Layout

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

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

LOGIC CIRCUITS. Basic Experiment and Design of Electronics. Ho Kyung Kim, Ph.D.

UMBC. At the system level, DFT includes boundary scan and analog test bus. The DFT techniques discussed focus on improving testability of SAFs.

Sequential Logic. Road Traveled So Far

State and Finite State Machines

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

S.Y. Diploma : Sem. III [DE/ED/EI/EJ/EN/ET/EV/EX/IC/IE/IS/IU/MU] Principles of Digital Techniques

Digital Design. Sequential Logic

MOSIS REPORT. Spring MOSIS Report 1. MOSIS Report 2. MOSIS Report 3

ESE 570: Digital Integrated Circuits and VLSI Fundamentals

Homework 2 due on Wednesday Quiz #2 on Wednesday Midterm project report due next Week (4 pages)

CSE241 VLSI Digital Circuits Winter Lecture 07: Timing II

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

Menu. Master-Slave Flip-Flop

Transcription:

igital Integrated Circuits (83-313) Lecture 5: esigning Sequential Logic Circuits Semester B, 2016-17 Lecturer: r. Adam Teman TAs: Itamar Levi, Robert Giterman 26 April 2017 isclaimer: This course was prepared, in its entirety, by Adam Teman. Many materials were copied from sources freely available on the internet. When possible, these sources have been cited; however, some references may have been cited incorrectly or overlooked. If you feel that a picture, graph, or code example has been copied from you and either needs to be cited or removed, please feel free to email adam.teman@biu.ac.il and I will address this as soon as possible.

Sequential Logic Sequential circuits are a function of both the current state and the previous state. In other words, they have memory. The majority of sequential circuits are Synchronous, using a clock to synchronize the logic paths. www.tutorialspoint.com 2

3 Lecture Content

4 Why use Sequential Logic?

Explanation through example We will look at two examples: An accumulator circuit, where sequential methods are essential to eliminate races. A pipelined system, where sequential methods improve throughput. 5

6 What would happen if there were no traffic lights?

Accumulator Example An accumulator is a register that sums a list of numbers. Therefore, it feeds back the output back to the input. Without a register, there would be the possibility that the input would change before the calculation was finished. We need to delay the output until the original calculation is finished. IN 01 01+10=11 1+1=0 c1 + XX0 001 011c10 OUT X00 c10 001 7

Accumulator Example It is essential to use sequential logic when paths have different delays, but need to converge together. We always have to slow our fast paths down so they arrive along with our slowest path. If we could make all paths have equal delays, we wouldn t need sequential logic, but this is really hard (almost impossible) to do. 8

Laundry Example Small laundry has one washer, one dryer and one operator, it takes 90 minutes to finish one load: Washer takes 30 minutes ryer takes 40 minutes operator folding takes 20 minutes 9

Sequential Laundry It takes 90 minutes to finish one load. The process is sequential. Sequential laundry takes 6 hours for 4 loads. 10

Pipelined Laundry Every 40 minutes a new load starts and a new load ends. Pipelined laundry takes 3.5 hours for 4 loads 11

Instruction Output Pipelining ata If it takes 10 time units to process an instruction, we could perform one instruction every 10 time units: Instruction Output elay But if we divide the process into 5 tasks that take 2 time units each: 12 elay We can start a new instruction every 2 time units. And after filling the pipe, we finish an instruction every 2 units.

Pipelining ata But some stages may be faster than others, so we need to hold the input to each stage constant until the previous stage is done. We achieve this by adding a register in between the stages. So by using a pipeline, we can make our slowest path shorter and therefore reduce the delay between actions. All data paths are built using a pipeline of some sort, either to eliminate races or to increase throughput. 13

MIPS Pipeline source: wikipedia 14

15 Sequential Logic Elements

sample sample Naming Conventions In our course we relate to registers as follows: a latch is level sensitive transparent transparent opaque opaque a flip-flop is edge-triggered locked locked 16 There are many different naming conventions For instance, many books call any bi-stable element a flip-flop (such as an SR Latch) However, this leads to confusion, so we will use the convention above (as used in industry).

Latch Vs. Register uring high clock phases, a latch is transparent, latching the input on the falling edge. However, a Flip Flop only samples the input on the rising edge. Clock Input () Latch Q 17 Flip Flop Q

Latch Vs. Register 3 main options for sequential timing: Using Flip-Flops Using Transparent Latches Using Pulsed Latches 18

Static Vs. ynamic Latch A static latch stores its output in a static state A dynamic latch uses temporary capacitance to store its state. As with logic, this provides a trade-off between area, speed and reliability. S 0 CLK Q MUX 2:1 Q S 1 S 19 CLK Static Latch ynamic Latch

Static Vs. ynamic Latch Some basic implementations of static and dynamic latches. Static CLK CLK ynamic Q CLK Q CLK CLK 20

Ratioed vs. Non-Ratioed Latch A static latch can be made by using a feedback inverter. The TG (with the driver before it) must overcome the feedback inverter to write into the latch. CLK CLK But it is usually more robust to create a mux-based non-ratioed latch. At the expense of size. CLK CLK Q 21 CLK

mid Making a Flip Flop Input Q Q out Conceptually, we can create an edge triggered flip-flop by combining two opposite polarity latches: clk clk Input Q mid Q out 22

Master-Slave (Edge-Triggered) Register Two opposite latches trigger on edge Also called master-slave latch pair 23

Master-Slave Register Multiplexer-based latch pair I 2 T 2 I 3 I 5 T 4 I 6 Q I 1 T 1 Q M I 4 T 3 CLK 24 How many transistors make up this flip-flop? What is its clock load?

Resettable Flip Flops Asynchronous Set/Reset Flip-Flop Synchronous Reset Flip-Flop 25

26 Timing Parameters of Sequential Elements

Timing efinitions Register Q CLK CLK t t setup ATA STABLE t hold t cq t t cq t setup propagation delay setup time Q ATA STABLE t t hold hold time 27

Clk-Q elay - t cq t cq is the time from the clock edge until the data appears at the output. The t cq for rising and falling outputs is different. clk Q t cqlh t cqhl t cqlh 28

Mux based FF t cq Calculation uring low clock edge, data traverses slave and waits for the clock at pass gate input. When clock rises, data has to go through pass gate and inverter. I 2 T 2 I 3 I 5 T 4 I 6 Q I 1 T 1 Q M I 4 T 3 CLK t T I cq 3 6 29

Timing efinitions Register Q CLK CLK t t setup ATA STABLE t hold t cq t t cq t setup propagation delay setup time Q ATA STABLE t t hold hold time 30

Setup Time - t su Setup time is the time the data has to arrive before the clock to ensure correct sampling. clk t su t su t su Good! Good! BA! Q 31

Mux based FF t su Calculation Before clock edge, data should have propagated to the latching pass gate, or else data will be restored to the previous state. I 2 T 2 I 3 I 5 T 4 I 6 Q I 1 T 1 Q M I 4 T 3 CLK 32 t I T I I T I su 1 1 3 2 3

Timing Analysis - Setup Time To obtain the setup time of the register while using SPICE, we progressively skew the input with respect to the clock edge until the circuit fails. 33

Timing efinitions Register Q CLK CLK t t setup ATA STABLE t hold t cq t t cq t setup propagation delay setup time Q ATA STABLE t t hold hold time 34

Hold Time - t hold Hold time is the time the data has to be stable after the clock to ensure correct sampling. clk t hold t hold t hold Good! Good! BA! Q Often (optimally), Hold Time is negative! 35

Mux based FF t hold Calculation When the clock rises, T 1 closes, latching the data at the output of I 1. Therefore, any changes made t pd (I 1 ) before the clock will not traverse. The hold time is t pd (I 1 ) I 2 T 2 I 3 I 5 T 4 I 6 Q CLK I 1 T 1 Q M I 4 T 3 thold I 1 36

Characterizing Timing t - Q Q Q Clk Clk t C - Q t C - Q Register Latch 37

38 Other Flip Flop Implementations

Problem Clock Overlap CLK CLKb I 2 T 2 I 3 I 5 T 4 I 6 Q I 1 T 1 Q M I 4 T 3 CLK 39

C 2 MOS clocked CMOS Insensitive to clock overlap. Low Phase Overlap High Phase Overlap CLK 40 CLKb

TSPC True Single-Phase Clocked Register TSPC enables including logic inside the latch! Positive latch (transparent when CLK= 1) Example: AN latch 41 Negative latch (transparent when CLK= 0)

TSPC Flip Flop V V V M 3 CLK M 6 M 9 Q Y Q CLK M 2 X M 5 CLK M 8 M 1 CLK M 4 M 7 42

Pulse-Triggered Latches Instead of a full set of master-slave latches We can emulate an edge with a short clock pulse: ata Clk Master-Slave Latches L1 L2 Q Q Clk Clk ata Pulse-Triggered Latch L Q esign a clock pulse with a clock chopper Clk Clk 43

44 Basic Timing Constraints

45 Synchronous Timing

Timing Constraints There are two main problems that can arise in synchronous logic: Max elay: The data doesn t have enough time to pass from one register to the next before the next clock edge. Min elay: The data path is so short that it passes through several registers during the same clock cycle. Max delay violations are a result of a slow data path, including the registers t setup, therefore it is often called the Setup path. Min delay violations are a result of a short data path, causing the data to change before the t hold has passed, therefore it is often called the Hold path. 46

Setup (Max) Constraint Let s see what makes up our clock cycle: After the clock rises, it takes t cq for the data to propagate to point A. Then the data goes through the delay of the logic to get to point B. The data has to arrive at point B, t setup before the next clock. In general, our timing path is a race: Between the ata Arrival, starting with the launching clock edge. And the ata Capture, one clock period later. clk t cq Q Q A Logic B 47 A B t su clk

Setup (Max) Constraint T t t t cq logic setup 48

Hold (Min) Constraint Hold problems occur due to the logic changing before t hold has passed. This is not a function of cycle time it is relative to a single clock edge! Let s see how this can happen: The clock rises and the data at A changes after t cq. The data at B changes t pd (logic) later. Since the data at B had to stay stable for t hold after the clock (for the second register), the change at B has to be at least t hold after the clock edge. 49 clk A B t cq t hold Logic Q Q clk A B

Hold (Min) Constraint t t t cq logic hold 50

Summary For Setup constraints, the clock period has to be longer than the data path delay: This sets our maximum frequency. If we have setup failures, we can always just slow down the clock. T t t t cq logic setup For Hold constrains, the data path delay has to be longer than the hold time: This is independent of clock period. If there is a hold failure, you can throw your chip away! t t t cq logic hold 51

t RV_CLK Clock Nonidealities Ref_Clock Clock skew t skew t jit t skew t jit Spatial variation in temporally equivalent clock edges; deterministic + random, t skew t RVCLK Received Clock trcv_clk T Clock uncertainty: jitter+skew Clock jitter Temporal variations in consecutive edges of the clock signal; modulation + random noise Cycle-to-cycle (short-term) t Jit,S Long term t Jit,L Ref_Clock t skew t jit t skew t jit 52 Variation of the pulse width Important for level sensitive clocking Received Clock t RCVCLK T

Positive and Negative Skew In R1 Q Combinational Logic R2 Q Combinational Logic R3 Q CLK t CLK1 t CLK2 t CLK3 delay Positive skew delay In R1 Q Combinational Logic R2 Q Combinational Logic R3 Q t CLK1 t CLK2 t CLK3 delay Negative skew delay CLK 53

Setup (Max) Constraint The Launch path (still) consists of: 54 t cq +t logic +t setup But if jitter makes the launch clock later, we need to add it to the data path delay. The Capture path consists of: The clock period (T) Positive skew means the capture clock path is longer. t T t If jitter makes the capture clock earlier, we need to subtract it. Our max constraint is: So we get: T t t t 2t cq logic setup jitter skew tlaunch tcq tlogic tsetup tjitter capture skew jitter t capture t launch

Setup (Max) Constraint ata has to arrive before next clock edge. δ T t t t t 2 skew cq logic setup jitter 55

Hold (Min) Constraint 56 The Launch path (still) consists of: t cq +t logic But if jitter makes the launch clock later, we need to subtract it from the data path delay. The Capture path consists of: Skew that makes the clock edge arrive at the capture register later than at the launch register. Actually, since it is a single clock edge, jitter should effect the capture clock the same as the launch clock. But as a worst case, we will add it as spatial jitter. tlaunch tcapture Our min constraint is: So we get: tlaunch tcq tlogic tjitter t t t t t t t capture skew jitter hold 2 cq logic skew hold jitter

Hold (Min) Constraint ata has to arrive before after same clock edge has arrived at capture reg. δ t t t t 2 cq logic hold skew jitter 57

Adding in Variation Later in the course, we will discuss how variations in both fabrication and operating conditions occur and are taken into account. For now, we should assume that certain fabrication characteristics and operating conditions: Can make our gates slower (i.e., high VT, high temperature, low voltage). Can make our gates faster (i.e., low VT, low temperature, high voltage). To assume worst-case conditions: Calculate max-delay with the slowest possible transitions. Calculate min -delay with the fastest possible transitions. 58

59 Static Timing Analysis Example

STA Example We are given a synchronous network with: t 150 ps, t 50 ps, t 100 ps, t 0 In addition: CQ SU hold jitter t 100 ps, t 50ps skew1 skew2 60

STA Example We ll find the setup constraints for each path: Path 1: Path 2: T t t t CL t 1 skew1 CQ1 p,max 1 SU 2 1 T 150 p 1.2n 50 p 100 p 1500 p 1.5ns 666MHz T t t t t CL t 2 skew2 skew1 CQ2 p,max 2 SU 3 T 150 p 800 p 50 p 150 p 850 p 1.17GHz 2 61 Path 3: T 0 t t t CL t 3 skew2 CQ3 p,max 3 SU1 T 150 p 700 p 50 p 50 p 950 p 1.05GHz 3 So the critical path is Path 1 and the maximum frequency is 666MHz.

STA Example Now, we ll find the hold constraints for t skew1 and t skew2 : Path 1: Path 2: Path 3: 0 t t t t CL skew1 hold 2 CQ1 p,min 1 t 150 p 250 p 100 p 300 p skew1 tskew2 tskew 1 thold 3 tcq2 t p,min CL2 t t 150 p 150 p 100 p 200 p skew2 skew1 t t t t CL skew2 hold1 CQ3 p,min 3 skew2 skew2 t 150 p 200 p 100 p 250 p t 250 p 62

STA Example 63 If we could set t skew1 and t skew2, could we use them to maximize our frequency? If we could equally divide the delay of each path: t 3 t t ( CL CL CL ) 3 t total CQ p,max 1 2 3 SU 450 p 2.7n 150 p 3.3n sec So to get the max frequency, set all delays to 1.1nsec: 1.1ns t 150 p 1.2n 50 p t 300 psec skew1 skew1 1.1ns t t 150 p 800 p 50 p t 200 psec skew2 skew1 skew2 1.1ns 0 t 150 p 700 p 50 p t 200 psec skew2 skew2

Further Reading J. Rabaey, igital Integrated Circuits 2003, Chapter 7 Weste, Harris CMOS VLSI esign Chapter 7 E. Alon, Berkeley EE-141, Lectures 23,24 (Fall 2010) http://bwrc.eecs.berkeley.edu/classes/icdesign/ee141_f10/ Berkeley CS-150, Lecture 4 http://inst.eecs.berkeley.edu/~cs150/ Oklobdzija, Stojanovic, Markovic, Nedovic, igital System Clocking 64