More Digital Circuits

Similar documents
CS 110 Computer Architecture. Finite State Machines, Functional Units. Instructor: Sören Schwertfeger.

Sequential Elements con t Synchronous Digital Systems

CS3350B Computer Architecture Winter 2015

CS61C : Machine Structures

CS61C : Machine Structures

UC Berkeley CS61C : Machine Structures

Go BEARS~ What are Machine Structures? Lecture #15 Intro to Synchronous Digital Systems, State Elements I C

CS61C : Machine Structures

CS 61C: Great Ideas in Computer Architecture

CS61C : Machine Structures

Review C program: foo.c Compiler Assembly program: foo.s Assembler Object(mach lang module): foo.o. Lecture #14

CHAPTER 4: Logic Circuits

Logic Design II (17.342) Spring Lecture Outline

COMP sequential logic 1 Jan. 25, 2016

The basic logic gates are the inverter (or NOT gate), the AND gate, the OR gate and the exclusive-or gate (XOR). If you put an inverter in front of

CS 151 Final. Instructions: Student ID. (Last Name) (First Name) Signature

CHAPTER 4: Logic Circuits

YEDITEPE UNIVERSITY DEPARTMENT OF COMPUTER ENGINEERING. EXPERIMENT VIII: FLIP-FLOPS, COUNTERS 2014 Fall

Advanced Devices. Registers Counters Multiplexers Decoders Adders. CSC258 Lecture Slides Steve Engels, 2006 Slide 1 of 20

1. Convert the decimal number to binary, octal, and hexadecimal.

CS/ECE 250: Computer Architecture. Basics of Logic Design: ALU, Storage, Tristate. Benjamin Lee

EECS150 - Digital Design Lecture 3 Synchronous Digital Systems Review. Announcements

Multiplexor (aka MUX) An example, yet VERY useful circuit!

problem maximum score 1 28pts 2 10pts 3 10pts 4 15pts 5 14pts 6 12pts 7 11pts total 100pts

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

Logic Design ( Part 3) Sequential Logic- Finite State Machines (Chapter 3)

COMP2611: Computer Organization. Introduction to Digital Logic

Logic Design II (17.342) Spring Lecture Outline

Chapter 3 Unit Combinational

MODULE 3. Combinational & Sequential logic

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

1. a) For the circuit shown in figure 1.1, draw a truth table showing the output Q for all combinations of inputs A, B and C. [4] Figure 1.

Chapter 5 Sequential Circuits

Read-only memory (ROM) Digital logic: ALUs Sequential logic circuits. Don't cares. Bus

NH 67, Karur Trichy Highways, Puliyur C.F, Karur District UNIT-III SEQUENTIAL CIRCUITS

ECEN454 Digital Integrated Circuit Design. Sequential Circuits. Sequencing. Output depends on current inputs

Sequential logic circuits

BCN1043. By Dr. Mritha Ramalingam. Faculty of Computer Systems & Software Engineering

CSE115: Digital Design Lecture 23: Latches & Flip-Flops

Sequential Logic Circuits

Figure 1 shows a simple implementation of a clock switch, using an AND-OR type multiplexer logic.

More on Flip-Flops Digital Design and Computer Architecture: ARM Edition 2015 Chapter 3 <98> 98

ECE 263 Digital Systems, Fall 2015

CHAPTER1: Digital Logic Circuits

Advanced Digital Logic Design EECS 303

Sequential Logic Design CS 64: Computer Organization and Design Logic Lecture #14

EECS 270 Group Homework 4 Due Friday. June half credit if turned in by June

Computer Architecture and Organization

EMT 125 Digital Electronic Principles I CHAPTER 6 : FLIP-FLOP

Outcomes. Spiral 1 / Unit 6. Flip-Flops FLIP FLOPS AND REGISTERS. Flip-flops and Registers. Outputs only change once per clock period

Logic Design. Flip Flops, Registers and Counters

Logic and Computer Design Fundamentals. Chapter 7. Registers and Counters

Software Engineering 2DA4. Slides 9: Asynchronous Sequential Circuits


D Latch (Transparent Latch)

Chapter 5: Synchronous Sequential Logic

Chapter 5 Synchronous Sequential Logic

Final Exam review: chapter 4 and 5. Supplement 3 and 4

Introduction to Microprocessor & Digital Logic

EXPERIMENT: 1. Graphic Symbol: OR: The output of OR gate is true when one of the inputs A and B or both the inputs are true.

IT T35 Digital system desigm y - ii /s - iii

Principles of Computer Architecture. Appendix A: Digital Logic

Digital Design, Kyung Hee Univ. Chapter 5. Synchronous Sequential Logic

ELE2120 Digital Circuits and Systems. Tutorial Note 8

Department of CSIT. Class: B.SC Semester: II Year: 2013 Paper Title: Introduction to logics of Computer Max Marks: 30

Digital Logic & Computer Design CS Professor Dan Moldovan Spring Chapter 3 :: Sequential Logic Design

Chapter Contents. Appendix A: Digital Logic. Some Definitions

MC9211 Computer Organization

Name Of The Experiment: Sequential circuit design Latch, Flip-flop and Registers

WINTER 15 EXAMINATION Model Answer

Midterm Exam 15 points total. March 28, 2011

Chapter 3. Boolean Algebra and Digital Logic

Outline. EECS150 - Digital Design Lecture 27 - Asynchronous Sequential Circuits. Cross-coupled NOR gates. Asynchronous State Transition Diagram

11. Sequential Elements

Sequential Circuits. Output depends only and immediately on the inputs Have no memory (dependence on past values of the inputs)

Switching Circuits & Logic Design, Fall Final Examination (1/13/2012, 3:30pm~5:20pm)

Lecture 8: Sequential Logic

A clock is a free-running signal with a cycle time. A clock may be either high or low, and alternates between the two states.

Find the equivalent decimal value for the given value Other number system to decimal ( Sample)

University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science SOLUTIONS

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

CPS311 Lecture: Sequential Circuits

Experiment 8 Introduction to Latches and Flip-Flops and registers

First Name Last Name November 10, 2009 CS-343 Exam 2

Modeling Digital Systems with Verilog

Flip Flop. S-R Flip Flop. Sequential Circuits. Block diagram. Prepared by:- Anwar Bari

ECE 250 / CPS 250 Computer Architecture. Basics of Logic Design ALU and Storage Elements

Vignana Bharathi Institute of Technology UNIT 4 DLD

6.S084 Tutorial Problems L05 Sequential Circuits

211: Computer Architecture Summer 2016

CSE 352 Laboratory Assignment 3

Sequential Circuit Design: Part 1

CS8803: Advanced Digital Design for Embedded Hardware

cascading flip-flops for proper operation clock skew Hardware description languages and sequential logic

Introduction. NAND Gate Latch. Digital Logic Design 1 FLIP-FLOP. Digital Logic Design 1

MUHAMMAD NAEEM LATIF MCS 3 RD SEMESTER KHANEWAL

MODEL QUESTIONS WITH ANSWERS THIRD SEMESTER B.TECH DEGREE EXAMINATION DECEMBER CS 203: Switching Theory and Logic Design. Time: 3 Hrs Marks: 100

Administrative issues. Sequential logic

Section 6.8 Synthesis of Sequential Logic Page 1 of 8

Lecture 11: Sequential Circuit Design

Transcription:

More Digital Circuits 1

Signals and Waveforms: Showing Time & Grouping 2

Signals and Waveforms: Circuit Delay 2 3 4 5 3 10 0 1 5 13 4 6 3

Sample Debugging Waveform 4

Type of Circuits Synchronous Digital Systems consist of two basic types of circuits: Combinational Logic (CL) circuits Output is a function of the inputs only, not the history of its execution E.g., circuits to add A, B (ALUs) Sequential Logic (SL) Circuits that remember or store information aka State Elements E.g., memories and registers (Registers) 5

Uses for State Elements Place to store values for later re-use: Register files (like x1-x31 in RISC-V) Memory (caches and main memory) Help control flow of information between combinational logic blocks State elements hold up the movement of information at input to combinational logic blocks to allow for orderly passage 6

Accumulator Example Why do we need to control the flow of information? X i SUM S Want: S=0; for (i=0;i<n;i++) S = S + X i Assume: Each X value is applied in succession, one per cycle After n cycles the sum is present on S 7

First Try: Does this work? Feedback No! Reason #1: How to control the next iteration of the for loop? Reason #2: How do we say: S=0? 8

Register Internals n instances of a Flip-Flop Flip-flop name because the output flips and flops between 0 and 1 D is data input, Q is data output Also called D-type Flip-Flop 9

Flip-Flop Operation Edge-triggered d-type flip-flop This one is positive edge-triggered On the rising edge of the clock, the input d is sampled and transferred to the output. At all other times, the input d is ignored. Example waveforms: 10

Flip-Flop Timing Edge-triggered d-type flip-flop This one is positive edge-triggered On the rising edge of the clock, the input d is sampled and transferred to the output. At all other times, the input d is ignored. Example waveforms (more detail): 11

Camera Analogy Timing Terms Want to take a portrait timing right before and after taking picture Set up time don t move since about to take picture (open camera shutter) Hold time need to hold still after shutter opens until camera shutter closes Time click to data time from open shutter until can see image on output (viewscreen) 12

Hardware Timing Terms Setup Time: when the input must be stable before the edge of the CLK Hold Time: when the input must be stable after the edge of the CLK CLK-to-Q Delay: how long it takes the output to change, measured from the edge of the CLK 13

So How To Build A Flip Flop? Two "Latches". An example... When clk is high... D-Type Latch D -> Q When clk is low... Q stays with whatever it was Chain 2 latches together to create a flip-flop Setup time: Need to propagate D to Q on the first latch Hold time: D-Type FF from 2 D-Latches Need to make sure the first latch doesn't change before the clock fully switches D D Q D Q Q Clk->Q time: CLK CLK Time needed to go through the second latch CLK 14

Accumulator Timing 1/2 Reset input to register is used to force it to all zeros (takes priority over D input). S i-1 holds the result of the i th -1 iteration. Analyze circuit timing starting at the output of the register. 15

Accumulator Timing 2/2 reset signal shown. Also, in practice X might not arrive to the adder at the same time as S i-1 S i temporarily is wrong, but register always captures correct value. In good circuits, instability never happens around rising edge of clk. 16

Model for Synchronous Systems Collection of Combinational Logic blocks separated by registers Feedback is optional Clock signal(s) connects only to clock input of registers Clock (CLK): steady square wave that synchronizes the system Register: several bits of state that samples on rising edge of CLK (positive edge-triggered) or falling edge (negative edge-triggered) 17

Maximum Clock Frequency What is the maximum frequency of this circuit? Hint: Frequency = 1/Period Period = Max Delay = CLK-to-Q Delay + CL Delay + Setup Time 18

Critical Paths Timing Note: delay of 1 clock cycle from input to output. Clock period limited by propagation delay of adder/shifter. 19

Pipelining to improve performance Timing Insertion of register allows higher clock frequency More outputs per second (higher bandwidth) But each individual result takes longer (greater latency) 20

Recap of Timing Terms Clock (CLK) - steady square wave that synchronizes system Setup Time - when the input must be stable before the rising edge of the CLK Hold Time - when the input must be stable after the rising edge of the CLK CLK-to-Q Delay - how long it takes the output to change, measured from the rising edge of the CLK Flip-flop - one bit of state that samples every rising edge of the CLK (positive edge-triggered) Register - several bits of state that samples on rising edge of CLK or on LOAD (positive edge-triggered) 21

Administrivia Project PAARRTTTAAYYY!!! Wednesday, 2nd floor labs, 7-9pm Project 2 due 3/1 Exam grades will be released tonight with solutions Regrades must be submitted by 23:59 on Sunday Project 3 released 3/2... 22

Clickers/Peer Instruction What is maximum clock frequency? (assume all unconnected inputs come from some register) A: 5 GHz B: 200 MHz C: 500 MHz D: 1/7 GHz E: 1/6 GHz Clock->Q 1ns Setup 1ns Hold 1ns AND delay 1ns 23

Problems With Clocking... The clock period must be longer than the critical path Otherwise, you will get the wrong answers But it can be even longer than that Critical path: clk->q time Necessary to get the output of the registers worst case combinational logic delay Setup time for the next register Must meet all of these to be correct 24

