Forums

DSP vs Firmware

Started by Peter Choi July 29, 2004
Hello,

What are the advantages of using a DSP chip when someone can write C code to
do DSP and then have it compiled onto a FPGA or some other fast MIPS chips?
Isn't FPGA faster anyway?


Peter Choi wrote:

> Hello, > > What are the advantages of using a DSP chip when someone can write C code to > do DSP and then have it compiled onto a FPGA or some other fast MIPS chips? > Isn't FPGA faster anyway? > >
Because when you take that C code and pour it into a DSP your board will be much smaller and your code will require many fewer debugging hours before it works. Also, in spite of the promise of "just use C" you'll need a _lot_ of hardware knowledge to make it work efficiently in an FPGA; at the moment it's easier to find folk who can program for DSP's than for logic. Using an FPGA or ASIC is good if you really need the speed, but otherwise I'll take a processor any time. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Peter Choi wrote:

> Hello, > > What are the advantages of using a DSP chip when someone can write C code to > do DSP and then have it compiled onto a FPGA or some other fast MIPS chips? > Isn't FPGA faster anyway?
Try it both ways if you really want to know. You seem to base your apparent opinion on advertising claims rather than on anyone's actual experience. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
"Peter Choi" <choi@mecca.ca> wrote in message
news:jW9Oc.130173$Mr4.68413@pd7tw1no...
> Hello, > > What are the advantages of using a DSP chip when someone can write C code
to
> do DSP and then have it compiled onto a FPGA or some other fast MIPS
chips?
> Isn't FPGA faster anyway?
A significant portion of a project's development time is used in debugging, testing, integration etc. I suspect that using C and compiling it into an FPGA has a lot of megatives in the above areas as opposed to using a DSP chip (esp. since this technology is so new). You will probably not end up getting a very optimized FPGA design anyways - so you'll probably be spending atleast twice as much on the FPGA as you would've if you'd used, say, VHDL. Your FPGA is also going to suck much more power than a DSP. So your cost and power usage for the part is also at a disadvantage. Speed (in terms of MIPS, not product development time) is your only advantage. There is no point in using a 100 MIPS FPGA machine where only a 20 MIPS DSP engine is necessary. So a lot depends on the target application and system needs. Cheers Bhaskar
"Peter Choi" <choi@mecca.ca> wrote in message
news:jW9Oc.130173$Mr4.68413@pd7tw1no...
> Hello, > > What are the advantages of using a DSP chip when someone can write C code
to
> do DSP and then have it compiled onto a FPGA or some other fast MIPS
chips?
> Isn't FPGA faster anyway?
Maybe it has something to do with unit production cost or cost of goods (COGS). How much does an FPGA cost that will do the job? How much does a DSP chip cost that will do the job? (Less I'll bet!). Also, how much board real estate is needed? Less for the DSP I could imagine... As others have pointed out, it might take longer to make the FPGA work efficiently. I'm not an expert in that area. What I do know is that delaying time-to-market can cost tremendously. Example: A new product is in development in July 2004. When it hits the market, it will live until July 2006 at which time the sales will fall drastically because of new technology taking its place - either the same function for less COGS or more function for the same money or something in between. So, if it hits the market in January of 2005, it will live for 18 months. But, if it hits the market in April of 2005, it will live for only 15 months. Assuming constant sales for simplicity, the 3-month delay in product introduction will cost 1/6 or 17% of potential total revenue. That's a lot of money - or it should be!! Early introduction might increase the assumed level sales as well. In addition, 3 months of additional development costs more money too. The 3-month delay can be the difference between a profitable product and a loser. Fred
Hello,

Oh I didn't know FPGA uses more power than a DSP.  I thought FPGA would use
less since you build only the necessary logic for it.

"Bhaskar Thiagarajan" <bhaskart@my-deja.com> wrote in message
news:2msv88Fqv0iqU1@uni-berlin.de...
> "Peter Choi" <choi@mecca.ca> wrote in message > news:jW9Oc.130173$Mr4.68413@pd7tw1no... > > Hello, > > > > What are the advantages of using a DSP chip when someone can write C
code
> to > > do DSP and then have it compiled onto a FPGA or some other fast MIPS > chips? > > Isn't FPGA faster anyway? > > A significant portion of a project's development time is used in
debugging,
> testing, integration etc. I suspect that using C and compiling it into an > FPGA has a lot of megatives in the above areas as opposed to using a DSP > chip (esp. since this technology is so new). You will probably not end up > getting a very optimized FPGA design anyways - so you'll probably be > spending atleast twice as much on the FPGA as you would've if you'd used, > say, VHDL. Your FPGA is also going to suck much more power than a DSP. So > your cost and power usage for the part is also at a disadvantage. Speed
(in
> terms of MIPS, not product development time) is your only advantage. > > There is no point in using a 100 MIPS FPGA machine where only a 20 MIPS
DSP
> engine is necessary. So a lot depends on the target application and system > needs. > > Cheers > Bhaskar > >
Hello,

Are there anything that can not be done on an FPGA?  Why would the FPGA
based solution has a larger board than the DSP based solution?  I thought
the FPGA can even be programmed with memory, extra I/O, etc.

"Tim Wescott" <tim@wescottnospamdesign.com> wrote in message
news:10gico2lvn2q2c@corp.supernews.com...
> Peter Choi wrote: > > > Hello, > > > > What are the advantages of using a DSP chip when someone can write C
code to
> > do DSP and then have it compiled onto a FPGA or some other fast MIPS
chips?
> > Isn't FPGA faster anyway? > > > > > > Because when you take that C code and pour it into a DSP your board will > be much smaller and your code will require many fewer debugging hours > before it works. Also, in spite of the promise of "just use C" you'll > need a _lot_ of hardware knowledge to make it work efficiently in an > FPGA; at the moment it's easier to find folk who can program for DSP's > than for logic. > > Using an FPGA or ASIC is good if you really need the speed, but > otherwise I'll take a processor any time. > > -- > > Tim Wescott > Wescott Design Services > http://www.wescottdesign.com
Peter Choi wrote:
> Hello, > > Are there anything that can not be done on an FPGA? Why would the FPGA > based solution has a larger board than the DSP based solution? I thought > the FPGA can even be programmed with memory, extra I/O, etc. > > "Tim Wescott" <tim@wescottnospamdesign.com> wrote in message > news:10gico2lvn2q2c@corp.supernews.com... > >>Peter Choi wrote: >> >> >>>Hello, >>> >>>What are the advantages of using a DSP chip when someone can write C > > code to > >>>do DSP and then have it compiled onto a FPGA or some other fast MIPS > > chips? > >>>Isn't FPGA faster anyway? >>> >>> >> >>Because when you take that C code and pour it into a DSP your board will >>be much smaller and your code will require many fewer debugging hours >>before it works. Also, in spite of the promise of "just use C" you'll >>need a _lot_ of hardware knowledge to make it work efficiently in an >>FPGA; at the moment it's easier to find folk who can program for DSP's >>than for logic. >> >>Using an FPGA or ASIC is good if you really need the speed, but >>otherwise I'll take a processor any time. >> >>-- >> >>Tim Wescott >>Wescott Design Services >>http://www.wescottdesign.com > > >
Because an FPGA is field programmable you need a lot more chip space to do the same function in it than you do in dedicated logic. So when you emulate that 8051 in the FPGA you end up using as much as 10 times the chip area. This is why the newer FPGA's have gone over to sprinkling dedicated logic like RAM and multiplier blocks into their architecture -- all their customers are using those functions, and it's much more economical to implement them as dedicated logic rather than as functions in Verilog (or C). If you really want to understand this there have been some good articles in EDN and other professional electronics publications. I suggest you do some digging on the web, including the FPGA vendor's websites. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
"Tim Wescott" <tim@wescottnospamdesign.com> wrote in message
news:10gkscd310g4q40@corp.supernews.com...
> Peter Choi wrote: > > Hello, > > > > Are there anything that can not be done on an FPGA? Why would the FPGA > > based solution has a larger board than the DSP based solution? I thought > > the FPGA can even be programmed with memory, extra I/O, etc. > > Because an FPGA is field programmable you need a lot more chip space to > do the same function in it than you do in dedicated logic. So when you > emulate that 8051 in the FPGA you end up using as much as 10 times the > chip area. This is why the newer FPGA's have gone over to sprinkling > dedicated logic like RAM and multiplier blocks into their architecture > -- all their customers are using those functions, and it's much more > economical to implement them as dedicated logic rather than as functions > in Verilog (or C).
Good comments, Tim. To add to this, the only time the FPGA would be a win in size/power would be when the required processing is dramatically different than any standard DSP could offer. As a simple example, if you were dealing with 5-bit data, you could design a 5-bit DSP in an FPGA with only the specific functions you wanted. But as Tim pointed out, there is a considerable overhead in having the logic be programmable rather than fixed. But in this example, if you only needed to do a simple algorithm, it might pay off. But in general, unless you can save a whole lot of logic, it's a net loss. The places where FPGAs do seem to get used for DSP are in very high sample rate applications, where traditional DSPs just aren't fast enough (e.g. RF). In this case, the data width is usually quite small as well, which decreases the required FPGA logic, and the algorithms are often simple, like a static FIR filter. A generalization: FPGA-friendly : high sample rate, narrow data path, fairly simple algorithms (no complex control code/branching/special cases), static functionality/few real-time control inputs DSP-friendly: lower sample rates, wide data path, complex algorithms (complex control, branching, special cases), dynamic functionality/many real-time control inputs As one further example, first consider designing a fixed FIR filter into an FPGA. Not too bad. Then consider designing a dynamic pitch-shift algorithm with real-time user-input in an FPGA. Yikes!
"Jon Harris" <goldentully@hotmail.com> wrote in message
news:2mvo7uFrdqosU1@uni-berlin.de...
> "Tim Wescott" <tim@wescottnospamdesign.com> wrote in message > news:10gkscd310g4q40@corp.supernews.com... > > The places where FPGAs do seem to get used for DSP are in very high sample
rate
> applications, where traditional DSPs just aren't fast enough (e.g. RF).
In this
> case, the data width is usually quite small as well, which decreases the > required FPGA logic, and the algorithms are often simple, like a static
FIR
> filter.
Also in video processing ..... where the two approaches tend to compete a bit more. If there are complex algorithms involved then a high-powered DSP might be indicated. Otherwise, a lot of video can nicely be done in an FPGA. Come to think of it, I don't hear much about the TMS320C6000 series here in comp.dsp. Any experience here? 66MHz FPGA designs do well in video applications and have likely gone up in speed in the last 5 years since we were doing those designs. I'm not familiar with the applications of FPGAs in cell phones .... but I'm pretty sure that the big FPGAs wouldn't fit! Fred