One perspective for thinking of the embedded world is as a spectrum of complexity ranging from ASIC to MCU. ASIC designs are enormously expensive and take years to complete but the potential for innovation is almost unbounded. MCU projects are almost free in comparison and take months or even just weeks to finish, but they are limited by the third-party chips they run on.
However, as different as these approaches are technically, there are many similarities in both their end-products; they both predominantly use ARM CPU cores, include standard communications interfaces, integrate significant amounts of analog functionality on-chip, and support low power operation and fast wakeup times.
Figure 1: The spectrum of embedded design from SoC to MCU
Sitting in the middle of this spectrum are programmable platforms where design does not take place at the silicon level but still offers enormous flexibility in terms of the functions that can be integrated into a device.
The obvious examples of this genre are FPGAs and CPLDs, which are fabulously powerful and have enormous capacities. These devices, however, do not epitomize the definition of a programmable platform because they are so focused on the digital domain.
To truly bridge the gap between ASIC and MCU requires a programmable platform that provides flexible in terms of both analog and digital functions without a designer having to become an expert in either discipline. Designers will want to complement that programmability with standard CPUs and their off-the-shelf tools and ecosystems.
Finally, an ideal system will be perfectly suited to an application, offering all of the required peripherals and interfaces on-chip, the right level of performance, and no unneeded functions that have to still be paid for even if they are never used.
To achieve such flexibility requires a platform that enables custom configuration of high-performance analog and programmable digital logic in the SoC but without developers needing to be experts in HDL or analog design.
Microcontrollers have the tools and analog functions but ultimately lack the configurability. FPGAs have configurable logic and are beginning to offer better software, but their weakness still lies in analog and true low power operation.
ARM: the de-facto embedded MCU standard
For many years now the ARM architecture has been the de-facto standard for ASIC design, as dominant in most deeply embedded markets as Intel have been in Personal Computers (and without the problem of reverse-engineered clones). After the release of the Cortex M-series processor cores a few years ago, one would be quite hard pressed to find a modern microcontroller without an ARM at its heart.
The truth of this statement can be seen from the support ARM receives throughout the embedded industry. Talk to SoC IP vendors about the first bus architecture they target for their new products: it’s always ARM’s AMBA. Talk to real-time operating system (RTOS) companies (those which haven’t been bought by semiconductor companies) and they’ll tell you ARM support is the top priority for their new products too.
Realistically, any platform that seeks success in the programmable sector simply has to use an ARM CPU. The reason for this is continuity. Engineers do not fear change. Rather, they fear aggravation and wasted time. In terms of SoC design, it is extremely difficult to lure engineers away from their traditional platforms if you don’t offer the same CPU architectures, the same compilers, the same IDEs and debuggers, the same RTOS and the same middleware packages.
Put simply, software rules because no one wants to port it. With the exception of really low-end products that can perform dedicated embedded functions on trusty 8-bit devices like the 8051, any programmable platform that does not offer an ARM CPU is quickly pigeon-holed into the few remaining market segments that aren’t dominated by that architecture.