An FPGA Wire Database for Run- Time Routers Eric Keller Scott McMillan.

Slides:



Advertisements
Similar presentations
PARTIAL RECONFIGURATION USING FPGAs: ARCHITECTURE
Advertisements

What are FPGA Power Management HDL Coding Techniques Xilinx Training.
Marco D. Santambrogio FPGA: What? Why? Marco D. Santambrogio
Xilinx CPLDs and FPGAs Module F2-1. CPLDs and FPGAs XC9500 CPLD XC4000 FPGA Spartan FPGA Spartan II FPGA Virtex FPGA.
A self-reconfiguring platform Brandon Blodget,Philip James- Roxby, Eric Keller, Scott McMillan, Prasanna Sundararajan.
PARTIAL RECONFIGURATION DESIGN. 2 Partial Reconfiguration Partial Reconfiguration :  Ability to reconfigure a portion of the FPGA while the remainder.
Trusted Design In FPGAs Steve Trimberger Xilinx Research Labs.
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.
Lecture 9: Coarse Grained FPGA Architecture October 6, 2004 ECE 697F Reconfigurable Computing Lecture 9 Coarse Grained FPGA Architecture.
Lecture 2: Field Programmable Gate Arrays I September 5, 2013 ECE 636 Reconfigurable Computing Lecture 2 Field Programmable Gate Arrays I.
Lecture 26: Reconfigurable Computing May 11, 2004 ECE 669 Parallel Computer Architecture Reconfigurable Computing.
1 Student: Khinich Fanny Instructor: Fiksman Evgeny המעבדה למערכות ספרתיות מהירות High Speed Digital Systems Laboratory הטכניון - מכון טכנולוגי לישראל.
ENGIN112 L38: Programmable Logic December 5, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 38 Programmable Logic.
Configurable System-on-Chip: Xilinx EDK
Evolution of implementation technologies
The Xilinx EDK Toolset: Xilinx Platform Studio (XPS) Building a base system platform.
Build-In Self-Test of FPGA Interconnect Delay Faults Laboratory for Reliable Computing (LaRC) Electrical Engineering Department National Tsing Hua University.
February 4, 2002 John Wawrzynek
Murali Vijayaraghavan MIT Computer Science and Artificial Intelligence Laboratory RAMP Retreat, UC Berkeley, January 11, 2007 A Shared.
Lecture 3 1 ECE 412: Microcomputer Laboratory Lecture 3: Introduction to FPGAs.
Configuration. Mirjana Stojanovic Process of loading bitstream of a design into the configuration memory. Bitstream is the transmission.
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
Introduction to FPGA’s FPGA (Field Programmable Gate Array) –ASIC chips provide the highest performance, but can only perform the function they were designed.
StaticRoute: A novel router for the dynamic partial reconfiguration of FPGAs Brahim Al Farisi, Karel Bruneel, Dirk Stroobandt 2/9/2013.
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Dr. Konstantinos Tatas ACOE201 – Computer Architecture I – Laboratory Exercises Background and Introduction.
Juanjo Noguera Xilinx Research Labs Dublin, Ireland Ahmed Al-Wattar Irwin O. Irwin O. Kennedy Alcatel-Lucent Dublin, Ireland.
Benefits of Partial Reconfiguration Reducing the size of the FPGA device required to implement a given function, with consequent reductions in cost and.
Highest Performance Programmable DSP Solution September 17, 2015.
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.
AT94 Training 2001Slide 1 AT94K Configuration Modes Atmel Corporation 2325 Orchard Parkway San Jose, CA Hotline (408) OR.
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.
Building Asynchronous Circuits With JBits Eric Keller FPL 2001.
J. Christiansen, CERN - EP/MIC
HMFlow: Accelerating FPGA Compilation with Hard Macros for Rapid Prototyping Christopher Lavin, Marc Padilla, Jaren Lamprecht, Philip Lundrigan Brent Nelson.
Hardware Support for Trustworthy Systems Ted Huffmire ACACES 2012 Fiuggi, Italy.
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.
Programmable Logic Devices
Field Programmable Gate Arrays (FPGAs) An Enabling Technology.
Basic Sequential Components CT101 – Computing Systems Organization.
® Java Debug Hardware Modules Using JBits by Jonathan Ballagh Eric Keller Peter Athanas Reconfigurable Architectures Workshop 2001.
This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Part A Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
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.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #4 – FPGA.
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU FPGA Design with Xilinx ISE Presenter: Shu-yen Lin Advisor: Prof. An-Yeu Wu 2005/6/6.
Task Graph Scheduling for RTR Paper Review By Gregor Scott.
JRoute: A Run-Time Routing API for FPGAs by Eric Keller JRoute RAW2000 5/1/00 ®
Reconfigurable Embedded Processor Peripherals Xilinx Aerospace and Defense Applications Brendan Bridgford Brandon Blodget.
Section 1  Quickly identify faulty components  Design new, efficient testing methodologies to offset the complexity of FPGA testing as compared to.
FPGA-Based System Design: Chapter 1 Copyright  2004 Prentice Hall PTR Moore’s Law n Gordon Moore: co-founder of Intel. n Predicted that number of transistors.
Self-Adaptive Embedded Technologies for Pervasive Computing Architectures Self-Adaptive Networked Entities Concept, Implementations,
FPGA CAD 10-MAR-2003.
20031 Janusz Starzyk, Yongtao Guo and Zhineng Zhu Ohio University, Athens, OH 45701, U.S.A. April 27 th, 2003.
Specialized Virtual Configurable Arrays Dominique Lavenier - Frederic Raimbault IRISA Rennes, France UBS Vannes, France
PARBIT Tool 1 PARBIT Partial Bitfile Configuration Tool Edson L. Horta Washington University, Applied Research Lab August 15, 2001.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR Topics n FPGA fabric architecture concepts.
A Survey of Fault Tolerant Methodologies for FPGA’s Gökhan Kabukcu
Dynamic Circuit Specialization of a CORDIC Processor Eric Keller Nov. 7, 2000 SPIE Photonics East.
Author: Yun R. Qu, Shijie Zhou, and Viktor K. Prasanna Publisher:
XILINX FPGAs Xilinx lunched first commercial FPGA XC2000 in 1985
SEU Mitigation Techniques for Virtex FPGAs in Space Applications
Ming Liu, Wolfgang Kuehn, Zhonghai Lu, Axel Jantsch
We will be studying the architecture of XC3000.
The Xilinx Virtex Series FPGA
The Xilinx Virtex Series FPGA
ECE 352 Digital System Fundamentals
(Lecture by Hasan Hassan)
Reconfigurable Computing (EN2911X, Fall07)
Presentation transcript:

