FPGA SYNTHESIS AND CONSTRAIN SETTING. -- Liang Tang

Similar documents
VHDL Test Bench Tutorial

How To Design A Chip Layout

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

IMPLEMENTATION OF BACKEND SYNTHESIS AND STATIC TIMING ANALYSIS OF PROCESSOR LOCAL BUS(PLB) PERFORMANCE MONITOR

Modeling Latches and Flip-flops

WA Manager Alarming System Management Software Windows 98, NT, XP, 2000 User Guide

Rotary Encoder Interface for Spartan-3E Starter Kit

Lab 1: Introduction to Xilinx ISE Tutorial

FPGA Clocking. Clock related issues: distribution generation (frequency synthesis) multiplexing run time programming domain crossing

University of Texas at Dallas. Department of Electrical Engineering. EEDG Application Specific Integrated Circuit Design

LatticeECP3 High-Speed I/O Interface

Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial

Quartus II Introduction for VHDL Users

Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1

9/14/ :38

Digital IC Design Flow

Hunting Asynchronous CDC Violations in the Wild

Figure 1 FPGA Growth and Usage Trends

Download the Design Files

Digital Circuit Design Using Xilinx ISE Tools

Measuring Metastability

Getting the Most Out of Synthesis

HDL Simulation Framework

DE4 NetFPGA Packet Generator Design User Guide

Implementation Details

White Paper Utilizing Leveling Techniques in DDR3 SDRAM Memory Interfaces

RTL Technology and Schematic Viewers

Master/Slave Flip Flops

Introduction to Digital System Design

Prototyping ARM Cortex -A Processors using FPGA platforms

Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: ext: Sequential Circuit

Xilinx/Mentor Graphics PCB Guide. UG630 (v 13.1) March 1, 2011

The 104 Duke_ACC Machine

Chapter 13: Verification

Case Study: Improving FPGA Design Speed with Floorplanning

Switch Fabric Implementation Using Shared Memory

SDLC Controller. Documentation. Design File Formats. Verification

ModelSim-Altera Software Simulation User Guide

Source-Synchronous Serialization and Deserialization (up to 1050 Mb/s) Author: NIck Sawyer

White Paper FPGA Performance Benchmarking Methodology

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

A New Paradigm for Synchronous State Machine Design in Verilog

Design of Remote Laboratory dedicated to E2LP board for e-learning courses.

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

Hello, and welcome to this presentation of the STM32 SDMMC controller module. It covers the main features of the controller which is used to connect

Quartus II Introduction Using VHDL Design

Introduction to CMOS VLSI Design (E158) Lecture 8: Clocking of VLSI Systems

Modeling Registers and Counters

Use of Reprogrammable FPGA on EUCLID mission

Development System Reference Guide 10.1

Designing a Schematic and Layout in PCB Artist

Xilinx ISE. <Release Version: 10.1i> Tutorial. Department of Electrical and Computer Engineering State University of New York New Paltz

FPGA Synthesis Example: Counter

Altera Error Message Register Unloader IP Core User Guide

Latch Timing Parameters. Flip-flop Timing Parameters. Typical Clock System. Clocking Overhead

TIP-VBY1HS Data Sheet

Lecture 7: Clocking of VLSI Systems

Chapter 9 Latches, Flip-Flops, and Timers

Contents. Overview Memory Compilers Selection Guide

11. High-Speed Differential Interfaces in Cyclone II Devices

Below is a diagram explaining the data packet and the timing related to the mouse clock while receiving a byte from the PS-2 mouse:

81110A Pulse Pattern Generator Simulating Distorted Signals for Tolerance Testing

Using Xbee in Serial Communication

FPGA Prototyping Primer

Installing and Configuring a SQL Server 2014 Multi-Subnet Cluster on Windows Server 2012 R2

Engineering Change Order (ECO) Support in Programmable Logic Design

Using Xilinx ISE for VHDL Based Design

ISE In-Depth Tutorial 10.1

LAB #3 VHDL RECOGNITION AND GAL IC PROGRAMMING USING ALL-11 UNIVERSAL PROGRAMMER

Wurth Electronics Midcom Altium Library Training Module Altium Designer layout software and the Wurth Electronics Midcom Altium libraries

EXPERIMENT 8. Flip-Flops and Sequential Circuits

PROGETTO DI SISTEMI ELETTRONICI DIGITALI. Digital Systems Design. Digital Circuits Advanced Topics

