Programmable Asics: Technology - The Chip Inputs and Outputs Use Special I/O Logic Cells That Are
Programmable Asics: Technology - The Chip Inputs and Outputs Use Special I/O Logic Cells That Are
ASICs
There are two types of programmable ASICs: programmable logic devices
(PLDs) and field-programmable gate arrays (FPGAs). The distinction
between the two is blurred. The only real difference is their heritage. PLDs
started as small devices that could replace a handful of TTL parts, and they
have grown to look very much like their younger relations, the FPGAs. We
shall group both types of programmable ASICs together as FPGAs.
An FPGA is a chip that you, as a systems designer, can program
yourself. An IC foundry produces FPGAs with some connections missing.
You perform design entry and simulation. Next, special software creates a
string of bits describing the extra connections required to make your design
—the configuration file . You then connect a computer to the chip and
program the chip to make the necessary connections according to the
configuration file. There is no customization of any mask level for an
FPGA, allowing the FPGA to be manufactured as a standard part in high
volume.
FPGAs are popular with microsystems designers because they fill a gap
between TTL and PLD design and modern, complex, and often expensive
ASICs. FPGAs are ideal for prototyping systems or for low-volume
production. FPGA vendors do not need an IC fabrication facility to produce
the chips; instead they contract IC foundries to produce their parts. Being
fabless relieves the FPGA vendors of the huge burden of building and
running a fabrication plant (a new submicron fab costs hundreds of millions
of dollars). Instead FPGA companies put their effort into the FPGA
architecture and the software, where it is much easier to make a profit than
building chips. They often sell the chips through distributors, but sell design
software and any necessary programming hardware directly.
All FPGAs have certain key elements in common. All FPGAs have a
regular array of basic logic cells that are configured using a programming
technology . The chip inputs and outputs use special I/O logic cells that are
different from the basic logic cells. A programmable interconnect scheme
forms the wiring between the two types of logic cells. Finally, the designer
uses custom software, tailored to each programming technology and FPGA
architecture, to design and implement the programmable connections. The
programming technology in an FPGA determines the type of basic logic cell
and the interconnect scheme. The logic cells and interconnection scheme, in
turn, determine the design of the input and output circuits as well as the
programming scheme.
The programming technology may or may not be permanent. You cannot
undo the permanent programming in one-time programmable ( OTP )
FPGAs. Reprogrammable or erasable devices may be reused many times.
We shall discuss the different programming technologies in the following
sections.
FIGURE 4.1 Actel antifuse. (a) A cross section. (b) A
simplified drawing. The ONO (oxide–nitride–oxide)
dielectric is less than 10 nm thick, so this diagram is not
to scale. (c) From above, an antifuse is approximately the
same size as a contact.
The fabrication process and the programming current control the average
resistance of a blown antifuse, but values vary as shown in Figure 4.2 . In a
particular technology a programming current of 5 mA may result in an
average blown antifuse resistance of about 500 . Increasing the
programming current to 15 mA might reduce the average antifuse resistance
to 100 . Antifuses separate interconnect wires on the FPGA chip and the
programmer blows an antifuse to make a permanent connection. Once an
antifuse is programmed, the process cannot be reversed. This is an OTP
technology (and radiation hard). An Actel 1010, for example, contains
112,000 antifuses (see Table 4.1 ), but we typically only need to program
about 2 percent of the fuses on an Actel chip.
TABLE 4.1 Number
of
antifuses on Actel
FPGAs.
Device Antifuses
A1010 112,000
A1020 186,000
A1225 250,000
A1240 400,000
A1280 750,000
FIGURE 4.2 The resistance of
blown Actel antifuses. The
average antifuse resistance
depends on the programming
current. The resistance values
shown here are typical for a
programming current of 5 mA.
To design and program an Actel FPGA, designers iterate between design
entry and simulation. When they are satisfied the design is correct they plug
the chip into a socket on a special programming box, called an Activator ,
that generates the programming voltage. A PC downloads the configuration
file to the Activator instructing it to blow the necessary antifuses on the
chip. When the chip is programmed it may be removed from the Activator
without harming the configuration data and the chip assembled into a
system. One disadvantage of this procedure is that modern packages with
hundreds of thin metal leads are susceptible to damage when they are
inserted and removed from sockets. The advantage of other programming
technologies is that chips may be programmed after they have been
assembled on a printed-circuit board—a feature known as in-system
programming ( ISP ).
The Actel antifuse technology uses a modified CMOS process. A double-
metal, single-poly CMOS process typically uses about 12 masks—the Actel
process requires an additional three masks. The n- type antifuse diffusion
and antifuse polysilicon require an extra two masks and a 40 nm (thicker
than normal) gate oxide (for the high-voltage transistors that handle 18 V to
program the antifuses) uses one more masking step. Actel and Data General
performed the initial experiments to develop the PLICE technology and
Actel has licensed the technology to Texas Instruments (TI).
The programming time for an ACT 1 device is 5 to 10 minutes.
Improvements in programming make the programming time for the ACT 2
and ACT 3 devices about the same as the ACT 1. A 5-day work week, with
8-hour days, contains about 2400 minutes. This is enough time to program
240 to 480 Actel parts per week with 100 percent efficiency and no
hardware down time. A production schedule of more than 1000 parts per
month requires multiple or gang programmers.
FIGURE 4.3 Metal–metal antifuse. (a) An idealized (but
to scale) cross section of a QuickLogic metal–metal
antifuse in a two-level metal process. (b) A metal–metal
antifuse in a three-level metal process that uses contact
plugs. The conductive link usually forms at the corner of
the via where the electric field is highest during
programming.
There are two advantages of a metal–metal antifuse over a poly–
diffusion antifuse. The first is that connections to a metal–metal antifuse are
direct to metal—the wiring layers. Connections from a poly–diffusion
antifuse to the wiring layers require extra space and create additional
parasitic capacitance. The second advantage is that the direct connection to
the low-resistance metal layers makes it easier to use larger programming
currents to reduce the antifuse resistance. For example, the antifuse
resistance R ⊕ 0.8/ I , with the programming current I in mA and R in ,
for the QuickLogic antifuse. Figure 4.4 shows that the average QuickLogic
metal–metal antifuse resistance is approximately 80 (with a standard
deviation of about 10 ) using a programming current of 15 mA as
opposed to an average antifuse resistance of 500 (with a programming
current of 5 mA) for a poly–diffusion antifuse.
FIGURE 4.4 Resistance values for the
QuickLogic metal–metal antifuse. A
higher programming current (about 15
mA), made possible partly by the direct
connections to metal, has reduced the
antifuse resistance from the poly–
diffusion antifuse resistance values
shown in Figure 4.2 .
The size of an antifuse is limited by the resolution of the lithography
equipment used to makes ICs. The Actel antifuse connects diffusion and
polysilicon, and both these materials are too resistive for use as signal
interconnects. To connect the antifuse to the metal layers requires contacts
that take up more space than the antifuse itself, reducing the advantage of
the small antifuse size. However, the antifuse is so small that it is normally
the contact and metal spacing design rules that limit how closely the
antifuses may be packed rather than the size of the antifuse itself.
An antifuse is resistive and the addition of contacts adds parasitic
capacitance. The intrinsic parasitic capacitance of an antifuse is small
(approximately 1–2 fF in a 1 m CMOS process), but to this we must add
the extrinsic parasitic capacitance that includes the capacitance of the
diffusion and poly electrodes (in a poly–diffusion antifuse) and connecting
metal wires (approximately 10 fF). These unwanted parasitic elements can
add considerable RC interconnect delay if the number of antifuses connected
in series is not kept to an absolute minimum. Clever routing techniques are
therefore crucial to antifuse-based FPGAs.
The long-term reliability of antifuses is an important issue since there is a
tendency for the antifuse properties to change over time. There have been
some problems in this area, but as a result we now know an enormous
amount about this failure mechanism. There are many failure mechanisms in
ICs—electromigration is a classic example—and engineers have learned to
deal with these problems. Engineers design the circuits to keep the failure
rate below acceptable limits and systems designers accept the statistics. All
the FPGA vendors that use antifuse technology have extensive information
on long-term reliability in their data books.
4.4.1 FPGAs in Use
I once placed an order for a small number of FPGAs for prototyping and
received a sales receipt with a scheduled shipping date three months away.
Apparently, two customers had recently disrupted the vendor’s product
planning by placing large orders. Companies buying parts from suppliers
often keep an inventory to cover emergencies such as a defective lot or
manufacturing problems. For example, assume that a company keeps two
months of inventory to ensure that it has parts in case of unforeseen
problems. This risk inventory or safety supply, at a sales volume of 2000
parts per month, is 4000 parts, which, at an ASIC price of $5 per part, costs
the company $20,000. FPGAs are normally sold through distributors, and,
instead of keeping a risk inventory, a company can order parts as it needs
them using a just-in-time ( JIT ) inventory system. This means that the
distributors rather than the customer carry inventory (though the distributors
wish to minimize inventory as well). The downside is that other customers
may change their demands, causing unpredictable supply difficulties.
There are no standards for FPGAs equivalent to those in the TTL and
PLD worlds; there are no standard pin assignments for VDD or GND, and
each FPGA vendor uses different power and signal I/O pin arrangements.
Most FPGA packages are intended for surface-mount printed-circuit
boards ( PCBs ). However, surface mounting requires more expensive PCB
test equipment and vapor soldering rather than bed-of-nails testers and
surface-wave soldering. An alternative is to use socketed parts. Several
FPGA vendors publish socket-reliability tests in their data books.
Using sockets raises its own set of problems. First, it is difficult to find
wire-wrap sockets for surface-mount parts. Second, sockets may change the
pin configuration. For example, when you use an FPGA in a PLCC package
and plug it into a socket that has a PGA footprint, the resulting arrangement
of pins is different from the same FPGA in a PGA package. This means you
cannot use the same board layout for a prototype PCB (which uses the
socketed PLCC part) as for the production PCB (which uses the PGA part).
The same problem occurs when you use through-hole mounted parts for
prototyping and surface-mount parts for production. To deal with this you
can add a small piece to your prototype board that you use as a converter.
This can be sawn off on the production boards—saving a board iteration.
Pin assignment can also cause a problem if you plan to convert an FPGA
design to an MGA or CBIC. In most cases it is desirable to keep the same
pin assignment as the FPGA (this is known as pin locking or I/O locking ),
so that the same PCB can be used in production for both types of devices.
There are often restrictions for custom gate arrays on the number and
location of power pads and package pins. Systems designers must consider
these problems before designing the FPGA and PCB.
4.5 Specifications
All FPGA manufactures are continually improving their products to increase
performance and reduce price. Often this means changing the design of an
FPGA or moving a part from one process generation to the next without
changing the part number (and often without changing the specifications).
FPGA companies usually explain their part history in their data books. 1
The following history of Actel FPGA ACT 1 part numbers illustrates
changes typical throughout the IC industry as products develop and mature:
From this history we can see that it is often possible to have parts from
the same family that use different circuit designs, processes, and die sizes,
are manufactured in different locations, and operate at very different speeds.
FPGA companies ensure that their products always meet the current
published worst-case specifications, but there is no guarantee that the
average performance follows the typical specifications, and there are usually
no best-case specifications.
There are also situations in which two parts with identical part numbers
can have different performance—when different ASIC foundries produce
the same parts. Since FPGA companies are fabless, second sourcing is very
common. For example, TI began making the TPC1010A/1020A to be
equivalent to the original Actel ACT 1 parts produced elsewhere. The TI
timing information for the TPC1010A/1020A was the same as the 2 m
Actel specifications, but TI used a faster 1.2 m process. This meant that
“equivalent” parts with the same part numbers were much faster than a
designer expected. Often this type of information can only be obtained by
large customers in the form of a qualification kit from FPGA vendors.
A similar situation arises when the FPGA manufacturer adjusts its
product mix by selling fast parts under a slower part number in a procedure
known as down-binning . This is not a problem for synchronous designs
that always work when parts are faster than expected, but is another reason
to avoid asynchronous designs that may not always work when parts are
much faster than expected.
4.7.1 FPGA Pricing
Asking “How much do FPGAs cost?” is rather like asking “How much does
a car cost?” Prices of cars are published, but pricing schemes used by
semiconductor manufactures are closely guarded secrets. Many FPGA
companies use a pricing strategy based on a cost model that uses a series of
multipliers or adders for each part option to calculate the suggested price for
their distributors. Although the FPGA companies will not divulge their
methods, it is possible to reverse engineer these factors to create a pricing
matrix.
Many FPGA vendors sell parts through distributors. This can introduce
some problems for the designer. For example, in 1992 the Xilinx XC3000
series offered the following part options:
TABLE 4.5 Actel price adjustment factors.
Purchase quantity, all types
(100–
(1–9) (10–99)
999)
100 %
96 % 84 %
Purchase time, in (100–999) quantity
1H92 2H92 93
100 % 80–95 % 60–80 %
Qualification type, same package
Commercial Industrial Military 883-B
100 % 120 % 150 % 230–300 %
Speed bin 1
ACT 1-Std ACT 1-1 ACT 1-2 ACT 2-Std ACT 2-1
100 %
115 % 140 % 100 % 120 %
Package type
PL44, 64,
A1010: PQ100 PG84
84
100 % 125 % 400 %
PL44, 64, JQ44, 68,
A1020: PQ100 PG84 CQ84
84 84
100 % 125 % 270 % 275 % 400 %
A1225: PQ100 PG100
100 % 175 %
A1240: PQ144 PG132
100 % 140 %
A1280: PQ160 PG176 CQ172
100 % 145 % 160 %
1. Actel speed bins are: Std = standard speed grade; 1 = medium speed grade;
2 = fastest speed grade.
2. The speed bin is a manufacturer’s code (usually a number) that follows the
family part number and indicates the maximum operating speed of the
device.
4.8 Summary
In this chapter we have covered FPGA programming technologies
including antifuse, SRAM, and EPROM technologies; the programming
technology is linked to all the other aspects of a programmable ASIC. Table
4.7 summarizes the programming technologies and the fabrication processes
used by programmable ASIC vendors.
TABLE 4.7 Programmable ASIC technologies.
Xilinx LCA Altera
Xilinx EPLD
Actel 1 EPLD
UV-erasable
Poly–
Erasable EPROM
Programming diffusion UV-erasable
SRAM (MAX 5k)
technology antifuse, EPROM
ISP EEPROM
PLICE
(MAX 7/9k)
Two
One n - One n -
Small but inverters
Size of channel channel
requires plus pass
programming EPROM EPROM
contacts to and switch
element device. device.
metal devices.
Medium. Medium.
Largest.
Special: Standard
CMOS plus Standard EPROM Standard
Process
three extra CMOS and EPROM
masks. EEPROM
ISP (MAX
PC card,
Programming Special 9k) or EPROM
PROM, or
method hardware EPROM programmer
serial port
programmer
Altera
QuickLogic Crosspoint Atmel
FLEX
Programming Metal–metal Metal– Erasable Erasable
antifuse, polysilicon SRAM. SRAM.
technology ViaLink antifuse ISP. ISP.
Two Two
inverters inverters
Size of
plus pass plus pass
programming Smallest Small
and switch and switch
element
devices. devices.
Largest. Largest.
Special, Special,
Standard Standard
Process CMOS plus CMOS plus
CMOS CMOS
ViaLink antifuse
PC card, PC card,
Programming Special Special
PROM, or PROM, or
method hardware hardware
serial port serial port
All FPGAs have the following key elements: