Are hybrid DSP/MCUs just a fad or here to stay? Has the DSP had its day when a DSC with a PLD can do the job as well?
Are hybrid DSP/MCUs just a fad or here to stay? Has the DSP had its day when a DSC with a PLD can do the job as well?
As for SOPC solution implemented with FPGA, Altera's SOPC solution is based on Nios/NiosII soft-core embedded MCU, Xilinx's SOPC solution is based on PowerPC Hard-core MCU.
In fact, FPGA programming is to design and debug hardware circuit with software development tools, it includes bottom level hardware design. However, DSP & MCU programming is merely software design. The difficulty and complexity of FPGA programming is much worse than that of DSP & MCU programming .
In my experience having complete control and understanding of the physical aspects of the a design, make it easier to produce a more architecturally sound product.
The benefits being a lack or redundancy, simplicity, easier debugging and the ability to react to changing conditions through fast iterations, not just in software but in the actual hardware architecture.
The FPGA supports these requirements and allows you to build your own intellectual property whilst not becoming reliant on the architectural constraints, whims and foibles of the supplier of your MCU or DSP.
You can pay for this, literally, in the cost of the devices in comparison to a similar function in an MCU or DSP solution, but I have found that what you may lose in margin is more than made up for in versatility and the ability to build intrinsic value in your business.
I don't believe that there is or ever will be a simple answer to this as each approach is optimised for a different application.
FPGAs give massive flexibility both in terms of their capabilities and the option to redesing at a hardware level if the specification changes. However due to the fine grained approach every implementation is wastefull of silicon resource and so will have higher cost and higher power dissipation.
DSP win where pure performance on complex algorithms is the key requirement, especially where floating point arithmetic is needed.
DSCs win when you are looking for a jack of all trades, some low level control, real world I/O and data processing but at low cost and low power.
One other emerging area is massively parallel processing (see Ambric or Picochip). These offer programming in a high level software language and performance comparable to top of the range DSPs of FPGA.
Pete I agree with you, but the point of my post was to try to make engineers realise that the choice of a component cannot be made for purely engineering reasons.
Designers need to assess the impact of their decisions on a business as a whole.
The question of which technology is most appropriate is age-old. When I made a presentation on this topic at the International Conference on Signal Processing Applications & Technology in 2000 the session was standing room only. My paper was inspired by analyzing how I made the decision as to which technology was appropriate (you can find my paper here: http://www.techonline.com/electronics_directory/techpaper/193103740;jsessionid=T3S5J3SJGT4WKQSNDLRSKHSCJUNN2JVN). It dawned on me that my decision depended solely on the attributes of the end product and not on attributes of the technology used.
I identified four end-product attributes that, when used in combination, discriminated between solutions. The attributes are: Speed, Math, Decisions, and Complexity. Pick the most important of these attributes of your product and I can tell you the most appropriate technology.
Micros shine in Decisions and Complexity. They have huge memory reach to store incredible repertoires of functionality that is switched with the speed of a branch instruction. FPGA's shine at speed and math. Why not? Entire algorithms can be parallel-wired and executed in a single cycle with proper pipelining. DSPs are decent across-the-board performers and not the best in any one dimension. The DSCs marginally improve DSP performance in decisions and complexity but are not usually the fastest DSPs.
About the time I made that presentation, the hybrid microcontroller-in-FPGAs were becoming available. Altera had announced its Exalibur and NIOS-based devices. Atmel already had introducted its FPSLIC. I reasoned that these SoC solutions would be winners. Little did I imagine how powerful and popular the soft-cores would become!
As time passed, some engineers argued that a DSP is better than I said. They said a DSP was built for math and can't be anything less than the highest performer. I listened and considered their point and then realized a salient point I wish I made.
For certain, an FPGA can outperform a DSP in any single math application. However, two factors mitigate choosing an FPGA over a DSP for math. One is whether the math is needed 100% of the time. The real estate of an FPGA is expensive if not always used. There is often a way to pipeline the processing to make the DSP adequate. Second, if the number of math functions is large. It is time consuming to repurpose an FPGA. A DSP, like a micro, can be repurposed for different math functionality with the simplicity of a branch.
What do you say?