, a reconfigurable system
is a computer that can, by executing code, change the function of the digital circuits of which it is composed. This is unlike a conventional microprocessor
that, although versatile, can execute only the instructions that were built into it by its manufacturer.
The advent of reconfigurable systems has begun to blur the traditional boundary between hardware and software. Usually the logical design of a computer (its hardware) is fixed by hardware engineers who then hand the machine to software engineers. Hardware engineers use hardware description languages or HDLs to configure programmable logic devices or PLDs, which they then assemble with other integrated circuits, such as microprocessors, to build a computer.
Software engineers, on the other hand, are used to working with programming languages such as C and C++, which specify instructions to be executed on fixed hardware.
In a reconfigurable system, part of the system is defined using a system-level description language. This combines the necessary features of both software and hardware languages, allowing a software engineer to write code that could either run on a microprocessor or be converted into a logic description for a PLD.
Examples of system-level description languages are:
- Handel-C (developed by Celoxica, previously Embedded Solutions Ltd., a product of the University of Oxford in 1996)
- SystemC (developed by the Open SystemC Initiative, or OSCI; version 2.0 released in 2001)
- A|RT (abbreviation of Algorithm to Register Transfer; developed by Frontier Design, a 1997 spin-off from Mentor Graphics)
Currently, reconfigurable systems are in an early stage of development, and the development tools produce far less efficient logic than that designed by an experienced hardware engineer. Furthermore, the only application in which this technology gives better results than traditional methods is presently digital signal processing
. However, it is only a matter of time until these inequalities are reversed, just as high-level language compilers have almost eliminated the need to write assembly language
in all but the most speed-critical applications.
"In the Spring of 1997 we (Dr. André DeHon and Prof. John Wawrzynek) taught a reconfigurable computing course at UC Berkeley. These pages archive materials from that offering": [
(highly recommended reading)