VARIABLE FREQUENCY CLOCKING HARDWARE

Similar documents
Asynchronous (Ripple) Counters

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

System IC Design: Timing Issues and DFT. Hung-Chih Chiang

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

EE178 Spring 2018 Lecture Module 5. Eric Crabill

Registers. Unit 12 Registers and Counters. Registers (D Flip-Flop based) Register Transfers (example not out of text) Accumulator Registers

Computer Systems Architecture

CSCB58 - Lab 4. Prelab /3 Part I (in-lab) /1 Part II (in-lab) /1 Part III (in-lab) /2 TOTAL /8

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

Counter dan Register

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

Sequential Circuit Design: Part 1

Laboratory 4. Figure 1: Serdes Transceiver

Clock Domain Crossing. Presented by Abramov B. 1

Counters

Universal Asynchronous Receiver- Transmitter (UART)

Registers and Counters

EE241 - Spring 2005 Advanced Digital Integrated Circuits

Lecture 23 Design for Testability (DFT): Full-Scan

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Sequential Circuits

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

Digital Blocks Semiconductor IP

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

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

Sequential Logic. Introduction to Computer Yung-Yu Chuang

11. Sequential Elements

Sequential Circuit Design: Part 1

Long and Fast Up/Down Counters Pushpinder Kaur CHOUHAN 6 th Jan, 2003

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

Experiment 8 Introduction to Latches and Flip-Flops and registers

CS61C : Machine Structures

CHAPTER 6 DESIGN OF HIGH SPEED COUNTER USING PIPELINING

Logic Design. Flip Flops, Registers and Counters

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Sequential Circuits

DEPARTMENT OF ELECTRICAL &ELECTRONICS ENGINEERING DIGITAL DESIGN

Digital Circuits and Systems

EE178 Lecture Module 4. Eric Crabill SJSU / Xilinx Fall 2005

EE273 Lecture 11 Pipelined Timing Closed-Loop Timing November 2, Today s Assignment

Digital Circuits 4: Sequential Circuits

Last time, we saw how latches can be used as memory in a circuit

Modeling Latches and Flip-flops

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

SEQUENTIAL CIRCUITS SEQUENTIAL CIRCUITS

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

Chapter 4: One-Shots, Counters, and Clocks

Introduction to Sequential Circuits

Lecture 11: Sequential Circuit Design

ELCT 501: Digital System Design

Introduction. Serial In - Serial Out Shift Registers (SISO)

3 Flip-Flops. The latch is a logic block that has 2 stable states (0) or (1). The RS latch can be forced to hold a 1 when the Set line is asserted.

CSE 352 Laboratory Assignment 3

Digital Systems Laboratory 3 Counters & Registers Time 4 hours

Sequential Circuit Design: Principle

EE141-Fall 2010 Digital Integrated Circuits. Announcements. Homework #8 due next Tuesday. Project Phase 3 plan due this Sat.

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

Tutorial Introduction

The University of Texas at Dallas Department of Computer Science CS 4141: Digital Systems Lab

T 2 : WR = 0, AD 7 -AD 0 (μp Internal Reg.) T 3 : WR = 1,, M(AB) AD 7 -AD 0 or BDB

LSN 12 Shift Registers

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE422) LATCHES and FLIP-FLOPS

Sequential logic. Circuits with feedback. How to control feedback? Sequential circuits. Timing methodologies. Basic registers

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

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.

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General...

CARLETON UNIVERSITY. Facts without theory is trivia. Theory without facts is bull 2607-LRB

Efficient Architecture for Flexible Prescaler Using Multimodulo Prescaler

Decade Counters Mod-5 counter: Decade Counter:

Level and edge-sensitive behaviour

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

CPE/EE 427, CPE 527 VLSI Design I Sequential Circuits. Sequencing

Timing EECS141 EE141. EE141-Fall 2011 Digital Integrated Circuits. Pipelining. Administrative Stuff. Last Lecture. Latch-Based Clocking.

Asynchronous Counter

Chapter 11 Latches and Flip-Flops

Figure 30.1a Timing diagram of the divide by 60 minutes/seconds counter

BUSES IN COMPUTER ARCHITECTURE

Logic. Andrew Mark Allen March 4, 2012

Lecture #4: Clocking in Synchronous Circuits

CprE 281: Digital Logic

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

CHAPTER 1 LATCHES & FLIP-FLOPS

ECE 555 DESIGN PROJECT Introduction and Phase 1

EE141-Fall 2010 Digital Integrated Circuits. Announcements. Synchronous Timing. Latch Parameters. Class Material. Homework #8 due next Tuesday

SEQUENTIAL LOGIC. Satish Chandra Assistant Professor Department of Physics P P N College, Kanpur

TMEL53, DIGITALTEKNIK. INTRODUCTION TO SYNCHRONOUS CIRCUITS, FLIP-FLOPS and COUNTERS

COMP2611: Computer Organization. Introduction to Digital Logic

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

Overview: Logic BIST

