USC
About this Article
Written by: Christopher Zeleznik
Written on: August 2nd, 2002
Tags: computer science
Thumbnail by: Altera Corporation
About the Author
In Fall 2003, Mr. Zeleznik was a junior-level Electrical Engineering student emphasizing in computers (EEC) at the University of Southern California. He grew up in Fullerton, CA, where he attended a community college before transferring to USC.
Also in this Issue
A Look At Surveillance CamerasWritten by: Keith Nogueira
Improving the BicycleWritten by: Matthew Mutchler
Lie Detection: The Science and Development of the PolygraphWritten by: Katherine To
The Quest for the Perfect Racket: Advances in Tennis Racket DesignWritten by: Takayuki Oidemizu
The Science of Time TravelWritten by: Mark Villanueva
The Search for a Blood SubstituteWritten by: Suzanne Schimmeyer
Total Hip ReplacementWritten by: Andrew Still
UPSET: Triggering Natural Cell Death in CancerWritten by: Matthew Behrend
Stay Connected

Volume V Issue I > Reconfigurable Computing: Virtual "On-the-Fly" Hardware Swapping
A new hardware paradigm technology encompassing reprogrammable circuitry commands the versatility of general design processors and the speed of application-specific circuits. One manifestation of this design stratagem is the field programmable gate array, a collection of logic functions whose software controlled interconnections can be altered at will to optimize select processing requirements. This technology can be utilized for rapid design layout prototyping and form the basis of computer architectures.

Introduction

In recent decades there has been an ongoing race to improve the speed of electronics and computers. Novel software applications have increased in complexity, enabling computers to streamline the lives of many. Consumer electronics like personal digital assistants (PDAs), laptops, and next-generation cell phones provide a level of convenience that many have become dependent upon. Increased demand for advanced functionality requires increased hardware performance; computer manufacturers have implemented a variety of new technologies to meet these requirements. Two methods that have been employed previously are the redesign of existent processor architectures and the use of custom designed auxiliary processors called application-specific​ integrated circuits (ASICs) [1]. These solutions cannot be extended indefinitely; other methods are needed. One promising alternative involves rethinking the conventional process by implementing reconfigurable computer chips, also referred to as field programmable gate arrays (FPGAs).

Computing Fundamentals Crash Course

The complex processes performed by all computers can be broken down into simple expressions involving a mathematics called Boolean algebra. From viewing web pages to locating an automobile with a global positioning system, all computing machinery ultimately relies on the logical manipulation of two states: true and false. More complex functions like addition and multiplication can be achieved by the systematic manipulation of these true and false conditions. Combinations of these basic operations allow for the realization of more sophisticated functions.
The basic computer is an interconnection of many specific purpose systems. For example, one system might compute the sum of two numbers, while another might store this data for later use. Integrated chip designers choose the systems and architecture based on the needed functionality of the circuit. For instance, the processor in a basic calculator does not require a robust video display system or extensive software. Many computing devices can integrate a variety of functionality on a single chip, called a microprocessor (also referred to as the central processing unit, or CPU). Personal computers require a variety of systems that cannot be contained on a single microprocessor.

Processor Design Methodologies

In general, there are two ways to approach the design of a computing device, the choice of which is dependent upon the breadth of requisite functions. If a device has a limited number of functions to perform, it will be specifically designed to perform those operations in the most efficient way. Conversely, a device that needs to perform a larger variety of functions that may change is more general purpose in design. Examples of specific designs are digital clocks, automotive engine management computers, and cell phones. General designs are devices like personal computers.

General Design Example

The complexity of personal computer design can be explained by its functional requirements. When one purchases a computer, one expects to run applications such as a favorite video game or accounting software. Computer sales would hardly be what they are today if all the applications that the computer could run were hardwired and unchangeable. Furthermore, a personal computer is designed to accept a variety of peripheral devices such as DVD players, printers, and displays from different manufacturers. Because personal computers have the capacity to perform a wide range of functions, their processors fall under the category of a general-design processor.