15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

provide a handful of gates and flip-flops to ones that provide well over a million gates. 1 In addition,<br />

modern devices provide:<br />

• Considerable on-chip memory: this partially overcomes an inability of early devices to effectively<br />

solve problems that required more than a few memory bits<br />

• Large numbers of I/O pins—permitting high data bandwidths between a custom processor and<br />

its environment<br />

• Multiple I/O protocols, such as LVDS, GTL, and LVPECL—enabling high speed serial channels<br />

between the device and other components of a system<br />

Programmability may be provided by a number of technologies:<br />

• Fuses or anti-fuses, in which links are programmed open or closed<br />

• EEPROM, in which a configuration bit is stored in nonvolatile read-only memory, and<br />

• Static RAM cells, which store configuration bits, but, which need to be reloaded every time the<br />

device is powered up<br />

Thus, a designer has a broad palette of devices on which to base a system design. All the usual trade-offs<br />

apply: in particular, the ability to change the circuit by reprogramming it invariably introduces a speed<br />

penalty. A configurable circuit is more complex and has longer propagation delays than a fixed one: this<br />

translates to a slower maximum clock frequency. This trade-off is discussed further when we consider<br />

whether an application is a good candidate for a reconfigurable processor compared to a general-purpose<br />

commodity processor.<br />

A number of terms have been used to describe programmable devices. Simple early devices (ones with<br />

a simple programmable and-or array, coupled with ~10 flip-flops and ~20 I/O pins) were commonly called<br />

“programmable array logic” chips or PALs, but a host of other similar terms have been used for marketing<br />

purposes. The most important group of devices for building processors are now almost universally termed<br />

“field programmable gate arrays” (FPGAs) 2 and this chapter section will focus on them as the key building<br />

blocks of a reconfigurable system. As with general-purpose processors, designing a “universal” FPGA is<br />

essentially an impossible task and a number of different architectural styles have been proposed and<br />

manufactured. The following subsections will describe the key elements of some representative devices.<br />

FPGA Architectures<br />

An FPGA’s capability can usually be described in terms of three elements:<br />

1<br />

•<br />

•<br />

Logic blocks:<br />

These are small blocks of logic, commonly consisting of a small number of simple<br />

and-or arrays, some multiplexers for steering signals, one or two flip-flops. Other features such as<br />

memory bits, lookup tables, special logic for handling the carry chains in adders, etc., may be<br />

present also. Marketing pressures have produced a bewildering array of names for these blocks:<br />

fortunately, most of them are readily understood. Examples are logic array blocks (Altera APEX<br />

20k family), logic elements (Altera FLEX 10KE), macrocells (Altera MAX7000/MAX3000), configurable<br />

logic blocks (Xilinx), and programmable function units (Lucent ORCA).<br />

Routing resources:<br />

A typical FPGA will provide lines of various lengths to interconnect the logic<br />

blocks. Short lines provide low propagation delay paths between neighbouring blocks; longer lines<br />

connect more distant blocks with low delay. A small number of buffered low delay lines, which<br />

can interconnect large groups of logic blocks are usually provided for clocks.<br />

2001 value: apply Moore’s Law for 2002 and forward.<br />

2<br />

Market habits die hard, though: Altera persists in referring to its devices as programmable logic devices (PLDs).<br />

© 2002 by CRC Press LLC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!