Why FPGAs?

Recently I began to ask myself whether FPGAs will start to play a major role in embedded field, in fact in those applications requiring fast processing power, they already have a big word to say.

So, which advantages can they bring into the play? Well I think the answer to this question resides in the short history about foundation of Xilinx company on Wikipedia:

While working for Zilog, Freeman wanted to create chips that acted like a blank tape, allowing users to program the technology themselves. At the time, the concept was paradigm-changing.[5] “The concept required lots of transistors and, at that time, transistors were considered extremely precious – people thought that Ross’s idea was pretty far out”, said Xilinx Fellow Bill Carter, who when hired in 1984 as the first IC designer was the company’s eighth employee

But nowadays silicon became really cheap and that vision practically opened the gates of a new era in which hardware resources could be considered infinite in terms of speed and space … As you may have guessed this implies a significant concept shift, almost completely breaking with the ancient paradigm of microcontroller programming and sequential execution flow of programs, but let’s see what could be the advantages:

1. FPGA are much more suitable for real-time systems than microcontrollers, I mean they offer much more processing power due to their basic nature of configurable system. When speaking of FPGA people usually refer to things like “20 channels 10Gbps serial ports”. In fact for some data processing (video, telecom ..) applications microcontrollers cannot be used at all, they simply do not cope with the high loads of data. Let’s simply call this advantage as SPEED

2. The availability of many of-the-shelf FPGA cores. Many HW designs of digital circuits are already available in a form of hardware description language (Verilog or VHDL). Depending on the license type (there is, for example,this invaluable resource, that offers plenty of free designs) many ready-to-use designs  can be directly integrated into your project. In fact the ISE tool from Xilinx offers good support of integrating whatever HW module is needed. Let’s call this advantage MODULARITY, even if this word may not presicisely describe this feature

3. Complete possibility of HW re-use and configurability, which never existed before (in the world of microcontrollers, I mean). An FPGA board can support dozens of peripherals which otherwise would fit in couple of microcontrollers.  Everything, starting from the addresses and data bus, from number of caches, can be configured. Let’s call this PRO as CONFIGURABILITY
4. As you probably noticed the concept as well as design flow in case of programmable logic circuits changes quite a lot meaning implicitly a steeper learning curve (this can be considered a disadvantage, which I hope we’ll talk in a next post, because obviously there are some drawbacks, otherwise everybody will use only FPGAs) Xilinx indeed offers good support for this, I mean in terms of tools, documentation, trainings, they even have some academic programs teaching their technologies … On the other hand side the problem is that their tools (I am referring to ISE and XPS) require quite a lot of computer resources, so you really have to have a powerful PC not wait hours while compiling or synthesizing the HDL code. Let’s call this as GOOD SUPPORT.

5. I will refer here to an advantage that I’ll later call cost. It is not that the cost per unit in case of an FPGA is lower than one of microcontroller, by contrast I think micro’s are still cheaper to produce, even if the price-per-unit of FPGAs lowered considerably. People usually are speaking about time-to-market and NRE (non-recurring engineering) costs, which really are the big advantage that FPGAs bring into the scene. What are these 2 things saying?

NRE expense, basically means that the costs for incremental HW changes are virtually negligible, compared to microcontrollers or ASIC, as a consequence the general\overall costs may be lower.  Time-to-market, as you all may know, is the time until a product from the concept phase becomes reality, is delivered to the end-user. Probably I’ll have to be careful with this kind of info since I think this strongly depends on the industry field. If we are talking about automotive, where mass production can reach hundreds of thousands of pieces

(there for example car manufacturers that may produce several hundreds of cars per day), then maybe the price per unit is very important, and you would prefer to use a microcontroller which is some $ cheaper than an FPGA

That’s it for now … maybe is time to discuss about disadvantages, but in a next post.


3 Responses to Why FPGAs?

  1. kellogs says:

    You make it sound like tomorrow’s CPUs will be sold as just Verilog designs to the users which will in turn re-program their FPGAs. Lolol

    • Sorry if I gave you this impression and that I stressed too much on FPGAs miraculous benefits 🙂 nevertheless this was not my intention
      Anyhow there are applications in which they really started to have an important word to say …
      But don’t hurry up to draw the line until you read the next post about “where NOT to use them” or “where FPGAs would not fit” 🙂

      • kellogs says:

        All right man, I was not criticizing.. just having a lol moment and this article came in front of my eyes at that time.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: