The use of programmable devices helps designers not only to address component obsolescence, but also to reduce the cost and complexity of the solution.
Many applications have a long service life — for example those deployed within industrial, scientific and military industries. In these applications, the service life may exceed that of component availability, impacting the ability of the manufacturer to perform repairs or start new production runs. If the obsolete devices are discrete components such as passive devices, replacement parts might be identified more easily.
However, if the component which has been made obsolete is more complex, such as a processor, logic function or microcontroller, then identifying a suitable replacement device is much more complicated. Replacing these more advanced, obsolete components in a design can be very costly, potentially requiring an entire redesign of the electronic hardware and software. The use of programmable devices helps mitigate these impacts allowing designers not only to address the component obsolescence, but also to reduce the cost and complexity of the solution.
Programmable logic devices are provided in a range of devices of different types, capabilities and sizes, from FPGAs to System on Chips (SoC) and Complex Programmable Logic Devices (CPLD). Designers can select the appropriate type and device dependent upon their requirements. The flexible nature of these programmable devices provides two significant benefits:
- Any-to-any interfacing capabilities: The devices can be configured to implement legacy and bespoke bus interfaces as well as any industry standard interface.
- Emulation: The obsolete function can be emulated within the device, whether it is a logic function implemented in programmable logic in a CPLD, FPGA or SoC, or a processor system implemented in an FPGA or SoC. Complex processor systems can be implemented using either a soft core within a FPGA, or a dedicated hard core based ARM processor within a processing system, forming a System on Chip.
Using programmable logic devices can, in some use cases, prevent the need to redesign electronic circuit cards currently in use. Instead, in its place a daughter board containing the programmable device can be added to the board, with the inputs and outputs wired directly to the pads of the obsolete device. Of course, if this route is to be followed, the dynamic and thermal environmental conditions of the equipment must be analysed to ensure the solution is viable.
When it comes to emulating complex functions within a CPLD, FPGA or SoC to replicate a complex function such as a microcontroller or processor, there is a range of choices. The function can be replicated using either hard core based ARM A9 processor cores within a SoC or soft cores implemented within a FPGA.
Soft cores can be either technology specific such as MicroBlaze and PicoBlaze offered by Xilinx, or open source solutions such as the RISC-V. Using this approach requires that the software application is re-written for the selected processor, providing a more optimised solution. A second approach is to recreate the obsolete microcontroller within the programmable logic and execute the original software. This approach requires that a soft core version of the now obsolete processor is available. This could be sourced from either a third-party IP developer commercially or using an open source resource. Alternatively, if no soft core exists, it is possible to develop one internally.
Of course, designing in a programmable device from the initial concept, instead of multiple standard parts, also provides significant mitigation against obsolescence. Many programmable logic devices are designed to support products with long product life cycles of 15 to 20 years.
— Giles Peckham is a regional marketing director at Xilinx Inc. He has worked in the field of IC design for more than 30 years.