Choices, choices, choices

The initial selection of the processor type to be utilized during the design of an embedded system has the most dramatic impact on the overall system design.

Today’s embedded design engineers face a multitude of decisions during the design of an embedded system that determines the final success or failure of a project. But it is the initial selection of the processor type to be utilized that will have the most dramatic impact on the overall system design.

All embedded system designs require some type of central processor to control the inputs, outputs, and internal computation of the entire system. Some embedded systems may only require a signal internal processor or potentially multiple processors. An embedded design engineer can choose a microprocessor (CPU), microcontroller, DSP, or FPGA as the processor for an embedded system. Table 1 compares the pros and cons of each processor.

Processor type

Pros

Cons

Microprocessor

  • The most popular, most understood type of processor
  • Multiple types of OSs are available
  • Can be programmed from a multitude of high-level languages
  • Generational advancements in OSs and updated drivers can lead to difficulty supporting legacy products
  • Microprocessor families can be the most prone to obsolescence
  • OS typically prevents signals from being processed in real time

Microcontroller

  • The most simplistic type of processor
  • The most cost-effective type of processor
  • Typically has the most abundant online programming hardware support information
  • The clock and memory access limitations target this processor for only low-end embedded system usage
  • Very minimal, if any, OSs available
  • Programming languages are custom to each microcontroller manufacturer

DSP

  • Extremely efficient in processing math-intensive functions
  • Is ideally suited for performing digital signal processing in real time
  • Versatility and capabilities are continuing to advance
  • Embedded applications that truly benefit from a DSP can be limited
  • OS utilization within a DSP is custom and limited
  • An in-depth knowledge of digital signal processing is required to get the full potential of DSP ICs

FPGA

  • Multiple instances of all other types of processors can be replicated within the FPGA
  • The individual signal and processor routing within the FPGA is completely user configurable and reprogrammable
  • Can be programmed with a graphical schematic representation, state-machine diagram, and/or a text-based programming language
  • FPGA text-based programming languages are limited to VHDL or Verilog
  • Power-supply requirements for embedded applications can be steep
  • The choice of OS for virtual microprocessors programmed within an FPGA is limited

Table 1

The first step
The absolute first decision that must be made at the beginning of a system design is what type of processing unit will be employed. The system design team’s familiarity and background experience heavily influences this decision. Certain performance or systems requirements will automatic dictate which type of processor must be utilized. But in many embedded designs, the decision of which type of processor is the best choice is not that obvious. The risk of the embedded design team selecting the wrong processor for a particular application can be detrimental to the project. Typically, when this realization occurs during design it cannot be corrected and can jeopardize the overall success of the project.

Microprocessor or CPU
The microprocessor is by far the most popular variant of the processor choices. The system design requirements for an embedded operating systems such as Windows, Linux, DOS, and VxWorks (just a name a few) will automatically require a microprocessor. The microprocessor also is the most versatile for the amount of programming languages available to the software engineer. All of today’s high-level computer languages can be compiled to just about any variation of microprocessor. This software selection capability and the fact that the microprocessor is the most familiar of the processor choices makes it the most popular choice for embedded systems.

Microcontroller
The microcontroller is a basic version of the microprocessor. As the clock speeds and internal capabilities of the microprocessor became more advanced over time, a market demand for the simplistic, straightforward processor capabilities of the original 4- and 8-bit microprocessors remained. The microcontroller meets this need. The master clock speed, processing capabilities, and maximum internal/external memory access typically limits the type of embedded systems that microcontrollers are ideally suited for.

DSP
The DSP is a variation of the microprocessor developed specifically for digital signal processing applications. DSP’s true strength is processing math-intensive applications in real time. Processing video signals, audio signals, signal filtering, data compression, and artificial neural networks in real time are all prime examples of the types of digital signals and signal processing optimally suited for a DSP.

FPGA
The FPGA is the most versatile of all processor types. Single or multiple instances of all the previously defined processor types can be replicated within an FPGA. The reconfigurability of the FPGA allows it to be utilized in the most diverse of embedded applications. The FPGA allows for customized parallel digital signal processing and can be adapted to almost any digital application. Today’s FPGA can be configured with advanced DSP functions or programmed with 4, 8, 16, or 32-bit virtual microprocessors. The advantage of the FPGA is the capability of being a user-configurable digital system on chip. For example, a single FPGA can be programmed with multiple 32-bit microprocessors performing parallel processing and separate DSP signal manipulation in addition to custom digital signal manipulation.

Ensuring success
In today’s embedded market, having design experience with all processor variations and knowing their individual strengths and weaknesses based on previous successful embedded system designs is crucial. Customers rely on the embedded design team’s expertise to select a processor that provides the most efficient signal processing and ensures success in a system design.