Exercise 2: D-Type Flip-Flop

ASYNCHRONOUS COUNTER CIRCUITS

Chapter 3 Unit Combinational

BISHOP ANSTEY HIGH SCHOOL & TRINITY COLLEGE EAST SIXTH FORM CXC CAPE PHYSICS, UNIT 2 Ms. S. S. CALBIO NOTES lesson #39

Administrative issues. Sequential logic

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

L14: Quiz Information and Final Project Kickoff. L14: Spring 2004 Introductory Digital Systems Laboratory

Design and Implementation of Timer, GPIO, and 7-segment Peripherals

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

Prototyping an ASIC with FPGAs. By Rafey Mahmud, FAE at Synplicity.

CS3350B Computer Architecture Winter 2015

ELE2120 Digital Circuits and Systems. Tutorial Note 8

Chapter 8 Design for Testability

Transcription:

VARIABLE FREQUENCY CLOCKING HARDWARE

Variable-Frequency Clocking Hardware Many complex digital systems have components clocked at different frequencies Reason 1: to reduce power dissipation The active component of power is proportional to the clock frequency clock freq1 clock freq2 If a module s clock frequency can be reduced while maintaining acceptable performance, its frequency can be reduced to reduce power dissipation Reason 2: Because a sub-module requires a specific clock frequency that is different than the main system s frequency. For example, the DDR4-3200 synchronous DRAM memory interface has an I/O bus that operates at 1.60 GHz and so the module certainly requires a 1.60 GHz clock Block 1 Block 2 clock freq3 Block 3 B. Baas 269

1) Build slower divided clocks with FFs Some FFs are clocked by the real clock signal, others are clocked by a delayed slower clock freq-half signal coming from a frequency divider. Significant clock skew potential for dead chip Could risk your job security (moderate exaggeration) 2) Use multi-frequency clocks Requires an indepent and complete clock tree for each frequency and possibly an indepent phased-locked loop (PLL) May save significant power in main processing circuits Each PLL uses significant power clock PLL 1 PLL 2 PLL 3 clock freq-half clock freq1 clock freq2 clock freq3 B. Baas 270

3) Pseudo-multi-rate: Clock all logic with highest-rate clock Utilize simple counters that load registers or route signals on only certain clock edges (for example, every fourth clock edge for freq/4). Counters must be reset simultaneously and the reset signal must meet timing requirements at the highest frequency Definitely the simplest and most robust Design in only this way in this class PLL Enable = 1 every fourth cycle is equivalent to using freq/4 D Q B. Baas 271

3) Pseudo-multi-rate: Clock all logic with highest-rate clock Possible issue if there are a very large number of FFs requiring the same enable signal 1. delay of the fanout tree reduces available cycle time 2. the enable signal could be modestly pipelined Effectiveness + Logical operation same as if frequency was reduced + Power reduction of logic same as if frequency was reduced Power reduction of clock signal not at all PLL Enable = 1 every fourth cycle is equivalent to using freq/4 D Q B. Baas 272

Example 1a to imitate a clock frequency of freq/4 reg [1:0] count, count_c; // two bits counts 00, 01, 10, 11, 00,... always @(*) begin // defaults count_c = count + 2 b01; // just let the counter wrap 2 b11 2 b00 // en_freq4 will be high 1/4 of the time reg en_freq4; always @(*) begin if (count == 2 b00) begin en_freq4 = 1 b1; else begin en_freq4 = 1 b0; en_freq4 en_freq4 == 1 every fourth cycle is equivalent to using freq/4 // breaking a guideline with if here D Q always @(posedge clk) begin count <= #1 count_c; PLL if (en_freq4 == 1 b1) begin Q <= #1 D; state <= #1 state_c; B. Baas 273 en

Example 1b to imitate a clock frequency of freq/4 reg [1:0] count, count_c; // two bits counts 00, 01, 10, 11, 00,... always @(*) begin // defaults count_c = count + 2 b01; // just let the counter wrap 2 b11 2 b00 wire en_freq4; // use a wire in this example assign en_freq4 = (count == 2 b00) // code is compact but slightly less clear // breaking a guideline with if here always @(posedge clk) begin count <= #1 count_c; if (en_freq4 == 1 b1) begin Q <= #1 D; PLL en_freq4 = 1 every fourth cycle is equivalent to using freq/4 D Q B. Baas 274

Example 2 to imitate a clock toggling at 1 Hz, with 500 MHz clock reg [28:0] count, count_c; // 29 bits counts up to 536 million reg en_increment; // I use a reg in this example always @(*) begin // defaults count_c = count + 29 h0000_0001; // a flip-flop register en_increment = 1 b0; // a combinational logic signal if (count == 29 d499_999_999) begin count_c = 29 h0000_0000; // wrap counter back to zero en_increment = 1 b1; // pulse FF enable signal high always @(posedge clk) begin count <= #1 count_c; if (en_increment == 1 b1) begin Q <= #1 D; PLL en_increment D Q B. Baas 275