Summary
As the FPGA density increases, so does the potential for
reconfigurable computing machines. Unfortunately, applications
which take advantage of the higher densities require
significant effort and involve prohibitively long design cycles
when conventional methods are used. To combat this problem, a
design environment called RCADE has been proposed to manage
this additional complexity. RCADE gives the end user a
mechanism for describing and managing algorithms at a higher
level of abstraction than the other extant methods such as
writing VHDL or using schematic capture.
The core of RCADE's design tool is a general Algorithm
Description Format (ADF) which represents an algorithm as an
attributed graph, and a library of components, which are
tailored to a particular FPGA device. RCADE provides a set of
tools which operate on the ADF representation to provide a
number of functions to aid in the creation of applications for
configurable computing platforms. These tools include front end
tools for specifying a design, a suite of analysis tools to aid
the user in refining and constraining the design, and a set of
back end tools which select components from the library based
on the design constraints and place and route these components
on the configurable computing platform.
Configurable Computing Machines(CCMs) based on FPGA technology
show tremendous potential for improving the performance of
aerospace applications. But, the tools to develop applications
for CCMs are not maturing as quickly as the technology. This
problem manifests itself in two areas : initial application
development is complex and time consuming, and migration from
one generation to the next requires significant redesign
effort. These problems leave many unwilling to migrate their
applications from a software implementation to hardware. The
RCADE has been proposed to solve this problem. RCADE will offer
higher performance than software solutions, will allow
non-experts in FPGA design to develop applications, will
simplify the design and maintenance process for those who are
experts, and will ease the process of migration from one CCM
platform to the next.
One of the central themes of RCADE is that the user selects
operations from a library without initially specifying an
implementation. Once the design is completely specified, these
abstract operations are then bound to components. Components in
RCADE are efficiently implemented blocks of logic (such as
adders, multipliers, etc.) that conform to a
well defined interface. This component based approach provides
a number of advantages. The component interface is designed in
such a way that components can interface with each other
without the need for any controlling state machine. This lack
of central control reduces the complexity of timing issues and
eases debugging. Separating the selection of the operation from
the selection of the component also serves to ease the problem
of migration from one FPGA device or CCM platform to the next.
The same design, specified by the user as a set of abstract,
can be re-used by simply running the component selection phase
again with a library of components targeted at the new device.
Once the component library is ported to a new platform, any
RCADE design can be ported quickly and easily. Another
advantage of separating the selection of operations from the
selection of components is tighter integration of the algorithm
design and implementation.
RCADE provides many other tools apart from the front end tools
ranging from the Precision Analysis tool that operates on
designs very early in the specification cycle to the almost
transparent pipelining balancing tool which operates on a
design after the component selection phase. These tools are
intended to be focused and capture some element of a hardware
designer's expertise, so that it may be used by others. It also
provides a Placement tool, which is responsible for the
placement of components within a chip. The placement tool is
very important because it has been shown that the use of
relationally placed components can greatly reduce run times and
improve performance.
The RCADE approach to design shortens the path between
algorithm design and design of the implementation. Using
conventional hardware design techniques, the design of the
algorithm and the algorithm implementation are completely
separate tasks and the details of implementation can take
months. In RCADE, the user can interact with both the algorithm
design and implementation, evolving each part and using one to
guide another. RCADE combined with the component based design
approach offers a powerful, flexible new tool for the design of
reconfigurable computing applications. It helps the user to
specify all the salient properties of the design, and then uses
those properties to build a better design. RCADE, thus attempts
to bring the interactive model with a higher level of
abstraction to the hardware design world.
Projects
- Arbitrary Mappings
- Accelerating BLAST
- Polymorphous Interface
People
- Ron Sass
- Srinivas R Beeravolu
- Ranjesh G Jaganathan
- Matt Simpson
- Brian Greskamp
- Shyamnath Harinath
- Krishna M Muriki
Papers
- Implementation and Analysis of Numerical Components for Reconfigurable Computing.
Aerospace 1999.
Walter B. Ligon III, Greg Monn, Dan Stanzione, Fred Stivers, Keith D. Underwood
- Creating Applications in RCADE. Aerospace 1999.
Kim Hazelwood, Walter B. Ligon III, Greg Monn, Natasha Pothen, Ron Sass, Dan Stanzione, Keith D. Underwood