JRoute: A Run-Time Routing API for FPGAs by Eric Keller JRoute RAW2000 5/1/00 ®

Slides:



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

What are FPGA Power Management HDL Coding Techniques Xilinx Training.
FPGA Configuration. Introduction What is configuration? – Process for loading data into the FPGA Configuration Data Source Configuration Data Source 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.
Spartan II Features  Plentiful logic and memory resources –15K to 200K system gates (up to 5,292 logic cells) –Up to 57 Kb block RAM storage  Flexible.
1 Performed By: Khaskin Luba Einhorn Raziel Einhorn Raziel Instructor: Rivkin Ina Spring 2004 Spring 2004 Virtex II-Pro Dynamical Test Application Part.
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
Evolution of implementation technologies
Programmable logic and FPGA
Configuration. Mirjana Stojanovic Process of loading bitstream of a design into the configuration memory. Bitstream is the transmission.
GanesanP91 Synthesis for Partially Reconfigurable Computing Systems Satish Ganesan, Abhijit Ghosh, Ranga Vemuri Digital Design Environments Laboratory.
Foundation and XACTstepTM Software
v8.2 System Generator Audio Quick Start
Introduction to FPGA’s FPGA (Field Programmable Gate Array) –ASIC chips provide the highest performance, but can only perform the function they were designed.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Field Programmable Gate Array (FPGA) Layout An FPGA consists of a large array of Configurable Logic Blocks (CLBs) - typically 1,000 to 8,000 CLBs per chip.
® ChipScope ILA TM Xilinx and Agilent Technologies.
Premduth Vidyanandan & Adrian Hernandez
Benefits of Partial Reconfiguration Reducing the size of the FPGA device required to implement a given function, with consequent reductions in cost and.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
A comprehensive method for the evaluation of the sensitivity to SEUs of FPGA-based applications A comprehensive method for the evaluation of the sensitivity.
Building Asynchronous Circuits With JBits Eric Keller FPL 2001.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
High-Level Interconnect Architectures for FPGAs Nick Barrow-Williams.
The Xilinx Spartan 3 FPGA EGRE 631 2/2/09. Basic types of FPGA’s One time programmable Reprogrammable (non-volatile) –Retains program when powered down.
Hardware Support for Trustworthy Systems Ted Huffmire ACACES 2012 Fiuggi, Italy.
GRECO - CIn - UFPE1 A Reconfigurable Architecture for Multi-context Application Remy Eskinazi Sant´Anna Federal University of Pernambuco – UFPE GRECO.
Tools - Implementation Options - Chapter15 slide 1 FPGA Tools Course Implementation Options.
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.
PROCStar III Performance Charactarization Instructor : Ina Rivkin Performed by: Idan Steinberg Evgeni Riaboy Semestrial Project Winter 2010.
FPGA_Editor Probes. . Probe Overview 2 Adding a Probe : GUI Probes tie an internal signal to an output pin To Launch the GUI: Click the “probes” button.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
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.
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.
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.
ECE 545 Project 2 Specification. Project 2 (15 points) – due Tuesday, December 19, noon Application: cryptography OR digital signal processing optimized.
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
A Physical Resource Management Approach to Minimizing FPGA Partial Reconfiguration Overhead Heng Tan and Ronald F. DeMara University of Central Florida.
Field Programmable Port Extender (FPX) 1 Modular Design Techniques for the FPX.
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
Introduction to FPGA Tools
Generators 1 Object Oriented Generators in Java Michael Chu & Nicholas Weaver.
Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May – 9 June 2007 Javier.
© imec 2003 Designing an Operating System for a Heterogeneous Reconfigurable SoC Vincent Nollet, P. Coene, D. Verkest, S. Vernalde, R. Lauwereins IMEC,
Teaching Digital Logic courses with Altera Technology
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.
Corflow Online Tutorial Eric Chung
Dynamic Circuit Specialization of a CORDIC Processor Eric Keller Nov. 7, 2000 SPIE Photonics East.
Introduction to the FPGA and Labs
Topics SRAM-based FPGA fabrics: Xilinx. Altera..
Introduction to Programmable Logic
Xilinx ChipScope Pro Overview
We will be studying the architecture of XC3000.
The Xilinx Virtex Series FPGA
XC4000E Series Xilinx XC4000 Series Architecture 8/98
Embedded systems, Lab 1: notes
ChipScope Pro Software
Powerful High Density Solutions
The Xilinx Virtex Series FPGA
ChipScope Pro Software
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
FPGA’s 9/22/08.
Reconfigurable Computing (EN2911X, Fall07)
Presentation transcript:

JRoute: A Run-Time Routing API for FPGAs by Eric Keller JRoute RAW2000 5/1/00 ®

®  JRoute is a Java API for performing routing of FPGAs at run-time  Uses JBits calls to set the routing  Supports Xilinx Virtex™ devices What is JRoute?

®  A Java API to configure Xilinx FPGA bitstream  Provides complete design control —Routing —CLB Configuration  Supports Run-Time Reconfiguration  jBits.set(row, col, S1F1.S1F1, S1F1.SINGLE_EAST0) Review of JBits

® The JBits Environment RTP Core Library JRoute API Device Simulator User Code BoardScope Debugger XHWIF JBits API TCP/IP

®  JBits only provides manual routing  JRoute facilitates the use of run-time relocatable and parameterizable cores  JRoute provides automated routing support Why do we need JRoute?

® Virtex Routing Overview To adjacent GRM To adjacent GRM To adjacent GRM Direct connection to adjacent CLB CLB To adjacent GRM Direct connection to adjacent CLB GRM

®  Various Levels of Control  Support for Cores  Avoids Contention  Unrouter  Debugging Features  Plug-in Different Algorithms JRoute Features

®  Individual Connection  Specify Path (defined as list of resources)  Specify Template (defined as list of directions)  Source to Sink  Source to Multiple Sinks  Multiple Sources to an equal number of Sinks Various Levels of Control

® Greedy Algorithms  Target Designs - structured and regular  Global followed by Detailed inefficient  RTR - Global undefined

® Single Source - Single Sink Point reachable with hexes

®  Hierarchical designs  Define a Port —no need to know which pins to connect to —no need to connect to each input  Same calls to router with Ports (as with Pins)  Routes when it can Support for Cores

® Port Example (W+X) * (Y+ Z) A B clk reset out AdderCore n n n A B clk reset out MultiplyCore n n n from another AdderCore /* get the outputs from the adder */ Port[] source = adder.getPortOut( ); /* get the B input ports from the multiplier */ Port[] sink = multiplier.getPortB( ); /* connect the output from the adder to the input B of the multiplier */ jroute.route(source, sink);

® Hierarchical Cores A B O1CO2 Core 1Core 2 Logic X Y Z Core 3

®  Virtex devices have bi-directional lines  Uses an interface ResourceFactory to keep track of resource usage —Has calls such as addConnection() and removeConnection()  Doesn’t allow user to use a resource already in use  Checks if a wire is on before tries to use it Avoids Contention

®  Releases resources that are no longer needed  Forward or reverse direction  In forward, specify source  In reverse, specify sink  Uses ResourceFactory  Ports or Pins Unrouter

® Source Sink jroute.reverseUnroute (sink); Reverse Unroute

® Source Sink jroute.reverseUnroute (sink); Reverse Unroute

® Source Sink jroute.reverseUnroute (sink); Reverse Unroute

® Source Sink jroute.reverseUnroute (sink); Reverse Unroute

®  Methods trace() and reverseTrace()  Specify a source pin and trace() returns the entire netlist to all sinks  Specify a sink pin and reverseTrace returns the part of the netlist leading to the sink  Uses ResourceFactory to determine connections  Can get info about any wire (ie on/off, drives, driven by). Debugging Features

®  Interface for each routing call —fanout, point to point, etc.  Implement the interface  call setInterface method —jroute.setFanoutRouterInterface(myfan);  All code that calls jroute.route(src,sink[]) now uses myfan instead of the default Plug-in Different Algorithms

®  Number of Routes: 3975 —JBits calls: 351 ms => 11.3 k r/s —JRoute Low-Level: 1051 ms => 3.8 k r/s —JRoute Path: 951 ms => 4.2 k r/s —JRoute Template: 1071 ms => 3.7 k r/s —JRoute Point to Point: 1643 ms => 2.4 k r/s —JRoute Fanout: 2754 ms => 1.5 k r/s  Pentium III 450 MHz Results: Example Execution Time

®  Only knows about connections made through router  No support for IOBs or Block Ram (which JBits doesn’t support yet) Future Work

® Questions?

® BoardScope Main Display

® BoardScope RTP Core Display