This material exempt per Department of Commerce license exception TSU Synchronous Design Techniques.

Slides:



Advertisements
Similar presentations
What are FPGA Power Management HDL Coding Techniques Xilinx Training.
Advertisements

Basic HDL Coding Techniques
Xilinx 6.3 Tutorial Integrated Software Environment (ISE) Set up basic environment Select Gates or Modules to Be simulated (Insert Program Code) Run Waveform.
Lecture 15 Finite State Machine Implementation
1 Lecture 16 Timing  Terminology  Timing issues  Asynchronous inputs.
Spartan-3 FPGA HDL Coding Techniques
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
FPGA Configuration. Introduction What is configuration? – Process for loading data into the FPGA Configuration Data Source Configuration Data Source FPGA.
10/14/2005Caltech1 Reliable State Machines Dr. Gary R Burke California Institute of Technology Jet Propulsion Laboratory.
Digital Logic Chapter 5 Presented by Prof Tim Johnson
1 COMP541 Sequential Circuits Montek Singh Sep 17, 2014.
© 2003 Xilinx, Inc. All Rights Reserved Architecture Wizard and PACE FPGA Design Flow Workshop Xilinx: new module Xilinx: new module.
Counter Circuits and VHDL State Machines
The Spartan 3e FPGA. CS/EE 3710 The Spartan 3e FPGA  What’s inside the chip? How does it implement random logic? What other features can you use?  What.
Configurable System-on-Chip: Xilinx EDK
VHDL Synthesis in FPGA By Zhonghai Shi February 24, 1998 School of EECS, Ohio University.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE Senior Design I Lecture 4 - Verilog 2 (Sequential.
Achieving Timing Closure. Achieving Timing Closure - 2 © Copyright 2010 Xilinx Objectives After completing this module, you will be able to:  Describe.
ELEN 468 Advanced Logic Design
1 Chapter 7 Design Implementation. 2 Overview 3 Main Steps of an FPGA Design ’ s Implementation Design architecture Defining the structure, interface.
1 COMP541 State Machines – 2 Registers and Counters Montek Singh Feb 8, 2007.
A State Element “Zoo”.
Global Timing Constraints FPGA Design Workshop. Objectives  Apply timing constraints to a simple synchronous design  Specify global timing constraints.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
ECE 2372 Modern Digital System Design
© 2003 Xilinx, Inc. All Rights Reserved FPGA Design Techniques.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
FPGA (Field Programmable Gate Array): CLBs, Slices, and LUTs Each configurable logic block (CLB) in Spartan-6 FPGAs consists of two slices, arranged side-by-side.
Flip-Flops and Registers
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
© 2003 Xilinx, Inc. All Rights Reserved Synchronous Design Techniques.
ENG241 Digital Design Week #8 Registers and Counters.
Slide 1 6. VHDL/Verilog Behavioral Description. Slide 2 Verilog for Synthesis: Behavioral description Instead of instantiating components, describe them.
Topic: Sequential Circuit Course: Logic Design Slide no. 1 Chapter #6: Sequential Logic Design.
Programmable Logic Training Course Project Manager.
This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
CHAPTER 8 - COUNTER -.
© 2003 Xilinx, Inc. All Rights Reserved Global Timing Constraints FPGA Design Flow Workshop.
Programmable Logic Training Course HDL Editor
CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis Aleksandar Milenkovic
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Introductory project. Development systems Design Entry –Foundation ISE –Third party tools Mentor Graphics: FPGA Advantage Celoxica: DK Design Suite Design.
Tools - Design Entry - Chapter 4 slide 1 FPGA Tools Course Design Entry.
Tools - LogiBLOX - Chapter 5 slide 1 FPGA Tools Course The LogiBLOX GUI and the Core Generator LogiBLOX L BX.
Finite State Machine (FSM) Nattha Jindapetch December 2008.
VHDL Discussion Finite State Machines IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
1 COMP541 State Machines – 2 Registers and Counters Montek Singh Feb 11, 2010.
COMP541 Sequential Circuits
Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May – 9 June 2007 Javier.
CDA 4253 FPGA System Design RTL Design Methodology 1 Hao Zheng Comp Sci & Eng USF.
Teaching Digital Logic courses with Altera Technology
CRU-HDL coding style and rules Filippo Costa ALICE O 2 CERN 1.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU 99-1 Under-Graduate Project Design of Datapath Controllers Speaker: Shao-Wei Feng Adviser:
REGISTER TRANSFER LANGUAGE (RTL) INTRODUCTION TO REGISTER Registers1.
© 2005 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU CORE Generator System.
Tools - Hardware Optimization - Chapter 12 slide 1 Version 1.5 FPGA Tools Training Class Hardware Optimization.
EMT 351/4 DIGITAL IC DESIGN Verilog Behavioral Modeling  Finite State Machine -Moore & Mealy Machine -State Encoding Techniques.
INF3430 / 4431 Synthesis and the Integrated Logic Analyzer (ILA) (WORK IN PROGRESS)
REGISTER TRANSFER LANGUAGE (RTL)
Registers and Counters
FPGA Design Techniques I
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
SYNTHESIS OF SEQUENTIAL LOGIC
FPGA Tools Course Answers
ChipScope Pro Software
ChipScope Pro Software
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

This material exempt per Department of Commerce license exception TSU Synchronous Design Techniques

Synchronous Design Techniques 2 Objectives After completing this module, you will be able to: Use the hierarchy effectively Increase the circuit reliability and performance by applying synchronous design techniques

Synchronous Design Techniques 3 Outline Hierarchical Design Synchronous Design for Xilinx FPGAs Summary

Synchronous Design Techniques 4 Using Hierarchy leads to greater design readability, reuse, and debug State Machines One-hot Binary Enumerated Counters Adders/Subtractors Bit Shifters Accumulators Building Blocks Standard Widths Pipeline RAMs Datapaths Pipelining Muxing/De-Muxing Arithmetic CoreGen Parametizable functions FIFOs FIR Filters RAM Technology-Specific Functions Specific Functions RAM Other IP/Cores Top Level of Design Infer or instantiate I/O here Hierarchical Design

Benefits of Using Hierarchy Design readability – Easier to understand the design functionality and data flow – Easier to debug Easy to reuse parts of a design

Design Readability Tips Choose hierarchical blocks that have the following: – Logical data flow between blocks – Minimum of routing between blocks Choose descriptive labels for blocks and signals Keep clock domains separated – Makes the interaction between clocks very clear Keep the length of each source file manageable – Easier to read, synthesize, and debug

Design Reuse Tips Build a set of blocks that are available to all designers – Register banks – FIFOs – Other standard functions – Custom functions commonly used in your applications Name blocks by function and target Xilinx family – Easy to locate the block you want – Example: REG_4X8_S3 (bank of four 8-bit registers targeting Spartan-3) Store in a directory that is separate from the Xilinx tools – Prevents accidental deletion when updating tools

Synchronous Design Techniques 8 Outline Hierarchical Design Synchronous Design for Xilinx FPGAs Summary

Synchronous Design Techniques 9 Why Synchronous Design? Synchronous circuits are more reliable – Events are triggered by clock edges that occur at well-defined intervals – Outputs from one logic stage have a full clock cycle to propagate to the next stage Skew between data arrival times is tolerated within the same clock period Asynchronous circuits are less reliable – Delay may need to be a specific amount (for example, 12 ns) – Multiple delays may need to hold a specific relationship (for example, DATA arrives 5 ns before SELECT)

Synchronous Design Techniques 10 Asynchronous Design Case Studies The design I created two years ago no longer works. What did Xilinx change in their FPGAs? – SRAM process improvements and geometry shrinks increase speed – Normal variations between wafer lots My design passes a timing simulation test but fails in-circuit. Is the timing simulation accurate? YES – Timing simulation uses worst-case delays – Actual board-level conditions are usually better

Synchronous Design Techniques 11 Clock Skew This shift register will not work because of clock skew! Expected operation Clock Q_A Q_B Q_C 3 cycles Clock skewed version A & C Clock Q_A Q_B Q_C B Clock 2 cycles D Q_B Q_C INPUT CLOCK D DQ_A ABC

Use Global Buffers to Reduce Clock Skew Global buffers are connected to dedicated routing – This routing network is balanced to minimize skew All Xilinx FPGAs have global buffers – Virtex™-II and Virtex-II Pro devices have sixteen BUFGMUXes – Spartan™-3 devices have eight BUFGMUXes – Virtex-4 devices have 32 BUFGCTRLs You can always use a BUFG symbol, and the software will choose an appropriate buffer type – All major synthesis tools can infer global buffers onto clock signals that come from off-chip

Synchronous Design Techniques 13 Using Global Lines Most synthesis tools will automatically infer a BUFG on clocks – Clock signals must come from a top-level port – Internally generated clocks are not automatically placed on a BUFG Sample instantiation of BUFGMUX (Verilog) BUFGMUX U_BUFGMUX (.I0( ), // insert clock input used when select(S) is Low.I1( ), // insert clock input used when select(S) is High.S( ), // insert Mux-Select input.O( ) // insert clock output); – VHDL declaration and instantiation in notes area Note: These templates, and templates for other BUFGMUX configurations, are available in the ISE™ language templates

Synchronous Design Techniques 14 Traditional Clock Divider Introduces clock skew between CLK1 and CLK2 Uses an extra BUFG to reduce skew on CLK2 DQ CLK2 CLK1 BUFG DQ

Synchronous Design Techniques 15 Recommended Clock Divider No clock skew between flip-flops DQ CLK2_CE CLK1 D CE Q BUFG

Synchronous Design Techniques 16 Avoid Clock Glitches Because flip-flops in today’s FPGAs are very fast, they can respond to very narrow clock pulses Never source a clock signal from combinatorial logic – Also known as “gating the clock” Shorter routing Glitch may occur here MSB Binary Counter transition can become due to faster MSB MSB FF LSB

Synchronous Design Techniques 17 Avoid Clock Glitches This circuit creates the same function, but it creates the function without glitches on the clock D Q3 INPUT CLOCK Counter Q2 Q1 Q0 CE Q D FF

Synchronous Design Techniques 18 Coding Clock Enables VHDL FF_AR_CE: process(CLK) begin if (CLK’event and CLK = ‘1’) then if (ENABLE = ‘1’) then Q <= D_IN; end if; end process VHDL FF_AR_CE: process(CLK) begin if (CLK’event and CLK = ‘1’) then if (ENABLE = ‘1’) then Q <= D_IN; end if; end process Verilog CLOCK) if (ENABLE) Q = D_IN; Verilog CLOCK) if (ENABLE) Q = D_IN; If ENABLE is not a top-level port, write the code for ENABLE in another process – Makes the code more readable – Helps the synthesis tools create better netlists Control signal precedence: Reset, Set, Enable – Use this order in your code

