Main Page | See live article | Alphabetical index

Reconfigurable system

In electronics and computing, 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:

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.

Further Reading

"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": [[1] (highly recommended reading)