a general question

Kubik,

Perhaps if I catalog what devices use FPGAs?

- servers, routers, switches -- basically all of the internet infrastructure serious network processing is done by FPGAs

- cellular basestations (pretty much all of them are Xilinx FPGAs)

- instrumentation (scopes, data test sets, network and spectrum analyzers, etc.)

- fixed wireline and fiber optic systems, transmission equipments, digital switches, microwave radios, -- pretty much the entire telecom infrastructure is powered by FPGAs

- CAT scan, radiology scanners, etc

- high end big screen TV's

- set top boxes (a small number of them, most have volume where an ASIC is a much better choice)

- automotive navigation and entertainment systems

- storage systems

- extreme DSP processing systems

- military and commercial security, encryption, and so on systems

- in flight entertainment systems

- military control systems for fighter jets

- autonomous military vehicles

- smart bombs, smart bullets

- software defined radio systems

- satellite control systems

- the Mars Rovers ....

oh, and ASIC prototyping. Probably one of the smallest market for FPGAs today.

With the IBM 405PPC embedded in our parts, we now have almost half of our customers using the uP in the FPGA for things they used to use a separate uP for as well.

Perhaps, the question should ask, is where is NOT a good application for a FPGA?

The answer is anything that is fixed, known, defined, and of a huge volume can be done less expesively with a custom ASIC (like a playstation or x-box -- although they used the IBM PPC, too). Also anything that does not need the massive parallel processing power a FPGA can deliver can probably be done cheaper by your uP.

So, when a uP just can't handle it (like thousands of simultaenous convesations being received by a base station), that is where FPGAs shine,

Austin

formatting link

kubik wrote:

Reply to
austin
Loading thread data ...

I'm a beginner in this field so forgive me if what seems interesting for me can seem stupid for others. I'm approaching the fpga field cause i' ve read many times that the fpga can reduce the time to market and reduce the costs of the system for low volume applications. Surfing on the web i can find easily PC-104 platform for more or less

100$ that have a 300MHz cpu clock etc etc. If i search for an fpga board with the same price i will never reach comparable performance, or quantity of hardware. So i would like to know which are the markets or the applications where an fpga can represent a real gain or be necessary.?

Are there useful only for that application where the performance is not a goal?

Are there useful only for research and prototyping?

Reply to
kubik

I'm a beginner in this field so forgive me if what seems interesting for me can seem stupid for others. I'm approaching the fpga field cause i' ve read many times that the fpga can reduce the time to market and reduce the costs of the system for low volume applications. Surfing on the web i can find easily PC-104 platform for more or less

100$ that have a 300MHz cpu clock etc etc. If i search for an fpga board with the same price i will never reach comparable performance, or quantity of hardware. So i would like to know which are the markets or the applications where an fpga can represent a real gain or be necessary.?

Are there useful only for that application where the performance is not a goal?

Are there useful only for research and prototyping?

Reply to
kubik

"kubik" schrieb im Newsbeitrag news: snipped-for-privacy@interfree.it...

So what do you think a 300 MHz CPU can do?? Clock speed isn't everything. A function (algorithm) that may require a 300 MHz CPU can be done in a small

100k gates FPGA running at 50 MHz, consuming only a fraction of power that the CPU requires.

??? To say such things, you need a deep(er) understanding how things work. How a function is implemented in a CPU and a FPGA. THEN!!! you can compare. But we all know too good, that so wannabe engineers or marketing or whatever gus just compare some numbers. Hmmm . . . .

OK, speaking of my daily work, we use FPGAs to

-- connect more or less complex interfaces between ASICs

-- implement "advanced" glue logic in digital systems, ranging from plain chip select decoders, over FIFOs, Bus converters etc.

-- data encoding/decoding

-- ASIC replacement for "old" ICs

Define performance. This can be processing power, power consumption, density, time-to-market, development risk/costs. For my company, ASICs are not possible for all the high level glue logic, FPGAs are the only way to do is economical.

No, but definitely nice there.

Regards Falk

Reply to
Falk Brunner

Howdy kubik,

Never? Here is but one link:

formatting link

But I suspect that wasn't really your question. The answer to your question is that you need to outline your application, and then determine what the best solution for your application is. If you need a general purpose, software programmable device, chances are you want a microprocessor or microcontroller. If you need to do a lot of signal processing, perhaps you want a DSP.

where

For such a generalized question, I can offer only a generalized answer: FPGA's make sense in any application that there is not already a HIGHLY specialized, high volume chip.

