You are on page 1of 6

Microcontroller, Microprocessor, DSP and FPGA

Microprocessor
Central processing unit (CPU) on a single or few integrated circuits (IC)
The purpose of a microprocessor is to accept digital data as input, process it as per the
instructions, and then provide the output. This is known as sequential digital logic.
The microprocessor has internal memory and operates basically on the binary system.
Most general purpose microprocessors are present in personal computers.
They are often used for computation, text editing, multimedia display, and
communication over a network.
Other microprocessors are part of embedded systems. These provide digital control over
practically any technology, such as appliances, automobiles, cell phones, industrial
process control, etc.

Micro-Controller
Micro-controller is a computer on-a-chip which is optimized to manage electric
gadgets.
It is a device that includes microprocessor, memory and input/output devices on a
single chip. It is said to be the heart of an embedded system.
Microcontrollers are intended to perform particular operations which help to control
particular systems
Microcontrollers are like small computer in which a CPU, memory unit like RAM and
ROM, I/O peripherals, timers, counters, are embedded in one integrated circuit
They are easily interfaced to external peripherals like serial ports, ADC, DAC, Bluetooth,
Wi-Fi, etc. Here, the interfacing process is faster as compared to the microprocessor
interfacing.
Most of the times, microcontrollers use RISC or CISC architecture to perform a task in
different machines.

Microcontrollers are designed for embedded applications. They are often used in
automatically controlled products and devices, such as automobile engine control
systems, implantable medical devices, remote controls, office machines, appliances,
power tools, toys and other embedded systems.
Microprocessor

Microcontroller

System

It is the heart of the computer


system.

It is the heart of an embedded


system.

Contains

It contains CPU, general


purpose registers, stack
pointers, program counters,
clock timing and interrupt
circuits.

It contains the circuitry of


microprocessor and has built-in
ROM, RAM, I/O devices,
timers and counters.

Data memory

It has many instructions to


move data between memory
and CPU.

It has one or two instructions to


move data between memory
and CPU.

Circuit

It is large.

It is small.

Cost

Cost of the entire system


increases.

Cost of the entire system is


low.

Bit instructions

It has one or two bit handling


instructions.

It has many bit handling


instructions.

Register numbers

It has less number of registers;


hence the operations are
memory based.

It has more number of


registers; hence the programs
are easier to write.

Storage

It is based on Von Neumann


architecture, where the
program and data are stored in
the same memory module.

It is based on the Harvard


architecture, where the
program memory and data
memory are stored in separate
module.

Time

Access time for memory and


I/O devices is more.

Less access time for built-in


memory and I/O devices.

Hardware

It requires more hardware.

It requires less hardware.

Key difference
The difference between a microprocessor and a microcontroller lies in the presence of
RAM, ROM, and other peripherals in a microcontroller. A microprocessor only contains
the CPU and lacks the other components.

DSP Processor
A particular type of microprocessor.
DSP stands for digital signal processing. It is basically any signal processing that is done on a
digital signal or information signal.
A DSP processor is a specialized microprocessor that has an architecture optimized for the
operational needs of digital signal processing.
DSP aims to modify or improve the signal.
DSP includes subfields like communication signals processing, radar signal processing, sensor
array processing, digital image processing, etc.
The main goal of a DSP processor is to measure, filter and/or compress digital or analog signals.
It does this by converting the signal from a real-world analog signal to a digital form. In order
to convert the signal it uses a digital-to-analog converter (DAC).
Digital signal processing algorithms run on various platforms, such as general purpose
microprocessors and standard computers; specialized processors called digital signal
processors (DSPs); purpose-built hardware such as application-specific integrated circuit
(ASICs) and field-programmable gate arrays (FPGAs); Digital Signal Controllers; and stream
processing for traditional DSP or graphics processing applications, such as image, video.
DSP Vs. Microprocessor
The main difference between a DSP and a microprocessor is that a DSP processor has features
designed to support high-performance, repetitive, numerically intensive tasks. DSP processors
are designed specifically to perform large numbers of complex arithmetic calculations and as
quickly as possible. They are often used in applications such as image processing, speech
recognition and telecommunications.
As compared to general microprocessors, DSP processors are more efficient at performing basic
arithmetic operations, especially multiplication.
DSP Vs. Microcontroller
The advantage of using a microcontroller is that it makes it economical to digitally control
devices and processes. It achieves this as it is more economical than using a design that uses a
separate microprocessor, memory, and input/output devices

