FPGA Configuration. Introduction What is configuration? – Process for loading data into the FPGA Configuration Data Source Configuration Data Source FPGA.

Slides:



Advertisements
Similar presentations
Introduction to DFT Alexander Gnusin.
Advertisements

BOUNDARY SCAN.
EXTERNAL COMMUNICATIONS DESIGNING AN EXTERNAL 3 BYTE INTERFACE Mark Neil - Microprocessor Course 1 External Memory & I/O.
Basic FPGA Configuration
The 8085 Microprocessor Architecture
System on Chip Configuring FPGAs. Firmware and the boot process Booting is a complex process for any system It requires some form of firmware to be available.
LOGSYS Development Environment of Embedded Systems Tamás Raikovich Béla Fehér Péter Laczkó Budapest University of Technology and Economics Department of.
Survey of Reconfigurable Logic Technologies
Configuration of FPGAs Using (JTAG) Boundary Scan Chen Shalom
BEEKeeper Remote Management and Debugging of Large FPGA Clusters Terry Filiba Navtej Sadhal.
Real-Time Systems Design JTAG – testing and programming.
Serial Peripheral Interface (SPI)
Programmable logic and FPGA
TAP (Test Access Port) JTAG course June 2006 Avraham Pinto.
7-1 Digital Serial Input/Output Two basic approaches  Synchronous shared common clock signal all devices synchronised with the shared clock signal data.
Timers and Interrupts Shivendu Bhushan Summer Camp ‘13.
Configuration. Mirjana Stojanovic Process of loading bitstream of a design into the configuration memory. Bitstream is the transmission.
Sundance High-tech DSP solutions. Giving you the freedom to design Multiprocessor Technology Ltd SYSTEM CONFIGURATION.
Lecture 27: LM3S9B96 Microcontroller – Inter- Integrated Circuit (I 2 C) Interface.
FPGA and ASIC Technology Comparison - 1 © 2009 Xilinx, Inc. All Rights Reserved Basic FPGA Configuration Part 2.
FPGA and ASIC Technology Comparison - 1 © 2009 Xilinx, Inc. All Rights Reserved Basic FPGA Configuration Part 1.
FPGA Configuration Interfaces 1. After completing this presentation, you will able to: 2 Describe the purpose of each of the FPGA configuration pins Explain.
Introduction to FPGA Design Illustrating the FPGA design process using Quartus II design software and the Cyclone II FPGA Starter Board. Physics 536 –
1 EE 587 SoC Design & Test Partha Pande School of EECS Washington State University
Scan and JTAG Principles1 Scan and JTAG Principles ARM Advanced RISC Machines.
Serial Peripheral Interface (SPI) Bus. SPI Bus There is no official specification for the SPI bus. It is necessary to consult the data sheets of the devices.
Serial Peripheral Interface Module MTT M SERIAL PERIPHERAL INTERFACE (SPI)
® ChipScope ILA TM Xilinx and Agilent Technologies.
LSU 10/22/2004Serial I/O1 Programming Unit, Lecture 5.
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.
Chapter 4 TIMER OPERATION
AT94 Training 2001Slide 1 AT94K Configuration Modes Atmel Corporation 2325 Orchard Parkway San Jose, CA Hotline (408) OR.
Normal text - click to edit Configuring of Xilinx Virtex-II Kjetil Ullaland, Ketil Røed, Bjørn Pommeresche, Johan Alme TPC Electronics meeting. CERN
Gauge Operation and Software by Scott A. Ager. Computer Recommendations 750 MHz Pentium III 64 Meg SRAM 40 Gig Hard Drive 1024 x 768 graphics CD Writer.
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.
Testing results of PXL RDO board JTAG daisy chain
Advanced Microprocessor1 I/O Interface Programmable Interval Timer: 8254 Three independent 16-bit programmable counters (timers). Each capable in counting.
 8251A is a USART (Universal Synchronous Asynchronous Receiver Transmitter) for serial data communication.  Programmable peripheral designed for synchronous.
