Potential solutions for providing application-specific functionality in embedded systems typically come with trade-offs in terms of cost and time to market. With few projects having the lead-time, budget or high-volume payback potential to tool-up for custom chip or hardware production runs, the best answers often revolve around "modular" solutions.

Although standard board designs can frequently satisfy common processing needs, system designers still constantly look for cost-effective ways to handle their more unique requirements for graphics, field bus connections or digital I/O functions. Today, solutions built around soft-core processors and field-programmable gate-array (FPGA) technology are offering more versatile options for cost-effective processing and I/O functionality in unique embedded applications – at speeds and density comparable to those of RISC and CISC processors. (Figure A.) And FPGA applications are ranging far beyond their traditional use as glue logic, up to and including their use as replacements for application-specific integrated circuit (ASIC) chips.

Economy of scale vs. custom design flexibilityWith FPGAs, these two concepts are not mutually exclusive. Applications developed with FPGA technology help to minimize economy-of-scale issues with hardware, even in one-off applications, because there are minimum purchasing amounts. In fact, a system designer can effect multiple outcomes from the same basic components. Better yet, the programmable nature of the technology readily lends itself to the flexibility needed to adjust to rapidly changing conditions over time. Assembling modular solutions utilizing standard boards, interfaces and open-source intellectual property (IP) cores, enables users to harness FPGA technology to satisfy unique embedded computing challenges quickly and affordably.

Because so many of the building blocks are readily available as non-proprietary solutions, they reduce the need and the lead-time for custom solution development. Furthermore, their compatibility with standard formats, such as CompactPCI or VME systems as well as PMC mezzanine cards, makes their implementation more familiar to embedded computing solutions developers.

Within this framework, Embedded System Modules (ESMs) (also called System-On-Modules (SOM) or Computer-On-Modules (COM)) that use FPGAs offer affordable I/O functionality that can be adapted to the respective requirements of the application – and even updated dynamically during operation. (Figure B) This makes the electronics 100% tailored to the application, and future-safe. Implementation is especially flexible and inexpensive where a special I/O platform is needed. Such embedded system modules are ideal for deeply embedded computers, small form factors (<3U), and/or extremely variable requirements.

Tipping points for choosing FPGA technology
Increasing cost-effectiveness has been one key to the growing potential of FPGAs in embedded systems. A decade ago, an FPGA with 100,000 gate equivalents cost about $1,000 (US). Now, such products can be less than $100 US, and include a vastly expanded feature set such as external memory interface, embedded memory, differential signaling or phase-locked loops (PLLs).

Another factor is the comparative cost of increasingly sophisticated ASICs. Minimum purchasing quantities, high non-recurring engineering costs and the expense for test, engineering and verification is four times higher with 0.13-micron ASIC technology than it was with 0.35-micron ASIC technology. This can make FPGAs more attractive in some of those applications. But even beyond component costs, there are also logistical advantages that streamline FPGA implementation and performance.

Advances in FPGA performance have also brought that technology to the point where its speed and density make it a technically and economically attractive alternative, particularly in applications that require flexibility for frequent changes in terms of re-programmability, reusability or upgradeability.

Another driver for cost-efficient implementation is that FPGA technology offers system designers a short-cut to developing unique applications, in the form of existing IP cores. Just as specific hardware components can be assembled for unique purposes, IP cores developed for specific functions can be used to build the basis of a custom-designed FPGA solution – with or without the need for additional programming.

There are many such open-source IP cores available license-free – either on the open market (through opencores.org), or provided by FPGA vendors, component integrators or board and component manufacturers for the benefit of their customers. These accommodate a variety of interfaces (such as Flash and PCI-to-Wishbone interfaces), controllers (such as SDRAM, IDE and CAN controllers), frequency or impulse counters and bridges. Additionally, developer toolkits provided with specific FPGA solutions speed and simplify the application-building process.

Practical application of FPGAs in embedded systemsAs embedded applications become more complex, system designers are finding it more productive to use a divide-and-conquer approach in terms of both hardware and software solutions. Outsourcing different aspects of hardware components, IP cores, and software execution as individual elements enables system designers to tailor their options and achieve their performance objectives more efficiently. And, when available, appropriate pre-configured modules enable them to harness multiple capabilities as a more comprehensive piece of the puzzle.

CPU modules, with a supporting FPGA directly on the module, allow users to define I/O extensions and optimize the use of bus resources in a very flexible way. Embedded FPGA soft-core processor solutions form a "matrix" within which processing, peripherals, data path and algorithms can be placed to create powerful, flexible and upgradeable systems.

Embedded system modules (SOMs/COMs) using advanced FPGA products can accommodate the complete computing core and allow variability and scalability of DRAM and Flash memory configuration. Also, the adaptability of I/O functionality to the respective requirements of the application can satisfy the demanding requirements encountered in applications such as automation control, robotics, avionics, industrial communication, transportation and medical applications. The functionality controlled by those FPGA capabilities can even be reconfigured at any time during operation.

Equally important, is the fact that standardization – in the form of operating systems, PCI bus, PC/104-Plus connectors, FPGAs realized using very-high-speed-integrated-circuit hardware description language (VHDL) and the Wishbone internal FPGA bus – provides familiarity that opens the benefits to a wide range of developers.

Immediate benefits with long-term confidence
Whatever the drivers – time-to-market, cost-effectiveness in limited volume applications, programming flexibility, open system freedom or minimum design overhead – FPGAs and ESMs built around their capabilities offer both immediate and long-term advantages. And while they are not a one-design-fits-all solution, they certainly enable system designers to satisfy multiple applications with a common hardware solution.

With an eye toward the future, careful component and module selection can guarantee a standard availability between five and ten years and a long-term availability of 15 years and more. And even if the FPGA components eventually need to be replaced, the IP cores can still be valid.