In most embedded systems, processing is provided by one of two possible components: a microcontroller (MCU) or a microprocessor. MCUs are the mainstay of small, portable embedded systems, and MCU cores can be found in many common SoCs and modules. The challenge with MCUs is that they simply top out in terms of their available processing power, OS support, interface or I/O count, and availability of advanced high-data-rate interfaces.
When your MCU can’t provide the required interfaces or computing power, the answer is typically to level up to a microprocessor. In addition, if you were building a device like a single-board computer, you would want to use a microprocessor as these parts offer the interfaces needed to support the peripherals one expects to find in a typical computer. Here are some strategies you can use to identify the best microprocessor for your system.
Approach to Selecting a Microprocessor
Microprocessors are like very large microcontrollers, but without many things like memory built into the processor die. Microcontrollers generally attempt to reduce device size by packing many of the basic features a small embedded system would need onto the component die. Instead, a microprocessor will get access to many features that are needed for higher compute tasks using external components.
Selection strategy for a microprocessor can vary and it depends on the purpose of an embedded system:
- Will the system run on battery power?
- Does the design need to be future-proofed?
- Which interfaces are needed?
- Which peripherals are needed?
- What types of processing tasks will the system perform?
What Features Are Needed?
Microprocessors are intended for designing something close to a typical computer. When selecting a microprocessor, the designer will have to weigh the amount of compute required to complete certain processing tasks, which will generally have to be estimated based on the number of cores and maximum clock speed available in the system. Microprocessors will also have varying levels of support for an embedded OS; the OS you want to use can drive selection of the microprocessor and may limit your options.
Microprocessors enable access to other hardware and peripherals through their on-chip interfaces. They will usually have the following interfaces:
- DDR interfaces for memory
- PCIe (Gen2 or higher)
- Multiple USB ports
- Ethernet, typically up to 1 Gbps
- Display interface, such as HDMI
- Camera interface (CSI-2)
- I2S for audio
There will also be low-speed single-ended interfaces on microprocessors, but they will typically be used for controlling various components or they will be broken out to pin headers. The typical approach to selecting a microprocessor will start with the compute aspect listed above, followed by matching available interfaces to the needs of the system.
PCB Layout Effort
Microprocessors generally take similar layout effort as the largest/densest microcontrollers. Microprocessors can be physically larger but may be less dense, whereas some MCU SoCs will have very dense pinouts as they are targeted for use in mobile or wearable devices. This means with a microprocessor, you may be able to avoid the need for HDI design and manufacturing practices when working with a dense BGA.
Next, because I/O counts are generally higher in microprocessors, routing can be more dense and there will be more nets to route. Take a look at the routing shown below; these traces are all being routed to DRAM chips on the same layer with length tuning applied to satisfy timing requirements on DDR interfaces. It’s common to require this amount of routing on single-board computers just to reach all of the important device peripherals.
The final point surrounding the layout effort is ensuring power integrity. This primarily relies on designing the right stackup, as well as dedicating enough space to each power rail needed for a microprocessor. MCUs can typically run on a single power pin and voltage level, while microprocessors may use multiple rails to supply all the different interfaces in the system. Make sure the PCB stackup is designed to provide the appropriate level of power integrity.
Not Finding Something Useful? Try an FPGA
FPGAs and MCUs are the alternative options for use as primary processors in embedded systems. Typically, if your system will crunch enough data and require enough peripherals, then the use of an MCU will already have been excluded. An alternative option is an FPGA with the required cores and interfaces instantiated in the device’s interconnect fabric.
FPGAs provide a lot more freedom to develop the hardware architecture needed for an embedded system, but this requires greater knowledge and work from a developer. As long as a developer is willing to take on the task and vendor IP is available, a multi-core processor with exactly the desired interfaces could be instantiated in an FPGA. This is a suitable option when an off-the-shelf microprocessor does not have the required interfaces and feature support needed for your embedded requirements.
PCB design professionals trust the complete set of design and data management features in Allegro PCB Designer to help them build advanced digital systems. Allegro is the industry’s best PCB design and analysis software from Cadence, offering a range of product design features with a complete set of management and version control capabilities. Allegro users can access a complete set of schematic capture features, mixed-signal simulations in PSpice, and powerful CAD features, and much more.