JBits: Java based interface for reconfigurable computing

 Steve Guccione, Delon Levi and Prasanna Sundararajan

PUBLISHED: Proceedings of 2nd Annual Military and Aerospace Applications of Programmable Devices and Technologies Conference, 1999.

The JBits project was one of the earliest projects that brought FPGA hardware design into the realm of software design, and introduced the concept of just-in-time compilation to FPGA bitstream construction.  The JBits team was motivated by Xilinx’s short-lived XC6200 series FPGAs.  The XC6200 family of devices featured an openly defined configuration mapping, which allowed researchers to experiment with new ways of creating and interacting with circuitry.  While the XC6200 had only limited commercial impact, academic researchers flourished by creating all sorts of novel tools and applications with the device.  The lead author and JBits architect, Steven Guccione, sought to bridge the salient programming features of the XC6200 to the mainstream FPGAs offered by Xilinx.   With JBits, researchers once again had a way to interact more closely with the hardware, and to experiment with novel bitstream assembly methods.  This paper was the first significant publication that introduced JBits to the configurable computing community.

At the time, one attractive aspect of JBits was the simplicity of its usage. All one needed was a Java run-time environment and the JBits classes. With only this, a designer could build FPGA bit files on any machine that supported Java, including (at the time) a simple hand-held PDA.

For a period, there was quite a bit of community engagement.  JBits was used to demonstrate many new concepts that were often difficult or impossible to attain with the usual vender design compilation flow.  Some of these concepts include:

  • Showing the efficiencies that could be attained by just-in-time circuit generation (AES encryption, gene matching). Circuit size was reduced and speed increased when JBits optimized the circuit for the specific problem instance.
  • Hardware/software interaction in evolvable hardware. An example of a nearly closed loop environment for new generation of circuit formation and evaluation all done within JBits.
  • Application-specific placement and routing tools. Demonstrations where design compilation, custom placement and routing were performed all within Java.
  • Untethered / embedded self-configuring systems. Proof-of-concept system where the FPGA/CPU could autonomously make changes to itself.

Several subsequent FPGA development environments emerged with similar objectives, possibly motivated by the core JBits principles (for example, JHDL, TORC, and RapidWright).  The authors produced several subsequent publications that applied JBits to various problem domains. 

The figure below, taken from their publication shows the overall flow for a JBits executable.

Endorsement by Peter Athanas, emeritus professor, Virginia Tech.