Timing and Constraints “The software is the lens through which the user views the FPGA.” -Bill Carter.

Slides:



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

Basic HDL Coding Techniques
VERILOG: Synthesis - Combinational Logic Combination logic function can be expressed as: logic_output(t) = f(logic_inputs(t)) Rules Avoid technology dependent.
Spartan-3 FPGA HDL Coding Techniques
Combinational Logic.
A Digital Circuit Toolbox
Table 7.1 Verilog Operators.
Verilog Intro: Part 1.
Introduction So far, we have studied the basic skills of designing combinational and sequential logic using schematic and Verilog-HDL Now, we are going.
Week #2 Slides. Agenda Recap 15 Years of Evolution to Virtex Four generations of Spartan Project discussion Questions.
EELE 367 – Logic Design Module 2 – Modern Digital Design Flow Agenda 1.History of Digital Design Approach 2.HDLs 3.Design Abstraction 4.Modern Design Steps.
Kazi Spring 2008CSCI 6601 CSCI-660 Introduction to VLSI Design Khurram Kazi.
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.
CSE241 RTL Performance.1Kahng & Cichy, UCSD ©2003 CSE241A VLSI Digital Circuits Winter 2003 Recitation 2.5: Performance Coding.
Achieving Timing Closure. Achieving Timing Closure - 2 © Copyright 2010 Xilinx Objectives After completing this module, you will be able to:  Describe.
Reconfigurable Computing S. Reda, Brown University Reconfigurable Computing (EN2911X, Fall07) Lab 2 presentations Prof. Sherief Reda Division of Engineering,
CS294-6 Reconfigurable Computing Day 16 October 20, 1998 Retiming Structures.
Achieving Timing Closure. Objectives After completing this module, you will be able to: Describe a flow for obtaining timing closure Interpret a timing.
Lecture # 12 University of Tehran
ECE 551 Digital System Design & Synthesis Lecture 11 Verilog Design for Synthesis.
© 2003 Xilinx, Inc. All Rights Reserved Power Estimation.
Global Timing Constraints FPGA Design Workshop. Objectives  Apply timing constraints to a simple synchronous design  Specify global timing constraints.
© 2003 Xilinx, Inc. All Rights Reserved Reading Reports Xilinx: This module was completely redone. Please translate entire module Some pages are the same.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
Lecture #3 Page 1 ECE 4110– Sequential Logic Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.No Class Monday, Labor Day Holiday 2.HW#2 assigned.
Week Four Design & Simulation Example slides. Agenda Review the tiny example (Minako “logic”)from last week – look at the detailed static timing report.
Ch.9 CPLD/FPGA Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology.
Institute of Information Sciences and Technology Towards a Visual Notation for Pipelining in a Visual Programming Language for Programming FPGAs Chris.
ASIC Design Flow – An Overview Ing. Pullini Antonio
Lecture #3 Page 1 ECE 4110– Sequential Logic Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.No Class Monday, Labor Day Holiday 2.HW#2 assigned.
Lessons Learned The Hard Way: FPGA  PCB Integration Challenges Dave Brady & Bruce Riggins.
CHAPTER 6 Virtex Memory. Agenda RAM Applications LUT RAM –SRL 16 –Other uses of LUT RAM (FIFO focus) Block RAM Inside Block RAM Cells.
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.
Galen SasakiEE 260 University of Hawaii1 Electronic Design Automation (EDA) EE 260 University of Hawaii.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR Topics n FPGA fabric architecture concepts.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
© 2003 Xilinx, Inc. All Rights Reserved Synchronous Design Techniques.
Lecture #26 Page 1 ECE 4110– Sequential Logic Design Lecture #26 Agenda 1.State Encoding 2.Pipelined Outputs 3.Asynchronous Inputs Announcements 1.n/a.
Chuck Benz ASIC & FPGA Design csrGen: Automated CSRs for ASIC/FPGA Processor Interfaces Chuck Benz Chuck Benz ASIC & FPGA Design
Lecture #3 Page 1 ECE 4110–5110 Digital System Design Lecture #3 Agenda 1.FPGA's 2.Lab Setup Announcements 1.HW#2 assigned Due.
© 2003 Xilinx, Inc. All Rights Reserved Global Timing Constraints FPGA Design Flow Workshop.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
A Physical Resource Management Approach to Minimizing FPGA Partial Reconfiguration Overhead Heng Tan and Ronald F. DeMara University of Central Florida.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
This material exempt per Department of Commerce license exception TSU Synchronous Design Techniques.
ESS | FPGA for Dummies | | Maurizio Donna FPGA for Dummies Basic FPGA architecture.
Tools - Analyzing your results - Chapter 7 slide 1 Version 1.5 FPGA Tools Course Analyzing your Results.
RTL Hardware Design by P. Chu Chapter 9 – ECE420 (CSUN) Mirzaei 1 Sequential Circuit Design: Practice Shahnam Mirzaei, PhD Spring 2016 California State.
INF3430 / 4431 Synthesis and the Integrated Logic Analyzer (ILA) (WORK IN PROGRESS)
Introduction to the FPGA and Labs
Figure 8.1. The general form of a sequential circuit.
Verilog Introduction Fall
Advance Skills TYWu.
FPGA Design Techniques
ECE 4110–5110 Digital System Design
FPGA Implementation of Multicore AES 128/192/256
Combinatorial Logic Design Practices
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
The Xilinx Virtex Series FPGA
Week 5, Verilog & Full Adder
Timing Analysis 11/21/2018.
Lecture 14: Timing Analysis and Timed Simulation
The Xilinx Virtex Series FPGA
ECE 352 Digital System Fundamentals
Optimizing RTL for EFLX Tony Kozaczuk, Shuying Fan December 21, 2016
COE 202 Introduction to Verilog
Presentation transcript:

Timing and Constraints “The software is the lens through which the user views the FPGA.” -Bill Carter

Outline Basic Timing (comb. and sequential) Block timing models –LUTs –BRAM –Multipliers Some standard design timing tricks Constraints –Timing –Geometric (pinning & arrangement –Combinations Best tools –Experience –Insight

Propagation Delay LUT Tpd is called “Tilo”

Flop Timing

LUT Logic Timing Parameters

Basic LUT Logic Timing

Distributed RAM Timing Model

Dist. RAM Parameters

LUT SRL Timing Model

SRL Timing Parameters

LUT w. Carry Chain Focus

Carry Chain Timing

BRAM Timing Model

BRAM Timing Params

Multiplier Model & Delay Variation

Multiplier Timing Params

Routing Delays FPGA datasheets do not give details on routing delay. Hence: –Routing delays not known to designer until design is placed and routed –Delays for early silicon are frequently still under analysis –Software maintains best source for the real timing FPGA datasheets do provide times associated with incremental silicon blocks

Virtex style logic tile Comment: CLE with IMUX and OMUX is what we Call the “CLB”

What you may find inside the Interconnect block Little black splotches Are muxes or little PIPs to make selectable Attachments….

Some standard timing tricks Load splitting (aka fanout reduction) –Identify sites driving large number of loads –Insert buffered version of the signal with multiple buffers each handling a piece of the total load –Result usually faster Pipelining –Insert flip flop stages to reduce setup time restrictions –Increases clocking speed, at expense of added latency

Pipelining Idea

Pipeline solution Each flip stage can operate at faster Rate than before, but result goes valid After TWO clocks.

Constraints More options than we will discuss today High level, global constraints = big payoff Will compare a couple of designs across multiple constraints/combinations to illustrate: –32 bit adder (inherent internal constraint) Combinational suggests tPD constraints –32 bit shifter (very malleable) Sequential suggests Fmax or cycle constraints

Spartan 3S50 TQ144

Big Adder module Big_Adder1( input [31:0] A, input [31:0] B, output [32:0] SUM ); assign SUM = A + B; endmodule

Big Adder (unconstrained)

Adder with 20 nsec tPD constraint

Change constraint Original unconstrained looks ~same as the nominal 20 nsec constraint. 20 nsec constraint came in at nsec. Push it down a little, to say 11 nsec and see what happens……

Adder with 11 ns constraint originalnew

Timing Improvement Wizard Screen 1

TIW Screen 2

TIW Screen 3 Bad news ~78% of the Delay is due to logic Suggests need for faster part

Note Several bits Are out of spec

Interesting… Faster design Meets time Without Shift to right? Comment: Recompiled On -5 version (original =-4)

Comments Free pinning, free routing gave a result and revealed that nsec possible Free pinning, constrained to 11 nsec revealed 11 nsec is NOT possible (for -4 part) ~78% time spent in silicon delay ~22% time spent in routing delay Faster part (-5) hits 11 nsec, with centered design. Faster part won’t hit 10 nsec when constrained (please experiment for yourself!)

“Big_Shifter” Code module Big_Shifter( input C, input ALOAD, input SI, input [31:0] D, output SO ); reg [31:0] tmp; C or posedge ALOAD) begin if (ALOAD) tmp = D; else begin tmp = {tmp[30:0], SI}; end assign SO = tmp[31]; endmodule

Big Shifter (unconstrained)

Run Failed….chunk of PAR report

Revised Constraints

Revised layout

Constraint revised again

Didn’t run: PAR report advice

Hmmm…based on slack revise to:

PAR report from revised setup/hold times Bingo!

clock Clock net Serial in Serial out

From “FloorPlan IO Pre-Synthesis” Just defining at the BANK level (versus explicit PADs)

Placing half pins on Bank 0 Shifted the design around But still met timing…..

Closing Comments The ISE constraints guide is online It has timing, placement, grouping, relational and synthesis level constraints for both VHDL and Verilog MOST designers prefer to have a design.ucf file as a separate item. Best results most often by writing in RTL with.ucf file Best approach is to experiment using small designs to see what the results are –Examine various reports –Look at “world view” –Pay attention to advice from S/W

Footnote: WebPack 11.1 v. of shifter