Hold-Time Violations... An alternate problem can occur... Clk->Q + best case combinational delay < Hold time... What happens? Clk->Q + data propagates... And now you don't hold the input to the flip flop long enough Solution: Add delay on the best-case path (e.g. two inverters) 25

Finite State Machines (FSM) Intro A convenient way to conceptualize computation over time We start at a state and given an input, we follow some edge to another (or the same) state The function can be represented with a state transition diagram. With combinational logic and registers, any FSM can be implemented in hardware. 26

FSM Example: 3 ones FSM to detect the occurrence of 3 consecutive 1 s in the input. Draw the FSM: Input/Output Assume state transitions are controlled by the clock: On each clock cycle the machine checks the inputs and moves to a new state and produces a new 27

next state and output. 28 Hardware Implementation of FSM therefore a register is needed to hold the a representation of which state the machine is in. Use a unique bit pattern for each state. + = Combinational logic circuit is used to implement a function that maps from present state and input to

FSM Combinational Logic Specify CL using a truth table Truth table PS Input NS Output 00 0 00 0 00 1 01 0 01 0 00 0 01 1 10 0 10 0 00 0 10 1 00 1 29

Building Standard Functional Units Data multiplexers Arithmetic and Logic Unit Adder/Subtractor 30

Data Multiplexer ( Mux ) (here 2-to-1, n-bit-wide) 31

N instances of 1-bit-wide mux How many rows in TT? 32

How do we build a 1-bit-wide mux? 33

4-to-1 multiplexer? How many rows in TT? 34

Another way to build 4-1 mux? Ans: Hierarchically! Hint: NCAA tourney! 35

Arithmetic and Logic Unit Most processors contain a special logic block called the Arithmetic and Logic Unit (ALU) We ll show you an easy one that does ADD, SUB, bitwise AND, bitwise OR 36

Our simple ALU 37

How to design Adder/Subtractor? Truth-table, then determine canonical form, then minimize and implement as we ve seen before Look at breaking the problem down into smaller pieces that we can cascade or hierarchically layer 38

Adder/Subtractor One-bit adder LSB 39

Adder/Subtractor One-bit adder (1/2) 40

Adder/Subtractor One-bit adder (2/2) 41

N 1-bit adders 1 N-bit adder b 0 + + + What about overflow? Overflow = c n? 42

Extremely Clever Adder/Subtractor: "Invert and add one" x y XOR(x,y) 0 0 0 0 1 1 1 0 1 1 1 0 + + + XOR serves as conditional inverter! 43

iclicker Question Convert the truth table to a boolean expression (no need to simplify): A: F = xy + x(~y) x y F(x,y) B: F = xy + (~x)y + (~x)(~y) 0 0 0 0 1 1 C: F = (~x)y + x(~y) D: F = xy + (~x)y 1 0 0 1 1 1 E: F = (x+y)(~x+~y) 44

In Conclusion Finite State Machines have clocked state elements plus combinational logic to describe transition between states Clocks synchronize D-FF change (Setup and Hold times important!) Standard combinational functional unit blocks built hierarchically from subcomponents 45

Finally: Nick's Thoughts on Project 2 There is a lot of room for optimization that we do not do... Preamble/postamble saves a ton of registers that may not be used Intermediate values, local variables and arguments are just all passed on the stack Arguments and local variables addressed by the frame pointer, intermediates off the stack pointer Doing this right and fast is hard, annoying, and tedious So we don't have you do it: We want just correctness, not performance... So instead we are actually compiling how a basic CISC compiler does it: A "stack machine" But what would it take to get performance? A preview of CS164 46

The Problem: Register Allocation One Big RISC idea: Let us make the compiler writer's job much more annoying in return for simpler hardware with better performance Every value in the function has a "Lifespan" From when it is first needed (and initialized) to when it is no longer needed If the lifespan doesn't cross function calls: Can use temporary registers If the lifespan does cross function calls: Must either use saved registers or allocate the data on the stack 47

The Register Allocator For each thing that needs to be allocated... Assign each variable to a register or stack space Requirement: No elements can share the same register if their lifetimes overlap Optimization: Minimize the number of stack entries and saved registers needed to map all registers Of course this is NP-complete No known polynomial time solution But plenty of "good enuf" heuristics After allocating registers, can then create the preamble/postamble 48