Field Programmable Gate Arrays (FPGAs) An Enabling Technology.
Design of a Novel Bridge to Interface High Speed Image Sensors In Embedded Systems Tareq Hasan Khan ID: ECE, U of S Term Project (EE 800)
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.
ECE 553: TESTING AND TESTABLE DESIGN OF DIGITAL SYSTEMS Boundary Scan.
CHAPTER 5 Configuration, Reconfiguration and Security.
Unit - 2 DMA 8237A-5.
This material exempt per Department of Commerce license exception TSU Xilinx On-Chip Debug.
Part A Final Dor Obstbaum Kami Elbaz Advisor: Moshe Porian August 2012 FPGA S ETTING U SING F LASH.
Introduction to Microprocessors - chapter3 1 Chapter 3 The 8085 Microprocessor Architecture.
Computer Architecture Lecture 4 by Engineer A. Lecturer Aymen Hasan AlAwady 17/11/2013 University of Kufa - Informatics Center for Research and Rehabilitation.
Lecture 4 General-Purpose Input/Output NCHUEE 720A Lab Prof. Jichiang Tsai.
Survey of Reconfigurable Logic Technologies
Communicating. The ATmega16 communicates through one of the following ways: Serial Peripheral Interface (SPI) Universal Synchronous and Asynchronous serial.
Compute Node Tutorial(2) Agenda Introduce to RocketIO How to build a optical link connection Backplane and cross link communications How to.
Status and Plans for Xilinx Development
SYSTEM-LEVEL TEST TECHNIQUES INTRODUCTION In the 1970s, the in-circuit testing (ICT) method appeared. In the 1970s, the in-circuit testing (ICT) method.
— Analog Devices Confidential Information — Applications Issues 1.
The 8085 Microprocessor Architecture
FPGA Configuration Chris Stinson, 1998.
The 8085 Microprocessor Architecture
Programmable Interval Timer
On Behalf of the GBT Project Collaboration
CPE/EE 428/528 VLSI Design II – Intro to Testing (Part 3)
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
The Xilinx Virtex Series FPGA
Serial EEPROM (Atmel 24C-512)
ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN
The 8085 Microprocessor Architecture
Reconfigurable FPGAs (The Xilinx Virtex II Pro / ProX FPGA family)
The Xilinx Virtex Series FPGA
8253 – PROGRAMMABLE INTERVAL TIMER (PIT). What is a Timer? Timer is a specialized type of device that is used to measure timing intervals. Timers can.
"Computer Design" by Sunggu Lee
Presentation transcript:

FPGA Configuration

Introduction What is configuration? – Process for loading data into the FPGA Configuration Data Source Configuration Data Source FPGA Control Logic (optional) Control Logic (optional)

Introduction When does configuration happen? – On power-up – On demand Why do FPGAs need to be configured? – FPGA configuration memory is volatile What do I need to know about FPGA configuration? – What happens during configuration – How to set up various configuration modes and daisy-chains – How to troubleshoot problems

FPGA Configuration Process In order to understand the configuration process, you need to know a little about: – Configuration modes – Configuration pins

Configuration Modes Configuration modes define the specifics of how the FPGA will interact with: – The data source – External control logic (if any) Many configuration modes to choose from – Serial modes (Master and Slave) – SelectMAP mode (Slave Parallel) – Boundary scan mode (Slave) - always available – Other Xilinx FPGA families have more configuration modes

Configuration Modes Configuration pins ( M0, M1, M2) ) Note:

Data is loaded 1 bit per CCLK Master serial – FPGA drives configuration clock (CCLK) – FPGA provides all control logic Slave serial – External control logic required to generate CCLK Microprocessor Xilinx serial download cable Another FPGA Configuration Modes: Serial Modes Serial Data Serial Data FPGA CCLK Data Serial Data Serial Data FPGA Control Logic Control Logic Data CCLK

CCLK is driven by external logic Data is loaded 1 byte per CCLK Configuration Modes: SelectMAP Mode Byte-Wide Data Byte-Wide Data FPGA Control Logic Control Logic Data CCLK Control Signals

External control logic required Control signals and data are presented on the boundary scan pins (TDI, TMS, TCK) Data is loaded 1 bit per TCK Always available (independently on M0,M1,M2 ) Configuration Modes: Boundary Scan Mode Serial Data Serial Data FPGA Control Logic Control Logic Data Control Signals

Configuration Pins Specific pins on the FPGA are used during configuration Some pins act differently depending on configuration mode Example: CCLK is an output in some modes and an input in others Some pins are only used in specific configuration modes Example: CCLK is not used for Boundary Scan mode

Configuration Pin Descriptions Mode Pins (M0, M1, M2) Input pins that select which configuration mode is being used PROGRAM Active low input that initiates configuration CCLK (Configuration Clock) Input or output, depending on configuration mode Frequency up to 10MHz (see Data Book for your device family) DIN Serial input for configuration data

Configuration Pin Descriptions DOUT Output to next device in a daisy-chain Used in daisy-chains only INIT Open-drain bi-directional pin Error and Power Stabilization Flag DONE Open-drain bi-directional pin Indicates completion of configuration process Other pins are used for specific configuration modes (i.e. JTAG Pins)

