Lecture 7: Sequential Networks

Similar documents
ALU, Latches and Flip-Flops

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

Adders, subtractors comparators, multipliers and other ALU elements

Lecture 8: Sequential Networks and Finite State Machines

ELCT201: DIGITAL LOGIC DESIGN

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

Adders, subtractors comparators, multipliers and other ALU elements

CSE 140: Components and Design Techniques for Digital Systems. Lecture 9: Sequential Networks: Implementation

Sequential Logic Circuits

Synchronous Sequential Logic

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

Chapter 7 Sequential Logic

Sequential vs. Combinational

Chapter 4. Sequential Logic Circuits

Sequential Logic. Rab Nawaz Khan Jadoon DCS. Lecturer COMSATS Lahore Pakistan. Department of Computer Science

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

Introduction to Digital Logic

CPE100: Digital Logic Design I

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

Lecture 10: Sequential Networks: Timing and Retiming

LOGIC CIRCUITS. Basic Experiment and Design of Electronics

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

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

Topic 8: Sequential Circuits

Sequential Logic Worksheet

Sequential Circuits Sequential circuits combinational circuits state gate delay

Chapter 14 Sequential logic, Latches and Flip-Flops

I. Motivation & Examples

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

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

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

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

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

EEE2135 Digital Logic Design

Problem Set 9 Solutions

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

CS221: Digital Design. Indian Institute of Technology Guwahati

Using the NOT realization from the NAND, we can NOT the output of the NAND gate making it a NOT NOT AND or simply an AND gate.

ECE/Comp Sci 352 Digital Systems Fundamentals. Charles R. Kime Section 2 Fall Logic and Computer Design Fundamentals

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

EET 310 Flip-Flops 11/17/2011 1

Integrated Circuits & Systems

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

Latches. October 13, 2003 Latches 1

Sequential Logic (3.1 and is a long difficult section you really should read!)

Laboratory Exercise #8 Introduction to Sequential Logic

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

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

CSE140: Digital Logic Design Registers and Counters

Different encodings generate different circuits

Topic 8: Sequential Circuits. Bistable Devices. S-R Latches. Consider the following element. Readings : Patterson & Hennesy, Appendix B.4 - B.

Chapter 3 Digital Logic Structures

EECS150 - Digital Design Lecture 23 - FFs revisited, FIFOs, ECCs, LSFRs. Cross-coupled NOR gates

Finite State Machine (1A) Young Won Lim 6/9/18

Chapter #6: Sequential Logic Design

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

Clocked Sequential Circuits UNIT 13 ANALYSIS OF CLOCKED SEQUENTIAL CIRCUITS. Analysis of Clocked Sequential Circuits. Signal Tracing and Timing Charts

CMPEN 411. Spring Lecture 18: Static Sequential Circuits

Synchronous Sequential Circuit

Digital Design. Sequential Logic

Digital Circuits and Systems

Lecture 7: Logic design. Combinational logic circuits

Models for representing sequential circuits

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

DIGITAL LOGIC CIRCUITS

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

Unit II Chapter 4:- Digital Logic Contents 4.1 Introduction... 4

Vidyalankar S.E. Sem. III [ETRX] Digital Circuits and Design Prelim Question Paper Solution

State and Finite State Machines

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

Chapter 4 Part 2 Sequential Circuits

CSE 140 Midterm 2 Tajana Simunic Rosing. Spring 2008

Review: Designing with FSM. EECS Components and Design Techniques for Digital Systems. Lec09 Counters Outline.

CPE100: Digital Logic Design I

Review for B33DV2-Digital Design. Digital Design

ALU A functional unit

S.Y. Diploma : Sem. III [CO/CM/IF/CD/CW] Digital Techniques

Overview of Chapter 4

EE141- Spring 2007 Digital Integrated Circuits

Lecture 9: Sequential Logic Circuits. Reading: CH 7

EE40 Lec 15. Logic Synthesis and Sequential Logic Circuits

ELCT201: DIGITAL LOGIC DESIGN

Memory, Latches, & Registers

Review: Designing with FSM. EECS Components and Design Techniques for Digital Systems. Lec 09 Counters Outline.

ESE 570: Digital Integrated Circuits and VLSI Fundamentals

Digital Logic Design - Chapter 4

EE 209 Logic Cumulative Exam Name:

CprE 281: Digital Logic

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

Sequential Circuit Design

Digital Electronics Sequential Logic

Week-5. Sequential Circuit Design. Acknowledgement: Most of the following slides are adapted from Prof. Kale's slides at UIUC, USA.

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

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI

10/12/2016. An FSM with No Inputs Moves from State to State. ECE 120: Introduction to Computing. Eventually, the States Form a Loop

MODULE 5 Chapter 7. Clocked Storage Elements

6 Synchronous State Machine Design

Konstruktion av Vippor och Latchar

The Design Procedure. Output Equation Determination - Derive output equations from the state table

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI

Transcription:

CSE 140: Components and Design Techniques for Digital Systems Lecture 7: Sequential Networks CK Cheng Dept. of Computer Science and Engineering University of California, San Diego 1

Part II: Sequential Networks Introduction Sequential circuits Memory hierarchy Basic mechanism of memory Basic Building Blocks Latches Flip-Flops Examples of Memory Modules Implementation Finite state machine 2

What is a sequential circuit? A circuit whose output depends on current inputs and past outputs A circuit with memory Memory: a key parameter is Time Memory / Time steps x i s i y i Clock 3

Sequential Networks: Key features Memory: Flip flops Specification: Finite State Machines Implementation: Excitation Tables Main Theme: Timing x i Clock s i y i Present time = t and next time = t+1 Timing constraints to separate the present and next times. X S t+1 S t Combinational logic Y clock Memory / Time steps y i = f i (S t,x) s i t+1 = g i (S t,x) 4

Sequential Networks: Key features Main Theme: Timing Present time = t and next time = t+1 Timing constraints to separate the present and next times. X clock S t+1 S t Combinational logic Y y i = f i (S t,x) s i t+1 = g i (S t,x) X Combinational logic Y S t clock 5

Memory Hierarchy What are registers made of? Flip-Flops, Latches Registers Cache Main Memory Hard disk 6

Fundamental Memory Mechanism I2 I1 I1 I2 7

Memory Mechanism: Capacitive Load Fundamental building block of sequential circuits Two outputs:, There is a feedback loop! In a typical combinational logic, there is no feedback loop. No inputs I2 I1 I1 I2 8

Capacitive Loads Consider the two possible cases: = 0: then = 1 and = 0 (consistent) 1 I1 0 = 1: then = 0 and = 1 (consistent) Bistable circuit stores 1 bit of state in the state variable, (or ) Hold the value due to capacitive charges and feedback loop strengthening But there are no inputs to control the state 0 0 1 I2 I1 I2 1 1 0 9

iclicker. Given a memory component made out of a loop of inverters, the number of inverters in the loop has to be A. Even B. Odd C. No constraints 10

Basic Building Blocks Latches (Level Sensitive) SR Latches, D Latches Flip-Flops (Edge Triggered) D FFs, JK FFs, T FFs Examples of Memory Modules Registers, Shift Registers, Pattern Recognizers, Counters, FIFOs 11

Flight attendant call button Flight attendant call button Press call: light turns on Stays on after button released Press cancel: light turns off Logic gate circuit to implement this? Call button Cancel button Bit Storage Blue light 1. Call button pressed light turns on SR latch implementation Call=1 : sets to 1 and keeps it at 1 Cancel=1 : resets to 0 Call button Cancel button Bit Storage Blue light 2. Call button released light stays on a C all button S Call button Cancel button Bit Storage Blue light Cancel button R Blue light 3. Cancel button pressed light turns off 12

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 13

SR Latch Analysis S = 1, R = 0: then = 1 and = 0 R 0 N1 S 1 N2 S = 0, R = 1: then = 0 and = 1 R 1 N1 S 0 N2 14

SR Latch Analysis S = 0, R = 0: then = prev prev = 0 prev = 1 R 0 N1 0 R 0 N1 S 0 N2 S 0 N2 S = 1, R = 1: then = 0 and = 0 R 1 N1 S 1 N2 15

SR Latch S y y = (S+) R = (R+y) S R y Inputs: S, R State: (, y) 16

id S R t yt t yt t yt t yt 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 2 0 0 1 0 1 0 1 0 1 0 3 0 0 1 1 0 0 1 1 0 0 4 0 1 0 0 0 1 0 1 0 1 5 0 1 0 1 0 1 0 1 0 1 S y y = (S+) 6 0 1 1 0 0 1 0 1 0 1 7 0 1 1 1 0 1 0 1 0 1 8 1 0 0 0 1 0 1 0 1 0 9 1 0 0 1 1 0 1 0 1 0 R = (R+y) 10 1 0 1 0 1 0 1 0 1 0 11 1 0 1 1 1 0 1 0 1 0 12 1 1 0 0 0 0 0 0 0 0 13 1 1 0 1 0 0 0 0 0 0 14 1 1 1 0 0 0 0 0 0 0 15 1 1 1 1 0 0 0 0 0 0 17

id S R t yt t yt t yt t yt 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 2 0 0 1 0 1 0 1 0 1 0 3 0 0 1 1 0 0 1 1 0 0 4 0 1 0 0 0 1 0 1 0 1 5 0 1 0 1 0 1 0 1 0 1 6 0 1 1 0 0 1 0 1 0 1 7 0 1 1 1 0 1 0 1 0 1 8 1 0 0 0 1 0 1 0 1 0 9 1 0 0 1 1 0 1 0 1 0 10 1 0 1 0 1 0 1 0 1 0 11 1 0 1 1 1 0 1 0 1 0 12 1 1 0 0 0 0 0 0 0 0 13 1 1 0 1 0 0 0 0 0 0 14 1 1 1 0 0 0 0 0 0 0 15 1 1 1 1 0 0 0 0 0 0 State Table y\sr 00 01 10 11 00 11 01 10 00 01 01 01 10 00 10 10 01 10 00 11 00 01 10 00 18

CASES: SR=01: (,y) = (0,1) SR=10: (,y) = (1,0) SR=11: (,y) = (0,0) SR= 00: (,y) does not change if (,y)=(1,0) or (0,1) However, when (,y) = (0,0) or (1,1), the output keeps changing Remark: To verify the design, we need to enumerate all combinations. 19

State diagram y State Present State SR Transition y State Next State y\sr 00 01 10 11 00 11 01 10 00 01 01 01 10 00 10 10 01 10 00 11 00 01 10 00 00 01 01 0 1 01 11 00 11 10 01 11 10 0 0 1 1 00 1 0 11 10 00 10 20

CASES: SR=01: (,y) = (0,1) SR=10: (,y) = (1,0) SR=11: (,y) = (0,0) SR= 00: (,y) does not change if (,y)=(1,0) or (0,1) However, when (,y) = (0,0) or (1,1), the output keeps changing. Suppose that we can set the initial state (,y)=(0,1). To avoid the SR latch output from toggling or behaving in an undefined way which input combinations should be avoided: A. (S, R) = (0, 0) B. (S, R) = (1, 1) C. None of the above 21

CASES: SR=01: (,y) = (0,1) SR=10: (,y) = (1,0) SR=11: (,y) = (0,0) SR= 00: (,y) does not change if (,y)=(1,0) or (0,1) However, when (,y) = (0,0) or (1,1), the output keeps changing We set the initial state (,y)=(0,1) or (1,0). To avoid the state (,y)= (0,0) or (1,1), we block the input SR=11. Thus, without input SR=11, the state can only be (,y)=(0,1) or (1,0). 22

SR Latch 00 01 01 01 10 01 11 10 11 10 00 10 01 11 00 10 00 11 11 00 The only way to reach state (,y)=(0,0) or (1,1) is via edge labeled SR=11. 23

SR Latch Analysis S = 0, R = 0: then = prev and = prev (memory!) prev = 0 prev = 1 R 0 1 N1 0 R 0 0 N1 1 S 0 0 N2 1 S 1 0 N2 0 S = 1, R = 1: then = 0 and = 0 (invalid state: NOT ) 1 R 0 N1 0 S 0 1 N2 0 24

SR Latch CASES SR=01: (,y) = (0,1) SR=10: (,y) = (1,0) SR=11: (,y) = (0,0) SR = 00: if (,y) = (0,0) or (1,1), the output keeps changing Solutions: Avoid the case that SR = (1,1). State table SR inputs PS 00 01 10 11 0 0 0 1 - (t) 1 1 0 1 - Characteristic Expression (t+1) = S(t)+R (t)(t) (t+1) NS (next state) 25

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) Must do something to avoid invalid state (when S = R = 1) SR Latch Symbol R S 26

D Latch Two inputs: CLK, D CLK: controls when the output changes D (the data input): controls what the output changes to Function When CLK = 1, D passes through to (the latch is transparent) When CLK = 0, holds its previous value (the latch is opaque) Avoids invalid case when NOT D Latch Symbol D CLK 27

D Latch Internal Circuit SR Latch Symbol R S CLK D 28

D Latch Internal Circuit CLK D D R S R S CLK D CLK D 0 X 1 0 1 1 D S R 29

D Latch Internal Circuit CLK D R R CLK D D S S CLK 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 30

D Flip-Flop Two inputs: CLK, D Function The flip-flop samples D on the rising edge of CLK When CLK rises from 0 to 1, D passes through to Otherwise, holds its previous value changes only on the rising edge of CLK A flip-flop is called an edge-triggered device because it is activated on the clock edge D D Flip-Flop Symbols 31

D Flip-Flop Internal Circuit CLK D CLK D N1 CLK D L1 L2 32

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

D Flip-Flop vs. D Latch CLK D D CLK D (latch) (flop) 34

D Flip-Flop vs. D Latch CLK D D CLK D (latch) (flop) 35

Latch and Flip-flop (two latches) A latch can be considered as a door CLK = 0, door is shut CLK = 1, door is unlocked A flip-flop is a two door entrance CLK = 1 CLK = 0 CLK = 1 36

D Flip-Flop (Delay) CLK D CLK D CLK D L1 N1 CLK D L2 Id D (t) (t+1) 0 0 0 0 1 0 1 0 2 1 0 1 3 1 1 1 State table PS D 0 1 0 0 1 1 0 1 NS= (t+1) Characteristic Expression: (t+1) = D(t) 37

iclicker Can D flip-flip serve as a memory component? A.Yes B.No 38

JK F-F J CLK K State table PS JK 00 01 10 11 0 0 0 1? 1 1 0 1? (t+1) 39

JK F-F J CLK K State table PS JK 00 01 10 11 0 0 0 1 1 1 1 0 1 0 (t+1) Characteristic Expression (t+1) = (t)k (t)+ (t)j(t) 40

T Flip-Flop (Toggle) T CLK State table PS T 0 1 0 0 1 1 1 0 (t+1) Characteristic Expression (t+1) = (t)t(t) + (t)t (t) 41

Using a JK F-F to implement a D and T F-F x CLK J K iclicker What is the function of the above circuit? A. D F-F B. T F-F C. None of the above 42

Using a JK F-F to implement a D and T F-F T CLK J K T flip flop 43

Rising vs. Falling Edge D Flip-Flop The triangle means clock input, edge triggered D D Internal design: Just invert servant clock rather than master Symbol for rising-edge triggered D flip-flop Symbol for falling-edge triggered D flip-flop rising edges Clk Clk falling edges 44

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

46

Bit Storage Overview S (set) R (reset) SR latch Level-sensitive SR latch S S1 C R R1 D C S R D latch D Clk D latch Dm m C m master D flip-flop D latch Ds s Cs s servant S=1 sets to 1, R=1 resets to 0. Problem: SR=11 yield undefined. S and R only have effect when C=1. We can design outside circuit so SR=11 never happens when C=1. Problem: avoiding SR=11 can be a burden. SR can t be 11 if D is stable before and while C=1, and will be 11 for only a brief glitch even if D changes while C=1. *Transition may cross many levels of latches. Only loads D value present at rising clock edge, so values can t propagate to other flipflops during same clock cycle. *Transition happens between two level of flip-flops. 47

48

Shift register Holds & shifts samples of input OUT1 OUT2 OUT3 OUT4 IN D D D D CLK Time Input OUT1 OUT2 OUT3 OUT4 0 1 0 0 0 0 1 0 2 1 3 1 4 0 5 0 6 0 49

Shift register Holds & shifts samples of input OUT1 OUT2 OUT3 OUT4 IN D D D D CLK Time Input OUT1 OUT2 OUT3 OUT4 0 1 0 0 0 0 1 0 1 0 0 0 2 1 0 1 0 0 3 1 1 0 1 0 4 0 1 1 0 1 5 0 0 1 1 0 6 0 0 0 1 1 50