Synchronous Design Techniques 19 CLOCK Q[x] Binary Counter Q[0] INPUT RESET Q FF D CLR Asynchronous Reset Avoid Set/Reset Glitches Glitches on asynchronous set and asynchronous reset inputs can lead to incorrect circuit behavior

Synchronous Design Techniques 20 CLOCK Q[x] Counter Q[0] RESET INPUT Q FF D R Synchronous Reset Avoid Set/Reset Glitches Convert to synchronous set and synchronous reset when possible

Synchronous Design Techniques 21 Coding Synchronous Flip-Flops Asynchronous Reset CLOCK or posedge RESET) if (RESET) Q = 0; else Q = D_IN; Asynchronous Reset CLOCK or posedge RESET) if (RESET) Q = 0; else Q = D_IN; Synchronous Reset CLOCK) if (RESET) Q = 0; else Q = D_IN; Synchronous Reset CLOCK) if (RESET) Q = 0; else Q = D_IN;

Synchronous Design Techniques 22 Outline Hierarchical Design Synchronous Design for Xilinx FPGAs Summary

Synchronous Design Techniques 23 Skills Check

Review Questions List two benefits of hierarchical design Why should you use global buffers for your clock signals? What is an alternative to gating a clock?

Answers List two benefits of hierarchical design – Design readability – Design reuse Why should you use global buffers for your clock signals? – To reduce clock skew What is an alternative to gating a clock? – Use a clock enable

Summary Proper use of the hierarchy aids design readability and debug Synchronous designs are more reliable than asynchronous designs FPGA design tips – Global clock buffers and DLLs eliminate skew – Avoid glitches on clocks, asynchronous sets, and asynchronous resets

Where Can I Learn More? Application notes on  Documentation  Application Notes Software documentation on  Documentation  Software Manuals – Development System Reference Guide, Chapter 2: Design Flow, FPGA Design Techniques section – Libraries Guide Documentation for your synthesis tool