Configuration Process Four major phases in the process: – Configuration memory clear – Initialization – Load configuration data – Start-up

Initialization Configuration Process Configuration Memory Clear Phase 2 Way to configure (power up - Program) Non-configuration I/O pins are disabled with optional pull-up resistors INIT and DONE pins are driven low FPGA memory is cleared – PROGRAM is checked after each memory pass Proceed to initialization

Configuration Memory Clear Load Configuration Data No Yes INIT High? Release INIT Sample Mode Pins Configuration Process: Initialization Phase INIT pin is released – INIT may be held low externally to delay configuration Mode pins are sampled – Appropriate configuration pins become active Proceed to load configuration data

Initialization Start-Up No Yes CRC Correct? Load Data Frames Pull INIT Low Configuration Process: Load Configuration Data Phase FPGA starts receiving data CRC is checked during the data frames transmission – If incorrect value received, INIT is driven low and rest of data is ignored If the CRC checks pass, proceed to start-up

Load Configuration Data FPGA is Operational Release DONE Activate I/O Pins Release GWE Release GSR Configuration Process: Start-up Phase Transition phase from configuration to normal operation Order of events is user programmable – Accessed through software options Default sequence is: – DONE pin is released – All I/O pins become active – Global write enable released – Global reset released FPGA is operational

Configuration Process: Start-up Phase Default sequence is: – DONE pin is released – All I/O pins become active – Global write enable released – Global reset released Another useful sequence is “Sync to DONE” – Useful for multiple FPGA configuration (Daisy chain) – Configuration option

Master Serial Mode All mode pins tied low FPGA drives CCLK as an output Data stream loaded 1 bit at a time Use when data stream is stored in a serial PROM

Slave Serial Mode All mode pins tied high FPGA receives CCLK as an input Data stream loaded 1 bit at a time Use with the xilinx serial download cable

What Is a Daisy-Chain? Multiple FPGAs connected in series for configuration – Allows configuration of many devices from a single data source – Minimal board traces First device in the chain can be in master serial or slave serial mode All other devices must be in slave serial mode

Daisy-Chain Question How do you think these FPGAs could be connected to form a Daisy-chain?

Daisy-Chain Answer Connect all PROGRAM, CCLK and DONE pins together Connect each DOUT to the DIN of next device Recommend connecting INIT pins, but not required

Creating a Daisy-Chain Connect PROGRAM pins – Required so that all FPGAs will reprogram together Connect CCLK pins – Required so that all FPGAs are synchronized with each other and with the configuration data Connect DONE pins – Required so that all FPGAs start-up together Connect each DOUT to the DIN of next device – Required to allow each FPGA to receive configuration data Connect INIT pins – Recommended to create a single error flag, but not required

How a Daisy-Chain Works First FPGA in the chain is configured first – Keeps DOUT high until its configuration memory is full – Then data is passed to the next device in the chain Start-up sequence occurs after all devices are configured – FPGA devices pause after internally releasing DONE, and continue when DONE externally goes high

Debugging Steps Use the Configuration Problem Solver to find the cause of the problem If this is a Daisy-chain, determine which device is failing before using the Configuration Problem Solver

Configuration Problem Solver What is it? – A web-based tool that guides you through the troubleshooting process – Created and maintained by Xilinx applications engineers who specialize in FPGA configuration Where is it? – Go to – Under Troubleshoot, click on FPGA Configuration How do I use it? – The problem solver presents you with questions – You answer each question – It presents you with the most probable causes and solutions

Configuration Problem Solver: Example

Debugging a Daisy-chain Step 1: Remove all but the first device from the board and try to configure. Debug any problems using the Configuration Problem Solver Step 2: Insert the next device and configure again, debugging any problems Step 3: Repeat step 2 until all devices configure successfully

Review Questions Which phase of the configuration process takes the most time? What is the main difference between the master serial and slave serial configuration modes?

Answers Which phase of the configuration process takes the most time? – The load configuration data phase takes the bulk of the configuration time What is the main difference between the master serial and slave serial configuration modes? – CCLK is an output in master serial, input in slave serial

Summary Field programmable devices are configured on power- up from an external data source The phases of the configuration process are: – Configuration memory clear – Initialization – Load configuration data – Start-up Master serial and slave serial are the simplest configuration modes

Summary Multiple FPGAs can be connected in series to form a configuration Daisy-chain Use the Configuration Problem Solver on the web to debug failed configurations