Digital Signal Processing: Microcontrollers vs FPGAs vs CPLDs vs ASIC
Digital Signal Processing (DPS) is the method of representing real-world signals into digital form, meaning binary or other numeric values. Their applications have are of great significance and are widely use in today’s technology. For example, DPS devices are core part of cell phones, cars, security sensors, touch screens, hi-fi, computer animations in movies, medical scans such as MRIs, and audio manipulation, just to name a few.
Although not just limited to DPS applications, there are four main type of devices that are worth talking about since they make DPS applications possible, and they are: Microcontroller, FPGA, CPLD, ASIC. These devices have different system capabilities, level of performance, time-to-market, production costs and use different programming and simulation techniques. Because of all this different resources, deciding what type of devices should be used for what type projects can be somewhat difficult for hobbyist and wells as for engineers. All of them are popular so knowing pros and cons about each of them definitely doesn’t hurt.
Microcontroller
A microcontroller, or MCU, is a computer-on-a-chip capable of performing functions that are application-specific. They are made up of a processor, ROM, EEPROM, RAM, and I/O modules and unlike the other devices, they are inexpensive. They are incredibly useful and can be found digital technologies such as automobile control systems, power systems, robotics, appliances and remote controls. The learning curve is not as high as with FPGAs or CPLDs; most microcontrollers can be programmed in C or in assembly language. It is highly recommendable to know at least the basics of logic design to ease the process. Unlike FPGAs where the design run in parallel manner, microcontrollers, as all CPUs based architectures, run sequentially. In other words, modules in an FPGA design all run at the same time based on a clock input, while microcontrollers behave like normal software, they run instructions based on their position in memory.
FPGA
Field-programmable gate array, or simply FPGA, are devices containing logic blocks, which are usually made up 4-input LUTs(Lookup Tables) and a flip-flop. Together, all the logic blocks can perform any digital function. They are very powerful devices and are used in high performance computer applications where speed of the process is key to the success of the application. Medical MRIs, aerospace and defense technology, and bioinformatics greatly make use this technology. Since they are programmed using Verilog or VHDL (Hardware Description Languages), knowledge in logic design is necessary. Its important to note that FPGAs, just like microprocessors, can also be used for small and medium size electronic projects such building touch screens and appliances.
CPLD
CPLDs, or complex programmable logic devices, are similar but less complex than FPGAs. They are made up of macro cells (or PLDs) whose inputs and outputs are connected to a central interconnection matrix. CPLD’s main advantage over FPGAs though, its that they have on-chip non-volatile memory. This means that CPLDs can retain information even when not powered. They have smaller amount of gates available and are cheaper than most FPGAs.
ASIC
ASIC, or application-specific integrated circuit, is really just a system-on-a-chip customized for an specific purpose. They may contain one or more processors, memory blocks of ROM, RAM, EEPROM and Flash, ASIC design is only done by tech companies such as it requires many engineers working on the design and may others working on ASIC verification. They are a used instead of general purpose FPGAs when a high volume of devices will be manufactured since this reduces production costs. As with FPGAs and CPLD, designers of ASICs use Hardware Description Languages to describe the functions. Verilog is the most popular HDL in high tech companies and it is easier and more flexible to use than VHDL.


[3 votes, avg: 4.33 / 5]
June 24th, 2010 at 8:36 am
I actually knew about the majority of of this, but having said that, I still think it is useful. Nice job!