Component, Model and Library Concepts. Components - the Basic Building Blocks. Modified by on 2-Jul-2014

Sequential Logic. (Materials taken from: Principles of Computer Hardware by Alan Clements )

PCB Project (*.PrjPcb)

Lab 17: Building a 4-Digit 7-Segment LED Decoder

ESP-CV Custom Design Formal Equivalence Checking Based on Symbolic Simulation

VHDL GUIDELINES FOR SYNTHESIS

PCIe Core Output Products Generation (Generate Example Design)

Jianjian Song LogicWorks 4 Tutorials (5/15/03) Page 1 of 14

High-Level Synthesis for FPGA Designs

Design and Verification of Nine port Network Router

GETTING STARTED WITH PROGRAMMABLE LOGIC DEVICES, THE 16V8 AND 20V8

No serious hazards are involved in this laboratory experiment, but be careful to connect the components with the proper polarity to avoid damage.

Testing & Verification of Digital Circuits ECE/CS 5745/6745. Hardware Verification using Symbolic Computation

Digital Design Verification

Lesson 12 Sequential Circuits: Flip-Flops

7a. System-on-chip design and prototyping platforms

AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE

NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter

Xilinx/ Mentor Graphics PCB Guide

Step : Create Dependency Graph for Data Path Step b: 8-way Addition? So, the data operations are: 8 multiplications one 8-way addition Balanced binary

International Journal of Advancements in Research & Technology, Volume 2, Issue3, March ISSN

SYMETRIX SOLUTIONS: TECH TIP August 2015

Printed Circuit Board Design with HDL Designer

DDS. 16-bit Direct Digital Synthesizer / Periodic waveform generator Rev Key Design Features. Block Diagram. Generic Parameters.

Using the HT46R46 I/O Ports to Implement Half-Duplex SPI Communication

Chapter 2 Clocks and Resets

CS 61C: Great Ideas in Computer Architecture Finite State Machines. Machine Interpreta4on

Component, Model and Library Concepts

Transcription:

FPGA SYNTHESIS AND CONSTRAIN SETTING -- Liang Tang 1

Outline FPGA Design Procedure Key FPGA Constraint Commands How to set constraint? 2

FPGA Design Procedure RTL (Register Transfer Level) Design Synthesis Implementation 3

FPGA Design Procedure RTL (Register Transfer Level) Design The FPGA design entry is Register Transfer Level which represents a digital circuit as a set of connected components. Design Specification Behavioral Description RTL Design RTL verification 4

FPGA Design Procedure Synthesis This stage converts RTL code into a optimized gate-level netlist represented in the terms of certain component library. RTL => Logic cell Logic cell Optimization Logic to Technology Timing/Area Optimization 5

FPGA Design Procedure Implementation Implementation procedure will translate netlist into the placed and routed FPGA design. Translate Map Place & Route 6

Outline FPGA Design Procedure Key FPGA Constraint Commands How to set constraint? 7

Key FPGA Constraint Commands Good constraint improves design performance: Tools try to meet your performance expectations; Compile time may be increased; Example of timing constraint effect: Without Timing constraint With Timing constraint 8

Key FPGA Constraint Commands I/O pad assignment Clock creation I/O delay definition False path 9

Key FPGA Constraint Commands I/O pad assignment Assign the signals in the FPGA design to I/O pad to communicate with external device. Example: NET "i2c_sclk" LOC = "C5" ; 10

Key FPGA Constraint Commands Clock creation Constrain register to register path inside FPGA design. Example: NET MCLK" TNM_NET = "mclk_net"; TIMESPEC "TS_MCLK" = PERIOD "mclk_net" 10 ns HIGH 50 %; This example defines a minimum period of 10ns for MCLK clock net. D Q D Q 11 0ns 5ns 10ns MCLK

Key FPGA Constraint Commands I/O delay definition OFFSET constraint is used to specify external setup time for input pads or necessary hold time for output pads. For input pads, OFFSET specifies a time before the (external) clock edge when the related data signals are set. Syntax for input delay: OFFSET = IN offset_time [units] [VALID <datavalid_time> [UNITS]] {BEFORE AFTER} clk_name [{RISING FALLING}]; Parameter offset_time datavalid_time BEFORE AFTER clk_name RISING FALLING Comment The difference in time between the capturing clock edge and the start of the data to be captured. The valid duration of the data to be captured. It is optional parameter. It defines the timing relationship of the start of data to the clock edge. BEFORE is usually used. 12 The name of input trigger clock pad net. The capturing clock edge. It is optional parameter.