Said another way, it seems like you are taking FPGA's, which are hardware devices that can be made into almost anything, and comparing them against a software programmable processors, which are actually highly specialized devices designed to run a few hundred software instructions and nothing more.

Absolutely not. Performance is all about how something is designed. Let's play with your 300 MHz number and assume that is as fast as an FPGA can go (which is no longer true... we have a little bit of logic running over 600 MHz). How many of those clock cycles does it take a software processor to perform an operation? 3? 6? more? With an FPGA you have the power to perform an operation every clock cycle if you'd like. And if you need more processing power or throughput, you can make your busses wider, or you can do more parallel processing.

Let's say you want to take ten 1 GbE ports and aggregate them up to a single 10 GbE port. An FPGA can do it with ease while a software programmable processor would be swamped with even 1 Gbps, much less then. But guess what, there are highly specialized, high volume chips to do this too... so the FPGA may not be the right choice unless you are wanting to do some other custom stuff.

Absolutely not. They are used in an numerous commercial applications... everything from HDTV's to cars to communications systems to aircraft, and everything between.

Have fun,

Marc

Reply to
Marc Randolph

If you can find a board that does you need for $100 dollars, buy it, don't redesign it.

I expect that that PC-104 platform board has an fpga on it also. Comparing the price of a low-volume development board to the price of a commodity product is not reasonable.

FPGAs are necessary when your job is to design and produce 1K to 100K boards, that do *not* already exist, and finish before your competitors do.

-- Mike Treseler

Reply to
Mike Treseler

The $100 CPU board can do some problems better and easier than the $100 FPGA board:

formatting link

Then again, for some problems, the $100 FPGA board can blow the doors off that $100 CPU board. The difference is the problem, and how the algorithm is written to solve it. Here is an example that is just a bit overblown:

Remember that CPU's do one thing at a time. Some instructions take one clock cycle, some may take more. So a problem might look like:

Multiply. Add. Divide. If (this thing) then (do something).

FPGAs can do many things at the same time in a pipeline. That is, each function is designed to take one input and deliver one output per clock cycle. While it takes multiple clocks to get the first answer, each answer after that arrives one clock cycle later. Note this will allow the FPGA to do this problem faster than the CPU:

Multiply. Add. Divide. If (this thing) then (do something).

Also, the $100 FPGA board has twelve multipliers. That means we could do many things in parallel:

Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something). Multiply. Add. Divide. If (this thing) then (do something).

In this example, the CPU takes multiple clocks (5 or more) to produce one answer. The FPGA produces twelve answers per clock. Sure, the CPU's clock is twice as fast. The CPU takes five (or more) instructions to produce an answer. The FPGA is producing 12 answers per clock. The result is the FPGA is producing 30 times more answers per second.

There are several reasons why this example is overblown and oversimplified. The first is that it would be a hard problem to get enough data into and out of the FPGA to keep such a calculation supplied with data. The CPU has a similar problem. The second is that I'm not that all this logic would all fit into a 3S200. Might need settle for only 4X to 10X faster than the CPU. Which is very important for some problems, and doesn't matter at all for others.

DSP, high speed real time, networking...

In my experience, at least, FPGAs are mostly used for applications where performance is the goal.

They are useful for that as well.

-- Phil Hays Phil-hays at posting domain (- .net + .com) should work for email

Reply to
Phil Hays

Reply to
kubik

Reply to
kubik

Compared with an ASIC, an FPGA has a shorter time to market provided you have a competent designer. This doesn't necessarily hold true when comparing it for an application that can run on a microprocessor.

The FPGA cost is relative. A single FPGA can often take the place of multiple high end DSP chips, in which case it quickly becomes cost competitive. An FPGA rarely makes sense in applications that can be handled by a single microprocessor. In order for the FPGA to shine, you need an application that requires too much processing horsepower for a single microprocessor to handle.

Video, digital radio, mil-aero applications, lower volume high complexity apps like cellular basestations.

No, quite the contrary. FPGAs are best in applications where performance rules out microprocessors and economics rules out ASICs

--
--Ray Andraka, P.E.
President, the Andraka Consulting Group, Inc.
401/884-7930     Fax 401/884-7950
email ray@andraka.com  
http://www.andraka.com  

 "They that give up essential liberty to obtain a little 
  temporary safety deserve neither liberty nor safety."
                                          -Benjamin Franklin, 1759
Reply to
Ray Andraka

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.