Lecture 10: Multiple Clock Domains
|
|
|
- Beatrice Blankenship
- 10 years ago
- Views:
Transcription
1 Bluespec SystemVerilog Training Lecture 10: Multiple Clock Domains Copyright Bluespec, Inc., Lecture 10: Multiple Clock Domains The Clock type, and functions Modules with different clocks Clock families Making clocks Moving data across clock domains Synchronizing interfaces L10-2 1
2 BSV point of view Automate the simplest things Make it easy to do simple things Make it safe to do the more complicated things Work with gated clocks, to enable power management L10-3 The simplest case Only one clock, one reset Need never be mentioned in BSV source (Note: hasn t been mentioned in any examples so far!) Synthesized modules have an input port called CLK and RST_N This is passed to all interior instantiated modules L10-4 2
3 The Clock and Reset types Clock and Reset are ordinary first-class types May be passed as parameter, returned as result of function, etc. Can make arrays of them, can test whether two clocks are equal, etc. Clock c1, c2; Clock c = (b? c1 : c2); // b must be known at compile time L10-5 Default Clock and Reset Each module has a special default clock and reset The default clock and reset will be passed to any interior module instantiations (unless otherwise specified) They can be exposed by using the following modules (defined in the Standard Prelude) Example: module exposecurrentclock(clock) ; module exposecurrentreset(reset); Clock clk <- exposecurrentclock; Reset rst <- exposecurrentreset; L10-6 3
4 The Clock type Conceptually, a clock consists of two signals an oscillator a gating signal In general, implemented as two wires If ungated, oscillator is running Whether the reverse is true depends on implementation library tool doesn t care L10-7 Some Clock constructors mkclock#(t initval, Bool initgate)(makeclockifc#(t)); mkgatedclock#(bool initgate)(gatedclockifc); mkabsoluteclock#(integer start, Integer period)(clock); mkclockdivider#(integer divisor) (ClockDividerIfc); L10-8 4
5 Making clocks with mkclock Bool gateclk =...; // gate condition Reg#(Bit#(1)) osc <- mkreg(0); MakeClockIfc#(Bit#(1)) mc <- mkclock(false,true); Clock newclk = mc.new_clk; rule oscillate; let new_osc = invert(osc); mc.setclockvalue(new_osc); mc.setgatecond(gateclk); osc <= new_osc; endrule mkclock is a primitive for generating a clock with an arbitrary waveform controlled from within the design. newclk is a clock running at half the speed of the current clock, and is gated by gateclk. L10-9 Making clocks with mkgatedclock Clock clk <- exposecurrentclock; GatedClockIfc gc1 <- mkgatedclock(true); Clock clk1 = gc1.new_clk; GatedClockIfc gc2 <- mkgatedclock(true, clocked_by clk1); Clock clk2 = gc2.new_clk; rule gate_clocks; gc1.setgatecond(gateclk1); gc2.setgatecond(gateclk2); endrule clk1 is a version of clk, gated by gateclk1. clk2 is a version of clk1, gated by gateclk2. i.e. it is as the current clock gated by (gateclk1 && gateclk2) clk, clk1 and clk2 are from the same family clk and clk1 are ancestors of clk2 L
6 Clock families All clocks in a family share the same oscillator They differ only in gating If c2 is a gated version of c1, we say c1 is an ancestor of c2 If some clock is running, then so are all its ancestors The functions isancestor(c1,c2) and samefamily(c1,c2) are provided to test these relationships Can be used to control static elaboration (e.g., to optionally insert or omit a synchronizer) L10-11 The clockof() function May be applied to any BSV expression, and returns a value of type Clock If the expression is a constant, the result is the special value noclock The result is always well-defined Expressions for which it would not be well-defined are illegal Reg#(UInt#(17)) x <- mkreg (0, clocked_by c); let y = x + 2; Clock c1 = clockof (x); Clock c2 = clockof (y); c1 and c2 are equal L
7 Some Reset constructors mkreset#(integer stages, Bool startinrst)(clock dclkin, MakeResetIfc); mkresetsync#(integer stages, Bool startinrst) (Clock dclkin, MakeResetIfc); mkasyncreset#(integer stages)(reset srst, Clock dclkin, Reset); mksyncreset#(integer stages)(reset srst, Clock dclkin, Reset); See details in $BLUESPECDIR/../doc/reference_guide.doc L10-13 Instantiating modules with non-default clocks and resets Example: instantiating a register with explicit clock Clock clk <- exposecurrentclock; // Current Clock Reset rst <- exposecurrentreset; // Current Reset Clock clk1 <- ; // 2 nd clock domain Reset rst1 <- ; // 2 nd reset domain Reg#(Bool) a <- mkrega(false); Reg#(Bool) b <- mkreg(true, clocked_by clk1, reset_by rst1); Modules can also take clocks as ordinary dynamic arguments, to be fed to interior module instantiations (Examples later) L
8 Clock family discipline All the methods invoked by a rule (or by another method) must be clocked by clocks from one family The tool enforces this There is no need for special domain-crossing logic when the clocks involved are from the same family It s all handled by implicit conditions L10-15 Clocks and implicit conditions The gating condition of an Action or ActionValue method s clock becomes one of the method s implicit conditions So, if the clock is off, the method is unready So, a rule can execute only if all the methods it uses have their clocks gated on This doesn t happen for value methods So, they stay ready if they were ready when the clock was switched off L
9 Clocks and implicit conditions Example: FIFO#(Int#(3)) myfifo <- mkfifo(clocked_by clk1); If clk1 is switched off: myfifo.enq, myfifo.deq and f.clear are unready myfifo.first remains ready if the FIFO was nonempty when the clock was switched off L10-17 The clocks of methods and rules Every method, and every rule, has a notional clock For methods of primitive modules (Verilog wrapped in BSV): Their clocks are specified in the BSV wrappers which import them For methods of modules written in BSV: A method s clock is a clock from the same family as the clocks of all the methods that it, in turn, invokes The clock is gated on if the clocks of all invoked methods are gated on If necessary, this is a new clock The notional clock for a rule may be calculated in the same way L
10 Moving Data Across Clock Domains Data moved across clock domains appears asynchronous to the receiving (destination) domain Asynchronous data will cause meta-stability The only safe way: use a synchronizer clk d Setup & hold violation q Meta-stable data L10-19 Synchronizers Good synchronizer design and use reduces the probability of observing meta-stable data Synchronizers needed for all crossings Bluespec delivers conservative (speed independent) synchronizers User can define and use new synchronizers Bluespec does not allow unsynchronized crossings (compiler static checking error) L
11 Bit synchronizer Most common type of (bit) synchronizer FF1 will go meta-stable, but FF2 does not look at data until a clock period later, giving FF1 time to stabilize Limitations: When moving from fast to slow clocks data may be overrun Cannot synchronize words since bits may not be seen at same time sdin FF0 FF1 FF2 ddin sclk srst dclk L10-21 Bit synchronizer send sdin sclk srst FF0 FF1 FF2 mkbitsync ddin dclk read interface SyncBitIfc ; method Action send(bit#(1) bitdata ) ; method Bit#(1) read; Module mkbitsync#(clock sclk, Reset srst, Clock dclk) (SyncBitIfc); Synchronizer design guidelines cannot be violated: No logic between FF0 and FF1 No access to FF1 s output L
12 Small Example Up/down counter, where direction signal comes from separate domain. Registers: Reg# (Bit# (32)) cntr <- mkreg(0); // Default Clk Reg# (Bit#(1)) up_down_bit <- mkreg(0, clocked_by clk2, reset_by rst2); The Rule (attempt 1): rule countup ( up_down_bit == 1 ) ; cntr <= cntr + 1; endrule Illegal Clock Domain Crossing L10-23 Adding the Synchronizer up_down_bit clk2 rst2 send sclk srst read mksyncbit dclk Synchronized up_down_bit CLK module mktoplevel#(clock clk2, Reset rst2) (Empty); Reg# (Bit# (1)) up_down_bit <- mkreg(0, clocked_by clk2, reset_by rst2) ; Reg# (Bit# (32)) cntr <- mkreg (0 ) ; // Default Clock, default Reset Clock currentclk <- exposecurrentclock ; // Default clock SyncBitIfc#(Bit#(1)) sync <- mksyncbit(clk2, rst2, currentclk); // Bit synchronizer rule transfer (True) ; sync.send( up_down_bit ); endrule rule countup ( sync.read == 1 ); cntr <= cntr + 1; endrule endmodule L
13 Pulse Synchronizer Synchronizes single clock width pulses Two send s may not be seen if they occur too close together (faster than 2*dstClk) Also versions from CurrentClock and to CurrentClock interface SyncPulseIfc ; method Action send; method Bool pulse; module mksyncpulse#(clock sclkin, Reset srstin, Clock dclkin)(syncpulseifc); sclk Send dclk pulse L10-25 Handshake Pulse Synchronizer A Pulse Synchronizer with a handshake protocol The send method is ready after the pulse is received and an acknowledge returned. Latency: send to read is (2*dstClk) send to next send (2*dstClks+ 2*srcClk) Also versions from CurrentClock and to CurrentClock interface SyncPulseIfc ; method Action send; method Bool pulse; module mksynchandshake#(clock sclkin, Reset srstin, Clock dclkin)(syncpulseifc); L
14 Register Synchronizer Uses common Reg#(a) interface However, write method has (implicit) ready condition, to allow time for data to be received No guarantee that destination reads the data, only that it arrives Also versions from CurrentClock and to CurrentClock module mksyncreg#(t initialvalue, Clock sclkin, Reset srstin, Clock dclkin)(reg#(t)); interface Reg#(type t); method Action _write(t a); method t _read; L10-27 Example interface Reader ; method Bit#(32) wordout () ; method Bool pulseout() ; // Pulses at new data interface Cruncher ; method Action crunch(bit#(32) dataread) ; Reader sync Cruncher module top#(clock clk2, Reset rst2)(top); Reader reader <- mkwordreader(clocked_by clk2, reset_by rst2) ; Cruncher cruncher <- mkwordcrunch; Clock clk <- exposecurrentclock; Reg#(Bit# (32)) wordsync <- mksyncreg(0, clk2, rst2, clk) ; rule loadsync( reader.pulseout ); // it runs in the clk2, rst2 domain wordsync <= reader.wordout; endrule... cruncher.crunch( sync ); // it runs in the clk domain L
15 FIFO Synchronizer Good for data buffering across clock domains Also versions from CurrentClock, to CurrentClock, etc. interface SyncFIFOIfc#(type t); method Action enq(t a); method Action deq; method t first; module mksyncfifo#(integer depth, Clock sclkin, Reset srstin, Clock dclkin)(syncfifoifc#(t)); L10-29 Example interface Reader ; method Bit#(32) wordout () ; method Bool pulseout() ; // Pulses at new data interface Cruncher ; method Action crunch(bit#(32) dataread) ; Reader sync Cruncher Module top#(clock clk2, Reset rst2)(top); Reader reader <- mkwordreader(clocked_by clk2, reset_by rst2) ; Cruncher cruncher <- mkwordcrunch; Clock clk <- exposecurrentclock; SyncFIFOIfc#(Bit# (32)) fifosync <- mksyncfifo(4, clk2, rst2, clk) ; rule loadsync( reader.pulseout ); fifosync.enq( reader.wordout); endrule... cruncher.crunch(fifosync.first); // it runs in the clk2, rst2 domain // it runs in the clk domain L
16 Null Synchronizer Needed when no synchronization is desired For example, up/down counter module mknullcrossingwire#(clock dclkin, t datain)(syncfifoifc#(t)); module mktoplevel#(clock clk2, Reset rst2) (Empty); interface ReadOnly#(type t); method t _read; Reg# (Bit# (1)) up_down_bit <- mkreg(0) ; // Default Clock, default Reset Reg# (Bit# (32)) cntr <- mkreg (0, clocked_by clk2, reset_by rst2 ) ; ReadOnly#(Bit#(1)) nullsync <- mknullcrossing(clk2, up_down_bit ); // Null Sync rule countup ( nullsync == 1 ); cntr <= cntr + 1; endrule endmodule L10-31 Advantages of Bluespec s synchronizers Bluespec provides a full set of speed-independent data synchronizers, with strong interface semantics preventing their misuse But good design practices are still needed Identify different clock domains early in design Partition design such that there is one clock per module Keep the synchronizations to the interfaces Limit number of signals which cross clock domains L
17 Specialized Synchronizers (Topic for Advanced Training) Above synchronizers work for any clock relations If there are known relations between clock edges, then synchronizer can be removed Bluespec provides some synchronizers for clocks with coincident edges, e.g., divided clocks. Users can create their own synchronizers or import their current ones into Bluespec L10-33 Synchronizing Interfaces The previous examples show a hardware approach to clock-domain crossing Designers instantiate a module having different clocks for different methods, and connect it up explicitly BSV also has an alternative linguistic approach, to convert an interface from one clock domain to another mkconverter converts an existing interface to another one of the same type, but on different clock In this style, more of the details are implicit L
18 Synchronizing Interfaces typedef Server#(QueryType,RespType) IfcType; IfcType oldifc <- mkserver (clocked_by c0); IfcType newifc <- mkconverter(4, oldifc); oldifc is clocked by c0 newifc is clocked by the current clock 4 is a parameter for the conversion (FIFO depth) newifc can be used exactly as oldifc, but in the current clock domain L10-35 Synchronizing Interfaces Convertible interfaces form a typeclass ClockConv Other instances can be added by the user. Need only to define mkconverter, in terms of existing primitives Not all interfaces are convertible. The following are defined to be convertible in the BSV library: Get and Put interfaces Client and Server interfaces Tuples of convertible interfaces L
19 Summary The Clock type, and strong type checking ensures that all circuits are clocked by actual clocks BSV provides ways to create, derive and manipulate clocks, safely BSV clocks are gated, and gating fits into Rule-enabling semantics BSV provides a full set of speed-independent data synchronizers, already tested and verified The user can define new synchronizers BSV precludes unsynchronized domain crossings Roadmap: tool will generate SDC constraints identifying all clocks, clocks associated with signals, false paths at clock-domain crossings, etc. L10-37 End of Lecture Copyright Bluespec, Inc.,
A New Paradigm for Synchronous State Machine Design in Verilog
A New Paradigm for Synchronous State Machine Design in Verilog Randy Nuss Copyright 1999 Idea Consulting Introduction Synchronous State Machines are one of the most common building blocks in modern digital
PROGETTO DI SISTEMI ELETTRONICI DIGITALI. Digital Systems Design. Digital Circuits Advanced Topics
PROGETTO DI SISTEMI ELETTRONICI DIGITALI Digital Systems Design Digital Circuits Advanced Topics 1 Sequential circuit and metastability 2 Sequential circuit - FSM A Sequential circuit contains: Storage
PROGETTO DI SISTEMI ELETTRONICI DIGITALI. Digital Systems Design. Digital Circuits Advanced Topics
PROGETTO DI SISTEMI ELETTRONICI DIGITALI Digital Systems Design Digital Circuits Advanced Topics 1 Sequential circuit and metastability 2 Sequential circuit A Sequential circuit contains: Storage elements:
Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: 03-4227151 ext:34534 Email: [email protected]. Sequential Circuit
Modeling Sequential Elements with Verilog Prof. Chien-Nan Liu TEL: 03-4227151 ext:34534 Email: [email protected] 4-1 Sequential Circuit Outputs are functions of inputs and present states of storage elements
Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems
Harris Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems David Harris Harvey Mudd College [email protected] Based on EE271 developed by Mark Horowitz, Stanford University MAH
DIGITAL COUNTERS. Q B Q A = 00 initially. Q B Q A = 01 after the first clock pulse.
DIGITAL COUNTERS http://www.tutorialspoint.com/computer_logical_organization/digital_counters.htm Copyright tutorialspoint.com Counter is a sequential circuit. A digital circuit which is used for a counting
Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)
Dr. Greg Tumbush, [email protected] Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts) Objective The objective of lab assignments 5 through 9 are to systematically design and implement
Lecture 7: Clocking of VLSI Systems
Lecture 7: Clocking of VLSI Systems MAH, AEN EE271 Lecture 7 1 Overview Reading Wolf 5.3 Two-Phase Clocking (good description) W&E 5.5.1, 5.5.2, 5.5.3, 5.5.4, 5.5.9, 5.5.10 - Clocking Note: The analysis
Timing Methodologies (cont d) Registers. Typical timing specifications. Synchronous System Model. Short Paths. System Clock Frequency
Registers Timing Methodologies (cont d) Sample data using clock Hold data between clock cycles Computation (and delay) occurs between registers efinition of terms setup time: minimum time before the clocking
Latch Timing Parameters. Flip-flop Timing Parameters. Typical Clock System. Clocking Overhead
Clock - key to synchronous systems Topic 7 Clocking Strategies in VLSI Systems Peter Cheung Department of Electrical & Electronic Engineering Imperial College London Clocks help the design of FSM where
Chapter 7. Registers & Register Transfers. J.J. Shann. J. J. Shann
Chapter 7 Registers & Register Transfers J. J. Shann J.J. Shann Chapter Overview 7- Registers and Load Enable 7-2 Register Transfers 7-3 Register Transfer Operations 7-4 A Note for VHDL and Verilog Users
EE 42/100 Lecture 24: Latches and Flip Flops. Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad
A. M. Niknejad University of California, Berkeley EE 100 / 42 Lecture 24 p. 1/20 EE 42/100 Lecture 24: Latches and Flip Flops ELECTRONICS Rev B 4/21/2010 (2:04 PM) Prof. Ali M. Niknejad University of California,
Asynchronous & Synchronous Reset Design Techniques - Part Deux
Clifford E. Cummings Don Mills Steve Golson Sunburst Design, Inc. LCDM Engineering Trilobyte Systems [email protected] [email protected] [email protected] ABSTRACT This paper will investigate
Using SystemVerilog Assertions for Creating Property-Based Checkers
Using SystemVerilog Assertions for Creating Property-Based Checkers Eduard Cerny Synopsys, Inc. Marlborough, USA [email protected] Dmitry Korchemny Intel Corp. Haifa, Israel [email protected]
Life Cycle of a Memory Request. Ring Example: 2 requests for lock 17
Life Cycle of a Memory Request (1) Use AQR or AQW to place address in AQ (2) If A[31]==0, check for hit in DCache Ring (3) Read Hit: place cache word in RQ; Write Hit: replace cache word with WQ RDDest/RDreturn
ASYNCHRONOUS COUNTERS
LB no.. SYNCHONOUS COUNTES. Introduction Counters are sequential logic circuits that counts the pulses applied at their clock input. They usually have 4 bits, delivering at the outputs the corresponding
A Verilog HDL Test Bench Primer Application Note
A Verilog HDL Test Bench Primer Application Note Table of Contents Introduction...1 Overview...1 The Device Under Test (D.U.T.)...1 The Test Bench...1 Instantiations...2 Figure 1- DUT Instantiation...2
Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa
Experiment # 9 Clock generator circuits & Counters Eng. Waleed Y. Mousa 1. Objectives: 1. Understanding the principles and construction of Clock generator. 2. To be familiar with clock pulse generation
LAB #4 Sequential Logic, Latches, Flip-Flops, Shift Registers, and Counters
LAB #4 Sequential Logic, Latches, Flip-Flops, Shift Registers, and Counters LAB OBJECTIVES 1. Introduction to latches and the D type flip-flop 2. Use of actual flip-flops to help you understand sequential
FPGA Clocking. Clock related issues: distribution generation (frequency synthesis) multiplexing run time programming domain crossing
FPGA Clocking Clock related issues: distribution generation (frequency synthesis) Deskew multiplexing run time programming domain crossing Clock related constraints 100 Clock Distribution Device split
Cascaded Counters. Page 1 BYU
Cascaded Counters Page 1 Mod-N Counters Generally we are interested in counters that count up to specific count values Not just powers of 2 A mod-n counter has N states Counts from 0 to N-1 then rolls
Design and Verification of Nine port Network Router
Design and Verification of Nine port Network Router G. Sri Lakshmi 1, A Ganga Mani 2 1 Assistant Professor, Department of Electronics and Communication Engineering, Pragathi Engineering College, Andhra
Sequential Logic: Clocks, Registers, etc.
ENEE 245: igital Circuits & Systems Lab Lab 2 : Clocks, Registers, etc. ENEE 245: igital Circuits and Systems Laboratory Lab 2 Objectives The objectives of this laboratory are the following: To design
To design digital counter circuits using JK-Flip-Flop. To implement counter using 74LS193 IC.
8.1 Objectives To design digital counter circuits using JK-Flip-Flop. To implement counter using 74LS193 IC. 8.2 Introduction Circuits for counting events are frequently used in computers and other digital
Counters and Decoders
Physics 3330 Experiment #10 Fall 1999 Purpose Counters and Decoders In this experiment, you will design and construct a 4-bit ripple-through decade counter with a decimal read-out display. Such a counter
ARM Thumb Microcontrollers. Application Note. Software ISO 7816 I/O Line Implementation. Features. Introduction
Software ISO 7816 I/O Line Implementation Features ISO 7816-3 compliant (direct convention) Byte reception and transmission with parity check Retransmission on error detection Automatic reception at the
ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies
ETEC 2301 Programmable Logic Devices Chapter 10 Counters Shawnee State University Department of Industrial and Engineering Technologies Copyright 2007 by Janna B. Gallaher Asynchronous Counter Operation
Module 3: Floyd, Digital Fundamental
Module 3: Lecturer : Yongsheng Gao Room : Tech - 3.25 Email : [email protected] Structure : 6 lectures 1 Tutorial Assessment: 1 Laboratory (5%) 1 Test (20%) Textbook : Floyd, Digital Fundamental
Modeling Registers and Counters
Lab Workbook Introduction When several flip-flops are grouped together, with a common clock, to hold related information the resulting circuit is called a register. Just like flip-flops, registers may
WEEK 8.1 Registers and Counters. ECE124 Digital Circuits and Systems Page 1
WEEK 8.1 egisters and Counters ECE124 igital Circuits and Systems Page 1 Additional schematic FF symbols Active low set and reset signals. S Active high set and reset signals. S ECE124 igital Circuits
A Pausible Bisynchronous FIFO for GALS Systems
2015 Symposium on Asynchronous Circuits and Systems A Pausible Bisynchronous FIFO for GALS Systems Ben Keller*, Ma@hew FojCk*, Brucek Khailany* *NVIDIA CorporaCon University of California, Berkeley May
Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill
Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill Objectives: Analyze the operation of sequential logic circuits. Understand the operation of digital counters.
Lecture-3 MEMORY: Development of Memory:
Lecture-3 MEMORY: It is a storage device. It stores program data and the results. There are two kind of memories; semiconductor memories & magnetic memories. Semiconductor memories are faster, smaller,
Chapter 9 Latches, Flip-Flops, and Timers
ETEC 23 Programmable Logic Devices Chapter 9 Latches, Flip-Flops, and Timers Shawnee State University Department of Industrial and Engineering Technologies Copyright 27 by Janna B. Gallaher Latches A temporary
Chapter 5 :: Memory and Logic Arrays
Chapter 5 :: Memory and Logic Arrays Digital Design and Computer Architecture David Money Harris and Sarah L. Harris Copyright 2007 Elsevier 5- ROM Storage Copyright 2007 Elsevier 5- ROM Logic Data
Digital Logic Design Sequential circuits
Digital Logic Design Sequential circuits Dr. Eng. Ahmed H. Madian E-mail: [email protected] Dr. Eng. Rania.Swief E-mail: [email protected] Dr. Eng. Ahmed H. Madian Registers An n-bit register
VHDL GUIDELINES FOR SYNTHESIS
VHDL GUIDELINES FOR SYNTHESIS Claudio Talarico For internal use only 1/19 BASICS VHDL VHDL (Very high speed integrated circuit Hardware Description Language) is a hardware description language that allows
Digital Design Verification
Digital Design Verification Course Instructor: Debdeep Mukhopadhyay Dept of Computer Sc. and Engg. Indian Institute of Technology Madras, Even Semester Course No: CS 676 1 Verification??? What is meant
Flip-Flops, Registers, Counters, and a Simple Processor
June 8, 22 5:56 vra235_ch7 Sheet number Page number 349 black chapter 7 Flip-Flops, Registers, Counters, and a Simple Processor 7. Ng f3, h7 h6 349 June 8, 22 5:56 vra235_ch7 Sheet number 2 Page number
Multiple clock domains
DESIGNING A ROBUST USB SERIAL INTERFACE ENGINE(SIE) What is the SIE? A typical function USB hardware interface is shown in Fig. 1. USB Transceiver USB Serial Interface Engine Status Control Data Buffers/
Hardware Implementation of Improved Adaptive NoC Router with Flit Flow History based Load Balancing Selection Strategy
Hardware Implementation of Improved Adaptive NoC Rer with Flit Flow History based Load Balancing Selection Strategy Parag Parandkar 1, Sumant Katiyal 2, Geetesh Kwatra 3 1,3 Research Scholar, School of
8-ch RAID0 Design by using SATA Host IP Manual Rev1.0 9-Jun-15
8-ch RAID0 Design by using SATA Host IP Manual Rev1.0 9-Jun-15 1 Overview RAID0 system uses multiple storages to extend total storage capacity and increase write/read performance to be N times. Assumed
Micro-Step Driving for Stepper Motors: A Case Study
Micro-Step Driving for Stepper Motors: A Case Study N. Sedaghati-Mokhtari Graduate Student, School of ECE, University of Tehran, Tehran, Iran n.sedaghati @ece.ut.ac.ir Abstract: In this paper, a case study
Registers & Counters
Objectives This section deals with some simple and useful sequential circuits. Its objectives are to: Introduce registers as multi-bit storage devices. Introduce counters by adding logic to registers implementing
Chapter 13: Verification
Chapter 13: Verification Prof. Ming-Bo Lin Department of Electronic Engineering National Taiwan University of Science and Technology Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010,
Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip
Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip Ms Lavanya Thunuguntla 1, Saritha Sapa 2 1 Associate Professor, Department of ECE, HITAM, Telangana
ModelSim-Altera Software Simulation User Guide
ModelSim-Altera Software Simulation User Guide ModelSim-Altera Software Simulation User Guide 101 Innovation Drive San Jose, CA 95134 www.altera.com UG-01102-2.0 Document last updated for Altera Complete
ECE 451 Verilog Exercises. Sept 14, 2007. James Barnes ([email protected])
ECE 451 Verilog Exercises Sept 14, 2007 James Barnes ([email protected]) Organization These slides give a series of self-paced exercises. Read the specification of each exercise and write your
Modeling Latches and Flip-flops
Lab Workbook Introduction Sequential circuits are digital circuits in which the output depends not only on the present input (like combinatorial circuits), but also on the past sequence of inputs. In effect,
INF5140: Specification and Verification of Parallel Systems
INF5140: Specification and Verification of Parallel Systems Lecture 7 LTL into Automata and Introduction to Promela Gerardo Schneider Department of Informatics University of Oslo INF5140, Spring 2007 Gerardo
Lecture 11: Sequential Circuit Design
Lecture 11: Sequential Circuit esign Outline Sequencing Sequencing Element esign Max and Min-elay Clock Skew Time Borrowing Two-Phase Clocking 2 Sequencing Combinational logic output depends on current
Lecture 10: Sequential Circuits
Introduction to CMOS VLSI esign Lecture 10: Sequential Circuits avid Harris Harvey Mudd College Spring 2004 Outline q Sequencing q Sequencing Element esign q Max and Min-elay q Clock Skew q Time Borrowing
路 論 Chapter 15 System-Level Physical Design
Introduction to VLSI Circuits and Systems 路 論 Chapter 15 System-Level Physical Design Dept. of Electronic Engineering National Chin-Yi University of Technology Fall 2007 Outline Clocked Flip-flops CMOS
CLOCK DOMAIN CROSSING CLOSING THE LOOP ON CLOCK DOMAIN FUNCTIONAL IMPLEMENTATION PROBLEMS
TECHNICAL PAPER CLOCK DOMAIN CROSSING CLOSING THE LOOP ON CLOCK DOMAIN FUNCTIONAL IMPLEMENTATION PROBLEMS TABLE OF CONTENTS 1 Overview...........................................................................1
Measuring Metastability
Measuring Metastability Sandeep Mandarapu Department of Electrical and Computer Engineering, VLSI Design Research Laboratory, Southern Illinois University Edwardsville, Illinois, USA, 62025 ECE595: Masters
How To Develop Software
Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which
Asynchronous counters, except for the first block, work independently from a system clock.
Counters Some digital circuits are designed for the purpose of counting and this is when counters become useful. Counters are made with flip-flops, they can be asynchronous or synchronous and they can
SVA4T: SystemVerilog Assertions - Techniques, Tips, Tricks, and Traps
SVA4T: SystemVerilog Assertions - Wolfgang Ecker, Volkan Esen, Thomas Kruse, Thomas Steininger Infineon Technologies Peter Jensen Syosil Consulting Abstract ABV (Assertion Based Verification) is a very
Design Example: Counters. Design Example: Counters. 3-Bit Binary Counter. 3-Bit Binary Counter. Other useful counters:
Design Eample: ers er: a sequential circuit that repeats a specified sequence of output upon clock pulses. A,B,C,, Z. G, O, T, E, R, P, S,!.,,,,,,,7. 7,,,,,,,.,,,,,,,,,,,. Binary counter: follows the binary
ECE 3401 Lecture 7. Concurrent Statements & Sequential Statements (Process)
ECE 3401 Lecture 7 Concurrent Statements & Sequential Statements (Process) Concurrent Statements VHDL provides four different types of concurrent statements namely: Signal Assignment Statement Simple Assignment
IMPLEMENTATION OF BACKEND SYNTHESIS AND STATIC TIMING ANALYSIS OF PROCESSOR LOCAL BUS(PLB) PERFORMANCE MONITOR
International Journal of Engineering & Science Research IMPLEMENTATION OF BACKEND SYNTHESIS AND STATIC TIMING ANALYSIS OF PROCESSOR LOCAL BUS(PLB) PERFORMANCE MONITOR ABSTRACT Pathik Gandhi* 1, Milan Dalwadi
Counters & Shift Registers Chapter 8 of R.P Jain
Chapter 3 Counters & Shift Registers Chapter 8 of R.P Jain Counters & Shift Registers Counters, Syllabus Design of Modulo-N ripple counter, Up-Down counter, design of synchronous counters with and without
High-Stability Time Adjustment with Real-Time Clock Module
High-Stability Time Adjustment with Real-Time Clock Module An explanation of an Epson real-time clock module with sub-second time adjustment function [Preface] In recent years, it has become simple to
Chapter 7: Advanced Modeling Techniques
Chapter 7: Advanced Modeling Techniques Prof. Ming-Bo Lin Department of Electronic Engineering National Taiwan University of Science and Technology Digital System Designs and Practices Using Verilog HDL
Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow
Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow Bradley R. Quinton Dept. of Electrical and Computer Engineering University of British Columbia [email protected]
The 104 Duke_ACC Machine
The 104 Duke_ACC Machine The goal of the next two lessons is to design and simulate a simple accumulator-based processor. The specifications for this processor and some of the QuartusII design components
Latches, the D Flip-Flop & Counter Design. ECE 152A Winter 2012
Latches, the D Flip-Flop & Counter Design ECE 52A Winter 22 Reading Assignment Brown and Vranesic 7 Flip-Flops, Registers, Counters and a Simple Processor 7. Basic Latch 7.2 Gated SR Latch 7.2. Gated SR
Master/Slave Flip Flops
Master/Slave Flip Flops Page 1 A Master/Slave Flip Flop ( Type) Gated latch(master) Gated latch (slave) 1 Gate Gate GATE Either: The master is loading (the master in on) or The slave is loading (the slave
Set-Reset (SR) Latch
et-eset () Latch Asynchronous Level sensitive cross-coupled Nor gates active high inputs (only one can be active) + + Function 0 0 0 1 0 1 eset 1 0 1 0 et 1 1 0-? 0-? Indeterminate cross-coupled Nand gates
Interconnection Networks
Advanced Computer Architecture (0630561) Lecture 15 Interconnection Networks Prof. Kasim M. Al-Aubidy Computer Eng. Dept. Interconnection Networks: Multiprocessors INs can be classified based on: 1. Mode
Design Verification & Testing Design for Testability and Scan
Overview esign for testability (FT) makes it possible to: Assure the detection of all faults in a circuit Reduce the cost and time associated with test development Reduce the execution time of performing
DM74LS169A Synchronous 4-Bit Up/Down Binary Counter
Synchronous 4-Bit Up/Down Binary Counter General Description This synchronous presettable counter features an internal carry look-ahead for cascading in high-speed counting applications. Synchronous operation
Getting the Most Out of Synthesis
Outline Getting the Most Out of Synthesis Dr. Paul D. Franzon 1. Timing Optimization Approaches 2. Area Optimization Approaches 3. Design Partitioning References 1. Smith and Franzon, Chapter 11 2. D.Smith,
LogiCORE IP AXI Performance Monitor v2.00.a
LogiCORE IP AXI Performance Monitor v2.00.a Product Guide Table of Contents IP Facts Chapter 1: Overview Target Technology................................................................. 9 Applications......................................................................
Timing Errors and Jitter
Timing Errors and Jitter Background Mike Story In a sampled (digital) system, samples have to be accurate in level and time. The digital system uses the two bits of information the signal was this big
EE552. Advanced Logic Design and Switching Theory. Metastability. Ashirwad Bahukhandi. (Ashirwad Bahukhandi) [email protected]
EE552 Advanced Logic Design and Switching Theory Metastability by Ashirwad Bahukhandi (Ashirwad Bahukhandi) [email protected] This is an overview of what metastability is, ways of interpreting it, the issues
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No. # 26 Real - Time POSIX. (Contd.) Ok Good morning, so let us get
Chapter 13 Embedded Operating Systems
Operating Systems: Internals and Design Principles Chapter 13 Embedded Operating Systems Eighth Edition By William Stallings Embedded System Refers to the use of electronics and software within a product
Contents COUNTER. Unit III- Counters
COUNTER Contents COUNTER...1 Frequency Division...2 Divide-by-2 Counter... 3 Toggle Flip-Flop...3 Frequency Division using Toggle Flip-flops...5 Truth Table for a 3-bit Asynchronous Up Counter...6 Modulo
More Verilog. 8-bit Register with Synchronous Reset. Shift Register Example. N-bit Register with Asynchronous Reset.
More Verilog 8-bit Register with Synchronous Reset module reg8 (reset, CLK, D, Q); input reset; input [7:0] D; output [7:0] Q; reg [7:0] Q; if (reset) Q = 0; else Q = D; module // reg8 Verilog - 1 Verilog
PLL Dynamic Reconfiguration Author: Karl Kurbjun and Carl Ribbing
Application Note: Spartan-6 Family XAPP7 (v1.1) October 6, 011 PLL Dynamic Reconfiguration Author: Karl Kurbjun and Carl Ribbing Summary This application note provides a method to dynamically change the
Hunting Asynchronous CDC Violations in the Wild
Hunting Asynchronous Violations in the Wild Chris Kwok Principal Engineer May 4, 2015 is the #2 Verification Problem Why is a Big Problem: 10 or More Clock Domains are Common Even FPGA Users Are Suffering
EXPERIMENT 8. Flip-Flops and Sequential Circuits
EXPERIMENT 8. Flip-Flops and Sequential Circuits I. Introduction I.a. Objectives The objective of this experiment is to become familiar with the basic operational principles of flip-flops and counters.
DATA SHEET. HEF40193B MSI 4-bit up/down binary counter. For a complete data sheet, please also download: INTEGRATED CIRCUITS
INTEGRATED CIRCUITS DATA SHEET For a complete data sheet, please also download: The IC04 LOCMOS HE4000B Logic Family Specifications HEF, HEC The IC04 LOCMOS HE4000B Logic Package Outlines/Information HEF,
Clock Domain Crossing (CDC) Design & Verification Techniques Using SystemVerilog
SNUG-2008 Boston, MA Voted Best Paper 1st Place World Class Verilog & SystemVerilog Training Clifford E. Cummings Sunburst Design, Inc. [email protected] ABSTRACT Important design considerations
HT1632C 32 8 &24 16 LED Driver
328 &216 LED Driver Features Operating voltage: 2.V~5.5V Multiple LED display 32 ROW /8 COM and 2 ROW & 16 COM Integrated display RAM select 32 ROW & 8 COM for 6 display RAM, or select 2 ROW & 16 COM for
DIGITAL ELECTRONICS. Counters. By: Electrical Engineering Department
Counters By: Electrical Engineering Department 1 Counters Upon completion of the chapter, students should be able to:.1 Understand the basic concepts of asynchronous counter and synchronous counters, and
Multiplexers Two Types + Verilog
Multiplexers Two Types + Verilog ENEE 245: Digital Circuits and ystems Laboratory Lab 7 Objectives The objectives of this laboratory are the following: To become familiar with continuous ments and procedural
NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter
NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter Description: The NTE2053 is a CMOS 8 bit successive approximation Analog to Digital converter in a 20 Lead DIP type package which uses a differential
DIGITAL TECHNICS II. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute
DIGITAL TECHNICS II Dr. Bálint Pődör Óbuda University, Microelectronics and Technology Institute 2. LECTURE: ELEMENTARY SEUENTIAL CIRCUITS: FLIP-FLOPS 1st year BSc course 2nd (Spring) term 2012/2013 1
DIGITAL TECHNICS II. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute. 2nd (Spring) term 2012/2013
DIGITAL TECHNICS II Dr. Bálint Pődör Óbuda University, Microelectronics and Technology Institute 4. LECTURE: COUNTERS AND RELATED 2nd (Spring) term 2012/2013 1 4. LECTURE: COUNTERS AND RELATED 1. Counters,
Decimal Number (base 10) Binary Number (base 2)
LECTURE 5. BINARY COUNTER Before starting with counters there is some vital information that needs to be understood. The most important is the fact that since the outputs of a digital chip can only be
Abstract. Cycle Domain Simulator for Phase-Locked Loops
Abstract Cycle Domain Simulator for Phase-Locked Loops Norman James December 1999 As computers become faster and more complex, clock synthesis becomes critical. Due to the relatively slower bus clocks
Sequential Circuits. Combinational Circuits Outputs depend on the current inputs
Principles of VLSI esign Sequential Circuits Sequential Circuits Combinational Circuits Outputs depend on the current inputs Sequential Circuits Outputs depend on current and previous inputs Requires separating
TIMING-DRIVEN PHYSICAL DESIGN FOR DIGITAL SYNCHRONOUS VLSI CIRCUITS USING RESONANT CLOCKING
TIMING-DRIVEN PHYSICAL DESIGN FOR DIGITAL SYNCHRONOUS VLSI CIRCUITS USING RESONANT CLOCKING BARIS TASKIN, JOHN WOOD, IVAN S. KOURTEV February 28, 2005 Research Objective Objective: Electronic design automation
Programmable Logic Design Grzegorz Budzyń Lecture. 10: FPGA clocking schemes
Programmable Logic Design Grzegorz Budzyń Lecture 10: FPGA clocking schemes Plan Introduction Definitions Clockskew Metastability FPGA clocking resources DCM PLL Introduction One of the most important
CHAPTER 3 Boolean Algebra and Digital Logic
CHAPTER 3 Boolean Algebra and Digital Logic 3.1 Introduction 121 3.2 Boolean Algebra 122 3.2.1 Boolean Expressions 123 3.2.2 Boolean Identities 124 3.2.3 Simplification of Boolean Expressions 126 3.2.4
Debouncing Switches. Mechanical switches are one of the most common interfaces to a uc.
Mechanical switches are one of the most common interfaces to a uc. Switch inputs are asynchronous to the uc and are not electrically clean. Asynchronous inputs can be handled with a synchronizer (2 FF's).
Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com
Best Practises for LabVIEW FPGA Design Flow 1 Agenda Overall Application Design Flow Host, Real-Time and FPGA LabVIEW FPGA Architecture Development FPGA Design Flow Common FPGA Architectures Testing and