Key FPGA Constraint Commands Example for input delay: NET data_i" OFFSET = IN 4 ns BEFORE MCLK"; My Design D Q data_i D Q 4ns MCLK 13

Key FPGA Constraint Commands For output pads, OFFSET specifies a minimum time after the clock edge when the related data signals can be deasserted. Syntax for output delay: OFFSET = OUT offset_time [units] {BEFORE AFTER} clk_name [REFERENCE_PIN ref_pin ] [{RISING FALLING}]; Parameter offset_time BEFORE AFTER clk_name Comment It defines the time from the clock edge at the input pin of the FPGA until data first becomes valid at the data output pin of the FPGA. It defines the timing relationship from the clock edge to the start of data. The name of input trigger clock pad net. REFERENCE_PIN ref_pin RISING FALLING is an optional keyword that is most commonly used in source synchronous output interfaces. It is optional parameter. The transmitting clock edge. It is optional parameter. 14

Key FPGA Constraint Commands Example for output delay: NET data_o" OFFSET = OUT 5.5 ns AFTER MCLK"; My Design D Q data_o D Q 5.5ns MCLK 15

Key FPGA Constraint Commands Timing Ignore (TIG) TIG causes paths that fan forward from the point of application to be treated as if they do not exist during implementation. TIG is applicable to: Nets, Pins, Instances. Example TIMESPEC "TSid" = FROM "from_grp" TO "to_grp" TIG; 16

Outline FPGA Design Procedure Key FPGA Constraint Commands How to set constraint? 17

How to set constraint? User Constrain File (.ucf) UCF file is ASCII file specifying constraints on the logical design, such as timing and location. UCF can be edited by: ISE Constraints Editor; Any text editor; 18

ISE Constraints Editor After creation of ISE project, click: Project New Source Implementation Constraints File to generate constraints file. 19

ISE Constraints Editor In the ISE project Design tab, select your top module, then double click Create Timing Constraints under User Constraints. 20

ISE Constraints Editor Then the Constraints Editor will appear. 21

22

ISE Constraints Editor: Clock Setting Double click the Clock Domains in Timing Constraints tab to activate clock setting. Set your clock based on specification. 23

24

ISE Constraints Editor: Input Signal Setting Double click the Inputs in Timing Constraints tab to activate input signal setting. Select Interface type, Data rate and Clock edge at first. Notes on Interface type: System Synchronous Timing: one clock source controls the data transmission and reception of all devices. Source Synchronous Timing: one clock source controls the data transmission of devices. The derived clocks control data reception. 25

26

ISE Constraints Editor: Input Signal Setting Then define the detail parameters: Parameter Input clock pad net Input pad timgroup/net External setup time (offset in) Data valid duration Comment The clock is used to capture the input signal. Equals to OFFSET IN clk_name parameter. Select the input signal to be defined. The time before the rising clock edge when the rising data becomes valid. Equals to OFFSET IN offset_time parameter. The duration of the data valid window for the rising data. Equals to OFFSET IN datavalid_time parameter. 27

28

ISE Constraints Editor: Output Signal Setting Double click the Outputs in Timing Constraints tab to activate output signal setting. Then define the detail parameters: Parameter SDR/DDR selection Output clock pad net Output pad timegroup/net External clock to pad (offset out) Comment Select Single Data Rate or Dual Data Rate for output signal. The clock net used to trigger the outgoing data. Equals to OFFSET OUT clk_name parameter. Select the output signal to be defined. The time from the rising clock edge at the input pin of the FPGA until data becomes valid at the output pin of the FPGA. Equals to OFFSET OUT offset_time parameter. 29

30

Using text editor After generation of constraint file by double click Create Timing Constraints, an UCF file should be generated in the project directory. It can be edited by any text editor. The full description of constraints syntax can be found in Xilinx Constraints Guide Example of UCF file content: NET "mclk" TNM_NET = mclk; TIMESPEC TS_MCLK = PERIOD "mclk" 9 ns HIGH 50%; NET "pal_hs" OFFSET = IN 5 ns VALID 7 ns BEFORE "mclk" RISING; NET "mem_adv" OFFSET = OUT 5 ns AFTER "mclk"; 31

Question Given the system diagram below, what values would you put in the Constraints Editor so that the system will run at 100 MHz? Assume no clock skew between devices 32

Answer Answer: PERIOD = 10 ns, OFFSET IN = 7 ns and OFFSET OUT = 8 ns 33