Some differences between DSP and Microcontroller:

DSPs often don't have a flash program memory. They need the software to be 'loaded' into
them. Whereas, microcontrollers have a non power off erasable program memory inside,
some with EPROM store capabilities.

DSPs are much faster for integer mathematics operations, whereas many microcontrollers
do not have the hardware.

DSPs are much faster for floating point operations. In microcontrollers, this has to be
done in software.

DSPs are oriented to be an input/output device with 'fast calculating machine'.

Microcontrollers are a multi-feature device with several ways of interfacing with the
world, however none are the fastest.

DSPs are not designed to be a 'robust' device. They need a well-designed board to work
properly. Microcontrollers can work on a Test Board.

Microprocessors have many instructions oriented to multimedia, memory copying


features, etc., that DSPs dont.

DSPs are a fast calculator microprocessor, that is very effective for computing calculations
and moving data, whereas, microcontrollers are a more flexible device with more features

FPGA
An FPGA is an uncommitted "sea of gates". The device is programmed by connecting the gates
together to form multipliers, registers, adders and so forth
FPGAs have included Multipliers especially for performing DSP tasks more efficiently.

Determine the best use of FPGAs and DSPs


for signal processing applications
1. Performance
The No. of digitized samples that can be processed in a given amount of time
FPGA (500 M SAMPLE/Sec) higher sample rate than DSP (4 M SAMPLE/Sec)

2. Design Flexibility
DSP: provide a hardware architecture that is FIXED
FPGA: hardware reconfigurable, The architecture can be changed multiple time (As the
Design or Algorithm change)

3. Design Effort
Design effort relates to the ease with which the capabilities within the device can be
accessed and how fast a device can be taken to market
DSPs provide the fastest route to market.
FPGAs were typically programmed using hardware description languages (HDLs) such as
VHDL and Verilog , also you can use MATLAB and Simulink

4. Power consumption
DSPs that feature low-device power, both static (W) and dynamic (mW), are key
concerns. For such applications, DSPs, or application-specific derivatives of DSPs,
continue to offer the best performance/power ratio for today's needs. FPGAs are not suited
for battery-operated applications because static power alone can typically be as much as
a watt.

Where They Excel


When sample rates grow above a few MHz, a DSP has to work very hard to transfer the data
without any loss.
A DSP is optimized for use of external memory, so a large data set can be used in the
processing. FPGAs have a limited amount of internal storage so need to operate on smaller data
sets.

The DSP can take a standard C program and run it. This C code can have a high level of
branching and decision making for example, the protocol stacks of communications systems.
This is difficult to implement within an FPGA.
Most signal processing systems start life as a block diagram of some sort. Actually translating
the block diagram to the FPGA may well be simpler than converting it to C code for the DSP.

Making a Choice

1. What is the sampling rate of this part of the system? If it is more than a few MHz, FPGA is
the natural choice.
2. Is your system already coded in C? If so, a DSP may implement it directly. It may not be the
highest performance solution, but it will be quick to develop.

3. What is the data rate of the system? If it is more than perhaps 20-30Mbyte/second, then
FPGA will handle it better.

4. How many conditional operations are there? If there are none, FPGA is perfect. If there are
many, a software implementation may be better.
5. Does your system use floating point? If so, this is a factor in favour of the programmable

DSP. None of the Xilinx cores support floating point today, although you can construct your
own.

6. Are libraries available for what you want to do? Both DSP & FPGA offer libraries for basic
building blocks like FIRs or FFTs. However, more complex components may not be available,
and this could sway your decision to one approach or the other.

You might also like