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.

FIGURE 12.5<br />

dimensional array on the chip. Current FPGAs contain a few hundred to over a hundred thousand logic<br />

elements. To perform complex operations, logic elements can be automatically connected to other logic<br />

elements on the chip using a programmable interconnection network. The programmable interconnection<br />

network is also contained in the FPGA.<br />

The interconnection network used to connect the logic elements contains row and column chip-wide<br />

interconnects. In addition, the interconnection network usually contains shorter and faster programmable<br />

interconnects limited only to neighboring logic elements. The internal interconnect delays are an important<br />

performance factor since they are of the same order of magnitude as the logic element delay times.<br />

Using a shorter interconnect path means less delay time. So that high-speed adders can be produced,<br />

there is often a dedicated fast carry logic connection to neighboring logic elements.<br />

Clock signals in large FPGAs must use special low-skew global clock buffer lines. These are dedicated<br />

pins connected to special internal high-speed busses. These special busses are used to distribute the clock<br />

signal to all flip-flops in the device at the same time to minimize clock skew. If the global clock buffer<br />

lines are not used, the clock is routed through the chip just like a normal signal. The clock signals could<br />

arrive at flip-flops at widely different times since interconnect delays will vary significantly in different<br />

parts of the chip. This delay time or clock skew may violate flip-flop setup and hold times. This causes<br />

metastability or unpredictable operation in flip-flops. Most large designs with clock signals that are used<br />

throughout the FPGA will require the use of the global clock buffers. Some CAD tools will automatically<br />

detect and assign clocks to the global clock buffers and others require designers to identify clock signals<br />

and assign them to one of the global clock buffers.<br />

General purpose external I/O pins on CPLDs and FPGAs contain programmable bidirectional tristate<br />

drivers and flip-flops. Pins can be programmed for input, output, or bidirectional operation. The I/O<br />

signal can be loaded into the I/O pin’s flip-flop or directly connected to the interconnection network<br />

and routed from there to internal logic elements. Multiple power and ground pins are also required on<br />

large CPLDs and FPGAs. FPGA internal core voltages range from 1.5 to 5 V. FPGAs using advanced<br />

package types such as pin grid array (PGA) and ball grid array (BGA) are available with several hundred<br />

pins.<br />

When a design approaches the device size limits, it is possible to run out of either logic, interconnect,<br />

or pin resources when using a CPLD or FPGA. CPLD and FPGA families include multiple devices in a<br />

wide range of gates with varying numbers of pins available on different package types. To minimize cost,<br />

part of the design problem is selecting a device with just enough logic, interconnect, and pins. Another<br />

important device selection factor is the speed or clock rate needed for a particular design.<br />

© 2002 by CRC Press LLC<br />

Inputs from<br />

Interconnect<br />

Network<br />

DATA1<br />

DATA2<br />

DATA3<br />

DATA4<br />

CLR1<br />

CLR2<br />

Chip-Wide<br />

Reset<br />

CLK1<br />

CLK2<br />

Look-Up<br />

Table<br />

(LUT)<br />

Clear/Preset<br />

Logic<br />

Clock Select<br />

Typical FPGA logic element.<br />

Carry<br />

In<br />

Carry<br />

Chain<br />

Carry<br />

Out<br />

Register Bypass<br />

PRN<br />

D Q<br />

ENA<br />

CLRN<br />

Programmable<br />

Register<br />

To Row/Col<br />

Interconnect<br />

Network<br />

To Local<br />

Interconnect<br />

Network<br />

This denotes a control input<br />

provided by the FPGA s SRAM<br />

programming data

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

Saved successfully!

Ooh no, something went wrong!