Recently,
there is a growing use of FPGAs to prototype ASICs as part of an ASIC
verification methodology. With
development costs for ASICs approaching $20M for a 90 nm ASIC/SoC design and
expected to top $40M for a 45 nm SoC, avoiding a respin by prototyping with
FPGAs is attractive. Besides the increase in mask-set cost, total development
cost is also increasing due to the reduced probability of getting the design
right the first time. As design complexity continues to increase, surveys have
shown that only about a third of today's SoC designs are bug-free in first
silicon, and nearly half of all respins are reported as being caused by
functional logic error.
As a result,
verification managers are now exploring ways to strengthen their functional
verification methodologies. With
increased complexity, another cost becomes a limiting factor to the
effectiveness of verification — simulation runtime and inaccuracy of stimulus
models. Prototyping an ASIC design in FPGAs, while often yielding different
performance, still results in the same logical functionality. Further, running
a design at speed on an FPGA prototype with real stimulus allows for a far more
exhaustive and realistic functional coverage as well as early integration with
embedded software. Thus FPGA prototyping can be used effectively to supplement
and extend existing functional verification methodologies.
ASIC vs FPGA
The
Application Specific Integrated Circuit is a unique type of IC that is designed
with a certain purpose in mind. This type of ICs are very common in most
hardware nowadays since building with standard IC components would lead to big
and bulky circuits. An FPGA (Field Programmable Gate Array) is also a type of
IC, but it does not have the programming built into it during the production.
As the name implies, the IC can be programmed by the user as long as he has the
right tools and proper knowledge.
An ASIC can no
longer be altered after it gets out of the production line. That is why the
designers need to be totally sure of their design, especially when making large
quantities of the same ASIC. The programmable nature of an FPGA allows the
manufacturers to correct mistakes and to even send out patches or updates after
the product has been bought. Manufacturers also take advantage of this by creating
their prototypes in an FPGA so that it can be thoroughly
tested and revised in the real world before actually sending out the design to
the IC foundry for ASIC production.
ASICs have a great
advantage in terms of recurring costs as very little material is wasted due to
the fixed number of transistors in the design. With an FPGA, a certain number
of transistor elements are always wasted as these packages are standard. This
means that the cost of an FPGA is often higher than that of a comparable ASIC.
Although the recurring cost of an ASIC is quite low, its non-recurring cost is
relatively high and often reaching into the millions. Since it is non-recurring
though, its value per IC decreases with increased volume. If you analyze the
cost of production in relation to the volume, you would find that as you go
lower in production numbers, using FPGA actually becomes cheaper than using
ASICs.