Building Asynchronous Circuits With JBits Eric Keller FPL 2001.

Slides:



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

L23 – Adder Architectures. Adders  Carry Lookahead adder  Carry select adder (staged)  Carry Multiplexed Adder  Ref: text Unit 15 9/2/2012 – ECE 3561.
Give qualifications of instructors: DAP
Modular Combinational Logic
Registers and Counters
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.
Floating-Point FPGA (FPFPGA) Architecture and Modeling (A paper review) Jason Luu ECE University of Toronto Oct 27, 2009.
Graduate Computer Architecture I Lecture 15: Intro to Reconfigurable Devices.
Moving NN Triggers to Level-1 at LHC Rates Triggering Problem in HEP Adopted neural solutions Specifications for Level 1 Triggering Hardware Implementation.
ENGIN112 L38: Programmable Logic December 5, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 38 Programmable Logic.
IMPLEMENTATION OF µ - PROCESSOR DATA PATH
Evolution of implementation technologies
An FPGA Based Adaptive Viterbi Decoder Sriram Swaminathan Russell Tessier Department of ECE University of Massachusetts Amherst.
February 4, 2002 John Wawrzynek
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.
Basic Adders and Counters Implementation of Adders in FPGAs ECE 645: Lecture 3.
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.
Dr. Konstantinos Tatas ACOE201 – Computer Architecture I – Laboratory Exercises Background and Introduction.
Sub- Nyquist Sampling System Hardware Implementation System Architecture Group – Shai & Yaron Data Transfer, System Integration and Debug Environment Part.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
Philip Brisk 2 Paolo Ienne 2 Hadi Parandeh-Afshar 1,2 1: University of Tehran, ECE Department 2: EPFL, School of Computer and Communication Sciences Efficient.
A comprehensive method for the evaluation of the sensitivity to SEUs of FPGA-based applications A comprehensive method for the evaluation of the sensitivity.
Ch.9 CPLD/FPGA Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
Xilinx Development Software Design Flow on Foundation M1.5
J. Christiansen, CERN - EP/MIC
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.
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.
THE TESTING APPROACH FOR FPGA LOGIC CELLS E. Bareiša, V. Jusas, K. Motiejūnas, R. Šeinauskas Kaunas University of Technology LITHUANIA EWDTW'04.
Reconfigurable Computing - Type conversions and the standard libraries John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
Basic Sequential Components CT101 – Computing Systems Organization.
Nov 10, 2008ECE 561 Lecture 151 Adders. Nov 10, 2008ECE 561 Lecture 152 Adders Basic Ripple Adders Faster Adders Sequential Adders.
Basic Overview of VHDL Matthew Murach Slides Available at:
® 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.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
JRoute: A Run-Time Routing API for FPGAs by Eric Keller JRoute RAW2000 5/1/00 ®
Tools - LogiBLOX - Chapter 5 slide 1 FPGA Tools Course The LogiBLOX GUI and the Core Generator LogiBLOX L BX.
1 Carry Lookahead Logic Carry Generate Gi = Ai Bi must generate carry when A = B = 1 Carry Propagate Pi = Ai xor Bi carry in will equal carry out here.
ADC – FIR Filter – DAC KEVIN COOLEY. Overview  Components  Schematic  Hardware Design Considerations  Digital Filters/FPGA Design Tools  Questions.
Greg Alkire/Brian Smith 197 MAPLD An Ultra Low Power Reconfigurable Task Processor for Space Brian Smith, Greg Alkire – PicoDyne Inc. Wes Powell.
Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May – 9 June 2007 Javier.
PARBIT Tool 1 PARBIT Partial Bitfile Configuration Tool Edson L. Horta Washington University, Applied Research Lab August 15, 2001.
EEL 5722 FPGA Design Fall 2003 Digit-Serial DSP Functions Part I.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR Topics n FPGA fabric architecture concepts.
1 The ALU l ALU includes combinational logic. –Combinational logic  a change in inputs directly causes a change in output, after a characteristic delay.
LOGIC CIRCUITLOGIC CIRCUIT. Goal To understand how digital a computer can work, at the lowest level. To understand what is possible and the limitations.
B0110 Fabric and Trust ENGR xD52 Eric VanWyk Fall 2013.
Dynamic Circuit Specialization of a CORDIC Processor Eric Keller Nov. 7, 2000 SPIE Photonics East.
Introduction to the FPGA and Labs
Combinational Circuits
Digital Electronics Multiplexer
Digital Electronics Multiplexer
Summary Half-Adder Basic rules of binary addition are performed by a half adder, which has two binary inputs (A and B) and two binary outputs (Carry out.
Combinatorial Logic Design Practices
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
CSE Winter 2001 – Arithmetic Unit - 1
Number Systems and Circuits for Addition
VHDL Introduction.
XOR, XNOR, and Binary Adders
The Verilog Hardware Description Language
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

Building Asynchronous Circuits With JBits Eric Keller FPL 2001

JBits Background  A Java API to configure Xilinx FPGA bitstreams  Provides complete design control —Routing —CLB configuration  Supports run-time reconfiguration  Allows for tools to built upon it  Example low-level configuration call: jbits.set(row, col, S1F1.S1F1, S1F1.SINGLE_EAST0)

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

Asynchronous Advantages  Modularity  Low power  Average-case performance  No clock distribution  Adapt to environmental conditions

Why use JBits?  Complete control over circuit  Have some fixed routes and others auto-routed —Can pre-route modules to meet any delay constraint  Use templates to add delay to a net  Clean HDL for dual-rail cores  Combine asynchronous design and RTR

Null Convention Logic  Developed by Theseus, Inc.  Four-phase signaling, dual-rail communication  Delay Insensitive (almost) —Occurs in very few situations —Easily analyzable  M-of-N gates —Output goes high when M of the N inputs go high —Output goes low when all N inputs go low —Symbolized by M

NCL Full Adder Stage A_0 A_1 B_0 B_1 Cin_0 Cin_1 Cout_0 Cout_1 Sum_1 Sum_0  2 of 3 gate takes up 1 Virtex LUT  3 of 5 gate takes up 2 Virtex LUTs A single dual-rail net * Red lines represent high state A_0 A_1 val red n/a red black 0 black red 1 black null Values of dual-rail net

NCL Register from_next to_prev NCL CIRCUIT A_0 A_1 B_0 B_1  Implement 4-phase signaling —Receive NULL  Request DATA  Rec. DATA  Req. NULL Low requests NULL High requests DATA

RTPCore Overview Bus inputA = new Bus(“inputA”, this, DATA_WIDTH); Bus inputB = new Bus(“inputB”, this, DATA_WIDTH); Bus output = new Bus(“output”, this, DATA_WIDTH); Net cin = new Net(“carryIn”, this); Net cout = new Net(“carryOut”, this); Adder adder = new Adder(“adder”, inputA, inputB, cin, output, cout); addChild(adder, Place.LOWER_LEFT); adder.implement(); + inputA inputB output 4 4 cin cout 4

RTPCore Modifications  No support for Dual-Rail Signals —Added DualRailBus and DualRailNet. —Cores to convert between dual and single rail. —JRoute support for dual rail signals DualRailBus inputA = new DualRailBus(“inputA”, this, DATA_WIDTH); DualRailBus inputB = new DualRailBus(“inputB”, this, DATA_WIDTH); DualRailBus output = new DualRailBus(“output”, this, DATA_WIDTH); DualRailNet cin = new DualRailNet(“carryIn”, this); DualRailNet cout = new DualRailNet(“carryOut”, this); NCLAdd adder = new NCLAdd(“add”, inputA, inputB, cin, output, cout); addChild(adder, Place.LOWER_LEFT); adder.implement();

Dual-Rail Full Adder + DualRailBus inputA DualRailBus inputB DualRailBus output 4 4 DualRailNet cout 4 4 bit DualRailBus inputA[0] inputA[1] inputA[3] inputA[2] DualRailNet Net DualRailNet cin

Delay Analysis - NCL Full Adder  Average case performance  Depends on carry propagation 0+0 no carry  lowest delay 15+1 carry at each stage  longest delay + inputA inputB output 4 4 4

Future Work  Defect Tolerance —Work around a defect on an FPGA —No timing analysis because of delay insensitive —Can place modules anywhere and they work  Other methodologies —Add support in JRoute for isochronic forks –symmetric and asymmetric  Examine FPGAs targeted to asynchronous design