Pattern Recognizer Combinational function of input samples OUT OUT1 OUT2 OUT3 OUT4 IN D D D D CLK 51

Counters Sequences through a fixed set of patterns OUT1 OUT2 OUT3 OUT4 IN D D D D CLK 52

Describing Sequential Ckts State diagrams and next-state tables nor are suitable for describing very large digital designs large circuits must be described in a modular fashion -- as a collection of cooperating FSMs BSV is a modern programming language to describe cooperating FSMs We will give various examples of FSMs in BSV L04-53 CSE 140L W2017

Modulo-4 counter circuit q0 q1 inc 1 0 inc Modulo-4 counter Read the counter q0 t+1 = ~inc q0 t + inc ~q0 t q1 t+1 = ~inc q1 t + inc ~q1 t q0 t + inc q1 t ~q0 t Optimized logic q0 t+1 = inc q0 t q1 t+1 = (inc == 1)? q0 t q1 t : q1 t L04-54 CSE 140L W2017

Modulo-4 counter circuit q0 q1 inc 1 0 q0 t+1 = ~inc q0 t + inc ~q0 t q1 t+1 = ~inc q1 t + inc ~q1 t q0 t + inc q1 t ~q0 t Optimized logic q0 t+1 =inc q0 t q1 t+1 =(inc == 1)? q0 t q1 t :q1 t PS\input inc=0 inc=1 00 00 01 01 01 10 10 10 11 11 11 00 PS: q1 t q0 t, NS: q1 t+1 q0 t+1 L04-55 CSE 140L W2017

modulo4 counter in BSV module modulocounter(counter); Reg#(Bit#(2)) cnt <- mkreg(0); method Action inc; cnt <={!cnt[1]&cnt[0] cnt[1]&!cnt[0],!cnt[0]}; endmethod method Bit#(2) read; return cnt; endmethod endmodule inc.en State specification Initial value An action to specify how the value of the cnt is to be set ~cnt[1]& cnt read L04-56 CSE 140L W2017

Interface Modulo counter has the following interface, i.e., type interface Counter; method Action inc; method Bit#(2) read; endinterface An interface can have many different implementations For example, the numbers may be represented as Gray code L04-57 CSE 140L W2017

Modules A module in BSV is like a class definition in Java or C++ It has internal state The internal state can only be read and manipulated by the (interface) methods An action specifies which state elements are to be modified Actions are atomic -- either all the specified state elements are modified or none of them are modified (no partially modified state is visible) L04-58 CSE 140L W2017

FIFO Interface interface Fifo#(numeric type size, type t); method Bool notfull; method Bool notempty; method Action enq(t x); x en method Action deq; method t first; en endinterface notfull - enq should be called only if notfull notempty returns True; - deq and first should be called only if first notempty returns True enq deq first!emty!full Fifo module L04-59 CSE 140L W2017

One-Element FIFO Implementation module mkcffifo (Fifo#(1, t)); Reg#(t) d <- mkregu; Reg#(Bool) v <- mkreg(false); method Bool notfull; return!v; endmethod method Bool notempty; return v; endmethod method Action enq(t x); v <= True; d <= x; endmethod method Action deq; v <= False; endmethod method t first; return d; endmethod endmodule L04-60 en en x notfull notempty first enq deq first!emty!full Fifo module CSE 140L W2017

FIFO Module: methods with guarded interfaces not full not empty not empty n enab rdy enab rdy n rdy enq deq first FIFO interface Fifo#(numeric type size, type t); method Action enq(t x); method Action deq; method t first; endinterface Every method has a guard (rdy wire); the value returned by a value method is meaningful only if its guard is true Every action method has an enable signal (en wire); an action method is invoked (en is set to true) only if the guard is true Guards make it possible to transfer the responsibility of the correct use of a method from the user to the compiler Guards are extraordinarily convenient for programming and also enhance modularity of the code L04-61 CSE 140L W2017

One-Element FIFO Implementation with module mkcffifo (Fifo#(1, t)); Reg#(t) d <- mkregu; Reg#(Bool) v <- mkreg(false); method Action enq(t x) if (!v); v <= True; d <= x; endmethod method Action deq v <= False; endmethod method t first return d; endmethod endmodule guards if (v); if (v); L04-62 not full not empty not empty n enab rdy enab rdy n rdy enq deq first FIFO CSE 140L W2017