The problem of keeping computer systems current and efficient has been around as long as the electronics industry, but in the last decade the issue has accelerated. New generations of components supersede the previous ones in a matter of months. Plus, as business objectives change and require new capabilities, the demand for flexibility soars. The need for systems to be adaptable and accommodate a variety of I/O requirements without incurring huge replacement costs just keeps increasing.
Table of Contents
- Design Challenges
- FPGAs: For Preventing 'Gotcha' Architectures
- Let's Get Technical
- Personality Module Carrier
- Giving Your Board Personality: Adding I/O And Other Functionality
- IP: Directing The FPGA
- More Potential Benefits
- Designers Are Already Onboard
These challenges inevitably fall to program managers and embedded systems designers. But it's getting tough to bring new systems online or extend the service life of those already in place through refresh projects and tech insertion upgrades. The variety of modules and vendors has been reduced by market forces, principally mergers and acquisitions, and key components going "end-of-life." If that weren't enough, there are added pressures to contain costs while speeding deployment with limited (and shrinking) funding.
The military and avionics sectors found a way to resolve this, by creating a "parallel universe" of components that meet military specs and are sold under contracts that guarantee prolonged availability. Because commercial-off-the-shelf (COTS) products are built around modularization and open standards, program managers and suppliers were able to meet these challenges for years.
For some, like the U.S. Department of Defense, modularity is not simply a good idea, but a guiding principle. As codified in its strategic acquisition initiative (SAI) and modular open systems approach (MOSA), modularity is a key element of all acquisition planning to realize affordable, evolutionary and joint combat capabilities. MOSA identified real benefits for DOD such as ease of change, reduced cycle times and risk mitigation. Nearly 20 years later, MOSA principles remain valid. When considering embedded system design over the last few decades it's easy to see the impact. Modular COTS is preferred for non-developmental items and has proven its worth.
However, no electronics are immune to the pressure of change. Most classes of products require extended production and parts availability beyond the end of the natural life cycle of the components with which they were first designed. "Old" in this context can mean as little as five years. Also, progress in silicon technology means that the process used to fabricate the original devices is likely now unavailable, or a minimum order to run that process would produce much more than the user needs. So what more can be done to mitigate the negative impact of change, as well as increase a system's inherent flexibility? For some board-level suppliers, the solution is to modularize modules.
The use of modular I/O has been central to embedded systems, allowing easy expansion or modification simply by swapping out modules like PMCs, while keeping the more costly fundamental hardware (SBC/carrier/chassis) intact. Typically when a shift in technology has forced change, the response had been to create a next-generation discrete, single-function module designed to match form, fit and function, and simply replace the defunct model: substitute one module for another. That same principle has shifted down into the I/O level itself using field programmable gate arrays (FPGAs) at the core and developing a stable of modules that can be mixed and matched to create a board-level solution unique to the user.
Basically, the process is "change a module and leave the heart of the platform essentially unaltered," save for some possible programming modifications. This natural, logical approach represents a needed evolution that has been enthusiastically received in embedded systems. And there are a growing number of modularized solutions emerging from the likes of MEN Micro, Acromag and Technobox - each fielding a variety of FPGA-based, board-level products in assorted form factors like PMC, XMC, VPX, and cPCI.
At the heart of these solutions, of course, is the FPGA. FPGA-based board solutions have a number of benefits including:
- Cost-efficient performance
- Obsolescence mitigation
- Faster time-to-market
- Ease of modification
- Simplified upgrades
- Signal processing at FPGA not handed off
- Portability and re-use of IP across platforms
- Rapid customization using IP and electrical interface options
- Compound I/O on a single board
- Suitable for development and production environments
Board functions and electrical interface characteristics are managed as module-on-module elements. The front-end interface, and whatever Intellectual Property (IP) is programmed into the FPGA, provide flexibility and adaptability. If needed, a designer might also incorporate a complete microcontroller to augment or offload some work that otherwise would be performed by an SBC. The type of FPGA used depends on the anticipated application, with high-end devices appearing on platforms for more demanding requirements (e.g., processing speed, ability to include an on-board processor, available memory, and suitability for harsh environment). A variety of functions can also be stuffed into an FPGA, even several at same time, offering multiple functions on one board.
The broad-brush benefits of this solution are many. If you base a platform on a large amount of programmable logic, you can potentially replace a number of subsystem-level items with one generic unit, which you can program to fulfill a particular role. As a customer's end product changes – either in I/O requirements or performance -- the customer can continue to use the same product from the carrier board provider or upgrade that board to a higher performance FPGA, saving most of his or her IP investment, which can form the basis of further unit development. For these reasons and others, FPGA-based platforms are gaining attention and respect within the embedded systems field.
One of the downsides of using individual, discrete-function boards for adding I/O or other functionality to an embedded system is the continued risk of either the board or the interface controller going end-of-life. This is especially true of products that are designed for the PC marketplace or based on controllers used in that market. Mainstream FPGA parts tend to have much longer lifetimes than those in the PC market. By moving the interface controller logic into IP on FPGAs, the risk of obsolesce can be reduced, and the ability to accommodate future requirements greatly enhanced.
Computer boards often consist of both an electrical interface and a controller chip. These can often be separated into an I/O and an interface / functional portion. The I/O can then be placed onto a module and the interface / functional portion converted into IP. By combining these two functions on a common carrier platform that has an FPGA, the original function can be reproduced and potentially combined with other functions.
Future-proofing calls for the common carrier platform to be as generic as possible (Fig. 1). The carrier contains the I/O connectors, I/O module connectors, FPGA and the bus interface. The goal is to provide the functionality via I/O or other modules and IP within the FPGA. This allows the flexibility to support multiple designs and allows the modules and IP to be interchanged. Depending on the bus interface the carrier is designed to support, the bus interface could be implemented with a standard interface controller or included within the FPGA as well.
By supporting a family of products with different capabilities or FPGA capacities, the carrier can be tailored to a specific design to reduce costs, yet still provide the same standardized interface allowing for design reuse. By having identical carriers in different form factors or having the carrier provide a common interface to the FPGA, a design could be ported from one platform to another without any changes.
To be able to consolidate multiple functions into one product requires the use of a modular approach. This involves a standardized or proprietary plug-in personality module to provide the electrical interface alone. By placing just the electrical interface on the module, the risk of part obsolescence is reduced as electrical interface chips tend to be readily available and there are often second sources for these chips. This module resides between the FPGA and the I/O connector.
Using plug-in personality modules requires a standardized interface on the module connector so that specific signals go to the I/O connector and others go to the FPGA (Fig. 2). This allows any module to be installed in any location. The directionality and functionality of these signals would vary based upon the specific design. Ideally the FPGA should be able to identify the module that is present to ensure that the correct module is installed and prevent the possibility of double driving any signals. Using multiple personality modules allows the interface to be tailored to the user's requirements, such as RS232, RS422/485, A/D, or memory.
Determining the size of the modules is a trade-off: they need to be small enough to allow multiple modules to be mounted on the carrier, but large enough to hold the desired chips. The interface connector also needs to be small enough to fit on the module, yet needs to accommodate power and ground signals in addition to the functional ones.
The benefit of employing modules is immediately apparent. Should a desired I/O interface not be available on an existing personality module, or if the module needs to be updated, the module is a simpler and smaller design to create and produce than an entire board. If a module is used in multiple designs, a single hardware redesign is done instead of having to upgrade multiple boards.
With the heart of the common carrier being an FPGA, the functionality of the board or desired interface must be moved into the FPGA. Depending on the functionality, there may already be existing IP provided by the FPGA manufacturer, carrier provider, open source (such as OpenCores) or through a growing number of third-party IP providers. If an existing IP is suitable, by using an FPGA-based approach, the IP can be customized for a specific user's application, and tailored or enhanced to the user's specific requirements. By having control over the IP, the interface can be modified to match the existing board to reduce driver changes or enhanced to provide extra functionality.
Since the IP is going between the bus interface and the I/O module, it must have two interfaces. The bus interface will be common to all modules and should be a standardized interface. By standardizing the IP-bus interface to a common interface such as the independent Wishbone interface or an FPGA-specific interface like Altera's QSYS, IP is easily added to a design as needed. Depending on how the design was set up, it could be a simple matter of adding a couple of lines to a script file to get the new IP into the design. Some IP, such as a UART, will be able to support multiple I/O modules, while other IP will be dedicated to a single I/O module or, at the very least, a single electrical interface chip.
On the personality module side it is usually not possible to standardize across all IP due to the wide variety of modules that are possible for I/O and other functions. Interfacing to an analog to digital controller with a serial interface will require a different set of signals than would a bidirectional Digital I/O interface. Ideally, the FPGA design would verify that the correct I/O module is installed and disable the interface if it is not correct to prevent any possible damage.
Other positives to having all the IP within the FPGA is that if the design requires it, data flows easily between the IP blocks. No longer does the CPU need to move data between boards since the data is now all contained within the same design. Also, FPGAs typically can provide real-time debugging through a logic-analyzer-like-interface of the design, usually through JTAG or a similar interface. This allows the user to target events and capture desired data from within the FPGA. This potentially provides greater visibility into the design than, for instance, a COTS board black box.
When it comes to switching from one generation of silicon to another, an FPGA-based platform lets designers more easily overcome the barrier of voltage level. Many designs built before five years ago, or in 0.65-micron or earlier technology, used only 5V power and logic-signal levels. Interfacing newer parts required some signal level conversion to accommodate power rails at 3.3V or less and different voltage swings. All FPGA makers offer I/O cells that you can program to accept a variety of signal-voltage ranges.
Finally, flexibility at an optimum level is achieved. As a customer's end product changes – either in I/O requirements or performance -- he or she can continue to use the same product from the carrier board provider or upgrade that board to a higher performance FPGA, saving most of his or her IP investment or just changing the Electronic Conversion Modules (ECMs) to meet the new product requirement. Standardized IP and separate module I/O allow the user to rapidly prototype new configurations and quickly create multifunction boards. By selecting the desired set of I/O modules and matching it with the appropriate IP, a new board can be created in the time it takes to compile the FPGA design.
The obsolescence/flexibility problem demands an active approach including managing past products and monitoring their ongoing support needs while organizing new designs to minimize the effects of future changes. Mostly, it requires the forethought and skill to decipher the future of the industry and plan accordingly. Manufacturers that have already embraced FPGAs are moving forward, fueled by the pace of progress in electronics and semiconductor technology.
Micro Mezzanine Solution (MMS) is one example of the modular FPGA-based approach using a common carrier board and I/O modules. MMS is available from TechnoboxMicro. This family of products features an Altera FPGA-based carrier board along with numerous personality modules (in this case, ECMs). By mixing and matching the ECMs and selecting the desired IP from existing Technobox and Altera IP, a nearly infinite array of turnkey customized designs can be created. Some of these manufacturers bundle their components to address custom needs for a certain application. Alternatively, users can develop their own custom IP to meet their specific requirements.
With more designers and manufacturers migrating to FPGA, the concept is being viewed as a realistic, practical way to future-proof embedded I/O subsystems, especially those created for specialized applications with only small or medium volume requirements. FPGA-based solutions facilitate I/O modification for minimal outlays, even for small numbers, making them useful for proof-of-concept one-offs or small projects. Furthermore, board redesign expense can be mitigated by installing application-specific IP cores in the FPGA and tweaking modular components, without having to alter the whole board. Given the broad spectrum of FPGAs, increasing densities and shrinking costs, FPGA-based I/O solutions are being considered more often in order to save dollars and accelerate time to market or deployment.