• EEVblog #496 – What Is An FPGA?

    What is an FPGA, and how does it compare to a microcontroller?
    A basic introduction to what Field Programmable Gate Arrays are and how they work, and the advantages and disadvantages.
    FPGA Stuff in Dave’s Amazon store

    Forum HERE

    Be Sociable, Share!

      About EEVblog

      Check Also

      EEVblog #820 – Mesh & Nodal Circuit Analysis Tutorial

      EEVblog #820 – Mesh & Nodal Circuit Analysis Tutorial

      Dave explains the fundamental DC circuit theorems of Mesh Analysis, Nodal Analysis, and the Superposition ...

      • Gordon

        This is _exactly_ the video I needed to start understanding this stuff. Cheers again Dave!
        (PS, I’d love it if there were more little things to buy off you to help keep eevblog going. Kits and such..)

      • Kal

        I sent this to my first year lecturer in digital design. This is probably the best explanation of what an FPGA is that I have seen. I would only add a few more examples, such as the inability of a microcontroller to handle the processing within an oscilloscope (good luck trying to push all the 2GS/s of a fairly dated scope through a microcontroller of any speed).

      • http://www.zofzpcb.com Zofz

        There is a bit of breakthrough: ICE40LP1K-CM36
        cheap (2.70Eur) and low io pin count (36), still “decent” (1280 macrocels). The only problem for us enthusiasts, is a very small pitch package.

      • Hjaalmarch

        I’d like to echo the previous sentiment that this is a really good high-level primer on FPGA technology. I think that this video could be used to demonstrate to Managers of hardware departments just how much benefit FPGAs could be to some applications.

        We use CPLDs at work and I hope that in the future we might start using FPGAs too simply because they bring so much flexibility to a design (as Dave said in his video).

        If we get to the point where I can argue that an FPGA would be a sensible move for us then I’ll definitely roll out this video to help convince the powers that be that FPGAs are a good way to approach some of the more technically difficult areas of our work.

        Great job Dave.

      • http://poonisteps.wordpress.com/ Raja Balu

        Thanks Dave. Hope to see a practical demonstration of the DE0-Nano kit in the future.

      • David W

        Thanks Dave, I was just about to buy an Fgpa demo board to have a play with, don’t think I will bother now!
        Great blog, always enjoy tuning in.

      • http://www.knackes.com/ Pixel_K

        Perfect introduction to FPGAs, thank you so much for your time Dave ! Only downside : you have to practice this pen tossing trick with a trained body double, I woulnd’t want you to be hurt !

      • Warren

        Thanks Dave for the excellent FPGA intro! If I could be so bold, I would request another video in which you show how to program and use one.

      • miro

        The best fundamentals friday!

      • john

        PROGAMMABLE was the first thing I noticed in the first frame. I know such silly mistakes can happen for everyone. But then from 10:55 Dave even adds another instance on the whiteboard. Or is that just the way they spell ‘programmable’ in Austalia ?

        Dave, thanks for the video btw.

        • http://ludzinc.blogspot.com.au/ Ludzinc


          What other way can you spell ‘programmable’?

          • john

            Well, if you are bit more observant you should notice the austalian spelling.

      • Bill

        Great intro! Thanks, Dave.

        Yes, I would also like see a brief demo of the kit now that we’ve had this intro, say using a simple (Is there such a thing?) example from the FPGA demo kit’s vendor. Just so we see the effort required to get one of those “simple” kits up and running and an example actually running in practice.

      • http://rubines.blogspot.co.at/ Rubi

        Awesome more of this stuff please

      • http://www.eevblog.com Jan

        From the beginning of your blogs I am waiting for this theme to be handled.
        Everyone remembers the intro with the rotating fpga board at the beginning in the previous videos.
        I am also interested in more information of this stuff.

        Thanks a lot!

      • http://blog.linformatronics.nl Jippie

        Scratch more surface Dave!

        I’ve been following your video blog for a while, really liking it, first comment I leave. Please do consider talking more about FPGA’s.

      • Pingback: What Is A Field Programmable Gate Arrays? - K8JI Ham Radio()

      • Worf

        FYI – one of the most expensive FPGAs I had used was the XC7V2000T series from Xilinx – $30K per chip! (Yes, one chip, $30,000. In 1000-quantity lots (or roughly $30M for a reel!)).

        The platform we used had *4* of them, and they costed a couple hundred grand each. Or more.

        And they still aren’t big enough for our purposes – we did chip prototyping on them, and could only put portions of the chip on the FPGA systems. (Some were double systems with 8 of those FPGAs on one platform).

        Of course, the entire system wasn’t spectacularly fast – we’re talking about a 5MHz system clock speed here (the target chip was to run at 1.5GHz or so – so the FPGA was 300 times slower).

        Also, FPGAs are not particularly transistor dense devices – what takes up all the space on an FPGA is the wiring fabric – getting each signal from each block to other blocks consumes numerous wires and the end result is that the thing isn’t that dense.

        That’s why they include a ton of hard blocks in there because there’s tons of space available on the silicon, and rather than consume up tons of wiring making a DSP, they can throw on hundreds of DSP slices and still have room to spare. Or memory. Or CPU cores. Or other devices – tons of space available for transistors under all that wire.

        And timing in an FPGA is pretty tricky – if you’re talking about a block talking to its immediate neighbour, it may only incur one clock penalty. But as you go further and further away, the delays get huge, fast (it’s why we could only run our FPGAs at 5MHz). This stuff is what’s called Place and Route and is something that you often have to have a hand in if you want to optimize performance because the router and placement may not be optimal.

        A dirty little secret – even though an FPGA may spec itself to have 100,000 gates, for practical purposes, you’ll be able to use about 80% or so at any one time (some claim 90% utilization, but it’s hard to believe). Why? You run out of wires way before you run out of logic.

        • Navid

          Just a clarification, the number of gates a company states is just a marketing number. Since all of your hardware is techonology mapped to LUT’s there is not really a way of quantifiying the number of gates you have, it’s really dictated by the number of inputs and outputs the LUT’s in your specific fabric have.

      • adcurtin

        I can’t remember where I heard this, but it summarizes FPGAs vs. microcontrollers very quickly:

        You tell a microcontroller what to _do_, but you tell an FPGA what to _be_.

      • Allan

        Yes, very interesting. Two unsatisfied curiosities:
        (1) What logic levels do these FPGA’s use–CMOS or TTL, or do they come in multiple flavors?
        (2) Programming, yes. I’m guessing the programming is not done in C or C++, as they’re procedurally-oriented.
        FPGA’s are analog, and I’m not at all familiar with how they are programmed. Okay, I’m off to watch Dave’s other video on FPGAs.
        Thanks for posting the URL!

        • Joey Bloggs

          The configurability of the FPGA extends to the logic type of the pins. They can be set to almost anything – TTL, CMOS, LVDS, whatnot, and all with multiple flavors of voltage levels.

      • http://www.JeanFrancoisAvon.com JFA in Montreal

        Great video!
        Now, I am completely confused, but at least, I know exactly why ! :-)

        It seems to be an immensely complex thing to work with.

        Too much possibilities is not good for tackling most projects. But for really funky applications, it’s amazing.

        Keep up the fantastic work, Crazeee Ausseee ! :-)
        void setup()
        int thumb ;

        void loop()
        thumb = UP;

      • http://blog.linformatronics.nl Jippie

        I found a die shot from an Altera FPGA: http://zeptobars.ru/en/read/Altera-Cyclone-EP1C3

        Anyone recognize the logical blocks Dave talked about?

      • SpaceWalker0720

        I’m glad to have heard “some” about FPGA’s in this video, and appreciate the author’s time he puts into it – but if someone wanted to teach on this they could reduce this nearly 40 minute segment into about 5-7 minutes of useful info.

        So thanks for the video, but way too long (I though) to basically only say:
        – basic layout is network fabric connections between functional-programming type code blocks versus CPU-type procedural logic and design
        – advantages
        – disadvantages

        Personally I think it’d be cool if every Computer came with one that we could all pitch into time-sharing for huge data intensive problem solving as a nation or global audience like people did (or still do) for things like protein folding or Beowulf cluster type parallel processing (think easy to bust out some new Prime numbers etc). Each week or month you could pick or be auto-assigned a new FPGA “layout” to solve a particular problem.

        Massively distributed FPGA problem solving would be really cool I think.

        Thanks again for the video though. I do appreciate it.

      • Pingback: ccn2785xdnwdc5bwedsj4wsndb()