An FPGA Wire Database for Run- Time Routers Eric Keller Scott McMillan

MAPLD Requirements Low-Memory Overhead – For embedded system limitations Low-Level – Control of individual wires Incremental – Add and remove nets at run-time

MAPLD Background JBits is a Java API providing access to resources in a Xilinx FPGA bitstream – ie LUT, routing PIPs, etc. Support run-time reconfiguration Tools built upon it – JRoute (run-time router), VirtexDS (simulator), BoardScope (debugger), etc.

MAPLD Definitions Pin - a single point of a physical wire – includes tile row, tile col, wire ID Wire - a single point of a physical wire representing any location on device – tile specific but not coordinate specific – class with functionality for connectivity – includes wire ID - an int representing the wire Segment - an entire physical wire – includes multiple Pins

MAPLD Intra-Tile Routing Graph Xilinx FPGAs are organized in tiles – ie CLB, BRAM, IOB Within a tile there is connectivity information about each routing resource ABAA ABAA ABAA

MAPLD Intra-Tile Routing Graph Methods to get source and sink and make connection (in the Wire class) Wire getSink(int i) - gets the ith possible sink Wire getSource(int i) - gets the ith possible source void connectSource(int i, int row, int col) - connects the ith source to this wire. The row and col are needed because the Wire object provides intra-tile connectivity for any tile of the same type.

MAPLD Advantages of Intra-Tile Routing Graph Store connectivity only once for each tile type – not once for every tile on device – XCV1000 has CLB array of 64x96 CLB routing graph duplicated 6,144 times in flat graph Device independent Only loads wires that get accessed – ie in implementation of Smith-Watermann algorithm only 1,136 out of 2,424 wires to be instantiated

MAPLD Inter-Tile Routing Graph Method to get a Segment – getSegment(int row, int col) – Segment is a physical wire that spans multiple tiles – Dependent on location

MAPLD Inter-Tile Routing Graph Only need to have Segments in memory that are being used Can cache segments to improve performance Storage is small since software builds up segments – instead of having device specific flat routing graphs.

MAPLD Example Code // Prints every pin on segment and all sinks of that pin Wire wire = com.xilinx.JBits.Virtex.Bits.Wires.Center.E0.getWire(); Segment seg = wire.getSegment(row, col); for (i=0;i<seg.numPins();i++) { Pin p = get(i); System.out.println(Pin: + p); w = lookup.getWire(p); // gets the tile specific version of the wire for (int j=0; j<w.numSinks(); j++) { sink = w.getSink(j); System.out.println( sink: + sink); }

MAPLD Negatives Extra Processing Cycles

MAPLD Defect Testing Problem: Isolate defective wires on FPGA Requires ability to specify individual wires – Route to from an output to a wire then from that wire to an input – Route using a fully specified net (ie every wire in the net is specified by the user) – The Wire database supports both

MAPLD Defect Tolerance Problem: After isolating fault, need to be able to route around it Each wire has a unique ID. Associate a tile coordinate with the wire and a run-time router can keep a list of wires to avoid JRoute has a method accessable to user to mark an individual wire

MAPLD Reconfigurable CAM CAM stands for Content Addressable Memory – give it the content and it will give you the address – used in routers Use JRoute to modify the priority encoder – Incrementally add/remove nets match unit priority encoder Order in B determines priority – reroute nets from the match unit to the priority encoder to change priority

MAPLD Debugging Observe internal signals by instrumenting design with extra logic – Internal Logic Analyzer With run-time routing a user can modify which nets are being observed

MAPLD RTP Cores Run-Time Parameterizable Cores – modify design at run time using high level cores Need to be able to connect/unconnect cores Run-time routing performs the dynamic modification of the connectivity

MAPLD Partial Reconfiguration Problem: Need the ability to swap in/out modules Possible Solutions – Static router avoids routing through area, and keeps all routes for the module in that area – Use a dynamic router to route module, which avoids any routes that went through the area – Static router doesnt avoid routing through area. Static router of module will avoid the existing routes Needs low level control to tell router wires to avoid

MAPLD Future Work Detailed analysis of memory usage Port to other programming language – C is more memory efficient than Java Analyze benefit of applying the wire database to static routers – Do current routing algorithms not map well to our database?

MAPLD Conclusions Run-Time routing enables many applications – low-level control – incrementally add/remove nets – efficient memory usage for embedded applications A wire database written in Java uses an object oriented approach to the routing graph – Segments are built at run-time