Generators, parameterized code which produce a digital design, have long been a staple of the VLSI community. In recent years, several Field Programmable Gate Array (FPGA) design tools have adopted generators as a convenient way to specify reusable designs and design components. We are building a generator framework in Java as a means of programming reconfigurable devices. Our framework allows for easy integration of automatic services, including partial evaluation and simulation. The framework can be easily extended to include other services.
The framework is used to develop libraries for different FPGA architectures and applications which reference the libraries. Those building a design create a series of Java objects which build the design out of the desired library components. Since the libraries themselves contain an array independent API, designs should be easily portable between arrays, by simply referencing different libraries.
Using this framework, we have built several small sample applications including portions of the RAW benchmarks and a specialized systolic cell for DNA pattern matching. This system produces designs which are competitive with implementations based on schematic capture and HDL programming.
For more information about the status of the
``Object Oriented Circuit-Generators in Java.''
Michael Chu, Nicholas Weaver, Kolja Sulimma, André DeHon, and John Wawrzynek.
Published in Proceedings of the International Symposium on Field-Programmable Gate Arrays for Custom Computing Machines (FCCM '98, April 15-17, 1998).