The sheer energy and enthusiasm in this video are just exemplary beyond measure. I think something should be said for claiming that 'if you imagine that a proportion of viewers might find it overwhelmingly intense, that's not necessarily a bad thing for certain kinds of material'. There is an unmistakable impression of a wealth of in-depth and up-to-date knowledge and extensive valuable experience which sits behind the talk, combined with a serious commitment to helpfulness (evident in the on-screen corrections and tips) that makes this video something that I intend to use as an instructive example of how to tackle an introduction to a difficult technical subject. Thanks and bravo Dave.
Yeah, amazing. I'm going to be watching his other videos, for sure. He needs to make a video about Root Canals, or mowing the lawn. I bet he could make them sound like good things :) Good on you, mate.
FPGAs are usually used in circuits which need extremely high processing speeds often in parallel and independent of the main controller, like IP transceivers, data buffers, and even bitcoin miners (which go even further using ASICs). It's also used in vintage computer and console emulators (i.e. Jeri Ellsworth's C64 Direct-to-TV), usually for its high processing speed of graphics and sound data to minimize lag. They are also great for breadboarding/experimenting before committing to production ASICs. It's incredible flexible, but also fairly complex to develop it, therefore it's best used for niche applications.
I saw a video by Jeri Ellsworth (amazing woman) and she slurred her words in the same way. It took me about four hearings to decode that she was indeed not talking about a sports drink. LOL :)
Dave I just wanna say thank you for doing this stuff. I’m in my final year of a computer engineering degree and can confidently say that 2 days of me mucking around with a dev board + your videos has always taught me more than the related class at my school. I’m finally in a place where I can start donating back to you and will set that up soon. Just wanna thanks from college kids everywhere. If it were up to me I’d split my tuition between you and a couple others
This is the clearest and best general introduction to the FPGA that I have found. I am using it to educate persons who work for an investor of my small company so that they understand the importance of why we are spending so much on XILINX as the core of our I.P. I started with Microchip's PIC in 1993 and on to XILINX's simple CLPD types and am still growing learning and adapting to vast progressive expansion that XILINX has made in decades of FPGA advancement. Thanks for making this educational reference.
Hard silicon CPU's are generally much faster and low power than "soft" CPU's. That is why a lot of FPGA's now have hard silicon CPU's built in them. In terms of older CPU like say a 6502, an FPGA soft core can be much faster than the old chip.
Many Years ago I designed a board that was based on an Altrra Fpga. It integrated a Z80 core ( that I downloaded from Opencores!) 2 Darts, 2 Ctc, a PCI slave logic and other stuff... the Z80 was able to run at the speed of PCI bus at even higher!! But in general it is not a good idea to integrate a CPU into a Fpga, especially if it has to run at high speed!! Moreovrr FPGA are power hungry.....
I wish you taught my embedded systems class. I attended 40+ lectures and have still only scratched the surface of FPGAs. We did do some cool projects with them though. Your methods of explanation were far better than my professor's. The best lesson you can learn from applied computer science is "computers are stupid...that's why you have to be smart to figure them out."
Sir, you're just a genius...! you inspired me with this video. Actually, I'm an electronic engineering student and have been having too many problems understanding some digital electronic lessons but thanks to your videos and to some others out there I now understand better. I will no longer sleep!
I have worked as Applications Engineer for Altera FPGAs and have the opportunity to see them inside out. In many cases it is possible to use MCUs, but the flexibility that FPGAs provide in the present generation devices is just mind blowing.
I watched this video 7 years ago when I started trying to cram EE knowledge into my dumb head. I just wrote my first FGPA program the other day and realized this video helped me so much! And I haven't even seen it again in years, best content for EE on YT.
The only video on the internet which gives a proper explanation of FPGA (trust me I am saying this after watching a lot of crapy videos on FPGA introduction).
Was on someone elses video watching an explanation, I am so glad you were in the "up next" because I got tired of them and jumped straight to this video instead. Dave's a legend!
Really great overview of FPGA basics. You have to know which country you are in before you can efficiently know which specific street to drive down. Many people seem to want to skip the fundamentals, but especially with FBGA's -you do that to your great disadvantage. Its easy to get lost in the trees in the FPGA forest.
Just want to say thank you for these videos.. I've been working as an EE in the automotive field for 5 years now and a lot of these videos really touch on exactly what we have to work with while doing R&D! You have a great way of taking more complex subjects and making them a lot simpler, thank you!
I tried to start with FPGA programming, but didn't really get my head around it. I found the VHDPlus IDE and with the simple language, embedded libraries and other features it helped me a lot to make some cool projects :) Just in case someone has the same problem
Thanks! I'm going to get started on learning fpga's! It's really awesome when you have an great person teaching! You're doing the world a great service!
What a great speaker. I watched the whole thing and wasn't even bored. I've wanted an FPGA for awhile for mining but the high power is a bad thing. More vids!
Gotta be one of the best RUclips channels, with covid-19 meaning I have to watch my university lectures at home I usually speed them up because they talk too slow! Not with this guy though, great enthusiasm and packs a lot of information in a small period of time as well as being some of the best information on a subject you can find on RUclips. There are very few videos on RUclips I’ll watch for over 30 minutes but this was exceptional.
The title of this video should be: Not scratching the surface of FPGA. Thanks for the tutorial, Dave. Unfortunately last time there are not so much of them.
When seeing the Data sheets for the Cyclone IV series I've been playing with lately, one realises that in the modern day, no engineer can really understand everything without still having decent reference material :)
@@djruido1 Yes. With power comes complexity. Imagine making a cpu out of transistors. The assembler DOES do alot of the grunt work, but it will push the limits of your understanding. They are TRULY intended to be engineered for a mass production project. If as a hobbyist you want it to do what an Arduino or PI can do, save yourself alot of headache and go that route.
No, just buy scrapped gear for specialised industry, you get very good FPGAs almost for free. But you maybe cannot do that if you want to multiply and sell your device. But for one-off projects, you can find what you need for very few money.
that was an incredibly educational video. fpgas were confusing for me but you've explained it & now I understand the ins and outs. thanks heaps for putting in the time to do this.
I agree. A very good intro to FPGAs for someone who never used them or fully understood what they were. Like myself. Thanks Dave! Now I want one. New toy!
Dave, I looked up FPGA's on dig i key the most expensive one was $39,452.40 (USD) It has 152700 CLBs. I am going to have some fun this weekend. Thanks for making these videos, they really help.
The version that uses actual fuses is called a CPLD, which is one-time programmable (once the fuse is blown, it's blown for good). Typically cheaper; used for in-production products. Excellent explanation.
A side effect of CPLD & FPGAs is the troubleshooting becomes incredibly difficult if you don't have access to the firmware source code. It's impossible to tell if a given pin is an input or an output, Some FPGAs have up to 960 pins, so, fun times... 😎
I qualified as an electronics repairman over 20 years ago. I left EE for software, but have recently returned as a hobbyist. FPGA's are a complete mystery to me but now I have at least a vague understanding of what they are & I'm also able to look into the 2 main players programming languages so I can choose one to learn. So in short, this video is actually generating sales (I'm buying a dev board!) while also filling in some of the 20+ years gaps in my knowledge! You can't really knock that!
@EEVblog - couple of oopsies!: Advantages: 3rd asterix typo: field progammable, Disadvantages: 8th asterix typo: hard to chose/compare Great vid, thanks.
FPGAs are really great for those interesting in retro-computing or learning how a CPU works. I am implementing Ben Eater's 8-bit computer in an FPGA in a series of videos on my channel for anyone interested. Very cool stuff!
Thanx very much. I knew a little bit about FPGA's but this was really tying it all together. I wouldn't mind a couple more of these at all! Excellent stuff.
Good explanation Dave....wish you could make vidoes on all possible topics in electronics...boy you explain so well...so happy to have you share your knowledge on youtube.
Love the topic Dave, as a computer science major my focus is in software but I love hardware just as much and your videos always help renew my desire to study EE. Thanks a bunch
Looking forward for more info on FPGAs !!!... please target us the newbies and the oldfarts that could have been avoiding the subject for 3 decades... I think it's the ideal audience
Not as such, it's one of the accepted industry terms. It comes from the old days of PROMs were you would "blow the fuse bit" once and that's it. The term is still used today even if the "fuse bit" is actually a reprogrammable FLASH cell or volatile SRAM cell in the case of most FPGA's.
Behavioral abstraction levels in modern HDLs really help to make them much more approachable and intuitive. It is still definitely a different animal altogether insofar as inputs and outputs are predefined and can be things like wires or registers and such, but behavioral abstraction at least affords you syntax that is more akin to a normal PL such as C.
Like Dave said in this video, these blocks contain more than just buffers. Typical capabilities include differential pairs, bus keepers, pull up/down resistors, and doubled up flipflops for DDR functionality. The simplest ones are just a buffer, though; typically on dedicated pins like clock inputs. Those still get special treatment in their connections to clock nets, PLL blocks and such.
I wish if you could speak slower so i could catch everything you said. I had to watch your videos multiple time. However, your explainatiom and knowlege are excellent.
Me: Used computers (“RasPi”) and microcontrollers, heard the term “FGPA” once and wants to know what it is. Dave: Explains _brilliantly_ what an FGPA is. Me: _Wow,_ amazing! Me: Sticks to RasPis and Arduinos, happy to have gained some new important knowledge.
Yes. Good synchronous design is still the best way to go, with thorough simulation of functionality, and static timing analysis. But best of all, if you do make a mistake, you can fix it with an editor rather than a soldering iron (usually). Many people skip simulation and static timing analysis, and just turn it on and see if it works. Quick gratification, but not production worthy or reliable in the long term.
Thanks Dave, a was waitting for a good intro to FPGA. I've always wanted to put y hands on something like that ... but well, can't take off from microcontrollers. Even at works, you still fight the 8 bit thing beacause 0.1 or 0.2 dollar cheaper and still do the work ... Man, when I work on an old ARM7 I feel like driving a ferrari. Can't imagine in on of this big boys, but as you say, ton of complexity, expensive kit, but ...that is really the job WELL DONE ... Many thanks, very informative.
I see them a lot in digital audio interfaces, they drive the LCD screens, and in a smaller part, real time DSP processing. Nowadays, they are used as DSP memory hubs. Universal Audio has the technology in their interfaces. And provide only UA plugins for mixing and mastering audio, and there is were they earn the big bucks. The problem with these, the outputs are not DC Coupled, in some cases you can use that. The most known are RISC, SHARC, in audio.
I thought it was the F_____ Professional Golf Association. These do make a really decent DSP platform. There is almost zero latency with these FPGA. We can add a variable latency with phase detection. These things are incredible. Where we would have a rack of digital delays, now we can just run a latency program. I do audio DSP. We might have 96 channels, with subs on each. Let's say the bass player wants to mic two speaker cabs & mix that signal with a direct injected signal to the board. These can null the phase differences. We will have a redundancy factor, where one FPGA will hotswap in, should the other fail, or get out of sync, (same thing). Good stuff!
I remember when I first programmed an FPGA...oh high school Project Lead the Way...amazing experience. Designed in Multisim, downloaded and BOOM...worked without all the hassle
Liking this before I even watch it.. Love it when I search a topic and you've covered it! Grabbing a cup of coffee, a pen, and paper... Time to get my head straight :P
They are crazy, able to do analog 'math' while totally preserving resolution. Like adding together signals, subtracting, integrating, with the output still being analog with no digital conversion step in between. Basically, you can program them to replace what would normally be done with passive and/or analog components, programmable on the fly. They are used a bit in high end professional audio mixers, for obvious reasons. I am sure there are other applications, that is just the only one I actually know of :P
Richard Smith just came across the FPGA and FPAA devices, it’s something I now really want to get into. I’m currently studying electrical and mechanical engineering so seems like it would be a good thing to know and it would be good for prototyping complex digital (or analogue) circuits before getting all the gate ICs and building it on a breadboard
@@rich1051414 For stuff like integration analog calculation is wayyy more precise. These chips make out fantastic calculators for physics/market/whatever model simulation!
An awesome example of what FPGA's are capable of is the Super NT, which is a fully accurate hardware simulation of the Super Nintendo console that happens to be natively compatible with over 200 of the original cartridges and can natively output an HDMI signal.
Excellent video! High level but also informative enough to spark the imagination. I will be referring your explanation here to those who inquire what exactly an FPGA "is" (common misconceptions being "a cpu", "software" or "hardware" all of which are a piece of a puzzle). Also to those dabbling in the field I would suggest starting with Altera's tools rather than Xilinx to avoid tearing your hair out fighting tool issues. It's easy to get demoralized early on if you start off with.. difficult tools.
It's not entirely off; Dave's description covers SRAM-based FPGAs (such as from Xilinx, Altera, Lattice and Atmel - but some have built in configuration memory), but there is also Flash (from Actel, now "microsemi".. hate it when companies do that) and anti-fuse based ones (from Quicklogic). The latter aren't reprogrammable, and really work like fuses (which fuse closed, not open). Security bits may use real fuses, such as non-volatile configuration encryption keys. Other vendors exist.
I had a computer engineering lab course last semester (200 level course in the US) and we used a tiny FPGA coded with VHDL. It was already assembled into a housing with just male headers for all the connectivity it had (only a few dozen IO pins) and it was awful. It was the most frustrating thing getting everything to work. A lab course I’m in this semester uses Arduinos to teach microcontroller use, though the course does focus more heavily on hardware than software, and it is much, much easier, and I’ll never use an FPGA again if I can help it.
At my work we use Actel FPGAs which are live on power-up and can run as a stand alone component. It doesn`t require any external circuitry except the power supply to it. Actel also has mixed signal FPGAs containing A/D converters for example. Look at Fusion and Smart Fusion.
These are very special purpose devices. Yes, you can do fast I/O. But unless you need super-fast signals, any decent micro-controller will work, and be cheaper and MUCH easier to develop on and support. I have done LOTS of embedded designs over the last 30+ years, and I have been able to ignore these for 98% of the work I've done. Very, very specialized.
Only got a bit through this video so far, but was the one of the only ones that actually explains fpga well. Do you think we start seeing these in desktops at some point, for desktop software that wants to make use of the performance benefits. Not necessarily replacing the cpu, but perhaps complimenting it.
Hey !! Love your videos . Can u make a video on showing how an FPGA programs itself using an example like basic adder or subtractor? Explaining how the program is converted into digital design.
Way late to the party, ASIC designer here. The basic idea is you take your fancy design that you probably wrote in some HDL, let's say SystemVerilog for compactness. A 16-bit adder without checks would be as follows: // 255 + 1 == 0!!! module my_adder( input logic [15:0] a, input logic [15:0] b, output logic [15:0] z ); always_comb z = a + b; endmodule: my_adder Some proprietary compiler would take this code and compare it to a number of primitives, which is easier for simple binary operations. I assume they have a parameterized basic component for each operator, let's say they know that '+' means an adder and they have some algorithm to choose which kind of adder to use (ripple carry, carry select, parallel prefix, what have you). They now take the width of the input and output vectors to decide how big the adder is, tie to logic 0 the unused inputs if any, leave the unused outputs dangling if any and they have the basic circuit. I assume this step is different for FPGAs, here is where in an ASIC you would map the logic to a standard cell library with all data on timing, consumption and so on, so the synthesizer knows the trade-offs between different implementations. FPGAs do not really work with gates, but I assume they have metrics by which some particular logic element configurations are faster than others, some others are more compact, what have you. They run a number of optimization algorithms to simplify the logic (let's say we sum 32-bit numbers and want a 16-bit output, we do not need all the stuff computing bits 16 to 31, or maybe we are summing a 16-bit and a 32-bit into a 32-bit and half of an operand is tied to 0 so you just need to propagate the carry through the other one). After all of this is done, they have the final logic representation of what the output does. In an ASIC, you take this big list of standard cells and connection between them and send it to a place and route tool that crunches for a while and then gives you back the exact placement of all of it. FPGAs do more or less the same thing, but choose which logic elements to use and how to get from one to the other instead of having the freedom to move that particular wire one micrometer over. You now know how you want the FPGA to be programmed and all that's left is putting it all in a format the FPGA understands and transmit it over some serial connection to the configuration logic. The FPGA receives it, flips a number of switches in both logic elements and routing matrix, and you then find out that you really needed that overflow flag you did not put in. Back to the code and iterate. Hope you can make sense of my rambling.
The sheer energy and enthusiasm in this video are just exemplary beyond measure. I think something should be said for claiming that 'if you imagine that a proportion of viewers might find it overwhelmingly intense, that's not necessarily a bad thing for certain kinds of material'. There is an unmistakable impression of a wealth of in-depth and up-to-date knowledge and extensive valuable experience which sits behind the talk, combined with a serious commitment to helpfulness (evident in the on-screen corrections and tips) that makes this video something that I intend to use as an instructive example of how to tackle an introduction to a difficult technical subject. Thanks and bravo Dave.
Agreed, 100%.
calm down!!
Yeah, amazing. I'm going to be watching his other videos, for sure. He needs to make a video about Root Canals, or mowing the lawn. I bet he could make them sound like good things :)
Good on you, mate.
It very frustrating, programming this stuff, that's why he is carrying on...that are complicated...I hate programming anyway.
FPGAs are usually used in circuits which need extremely high processing speeds often in parallel and independent of the main controller, like IP transceivers, data buffers, and even bitcoin miners (which go even further using ASICs). It's also used in vintage computer and console emulators (i.e. Jeri Ellsworth's C64 Direct-to-TV), usually for its high processing speed of graphics and sound data to minimize lag. They are also great for breadboarding/experimenting before committing to production ASICs. It's incredible flexible, but also fairly complex to develop it, therefore it's best used for niche applications.
Field Programmable Gatorade?
That sounds delicious!
gate array.
Gatorade
Dammit, I had hoped that being a sociopath gave you the power to write coherent datasheets.
Sod Alfredsod No, that just requires you to have delusions of grandeur. A nihilist outlook on life helps.
I saw a video by Jeri Ellsworth (amazing woman) and she slurred her words in the same way. It took me about four hearings to decode that she was indeed not talking about a sports drink. LOL :)
Dave I just wanna say thank you for doing this stuff. I’m in my final year of a computer engineering degree and can confidently say that 2 days of me mucking around with a dev board + your videos has always taught me more than the related class at my school. I’m finally in a place where I can start donating back to you and will set that up soon. Just wanna thanks from college kids everywhere. If it were up to me I’d split my tuition between you and a couple others
7 years later, still an awesome, informative video. Nice one mate!
This is the clearest and best general introduction to the FPGA that I have found. I am using it to educate persons who work for an investor of my small company so that they understand the importance of why we are spending so much on XILINX as the core of our I.P. I started with Microchip's PIC in 1993 and on to XILINX's simple CLPD types and am still growing learning and adapting to vast progressive expansion that XILINX has made in decades of FPGA advancement. Thanks for making this educational reference.
The best intro to FPGA I have heard of. Easy to understand and pretty thorough :)
Hard silicon CPU's are generally much faster and low power than "soft" CPU's. That is why a lot of FPGA's now have hard silicon CPU's built in them.
In terms of older CPU like say a 6502, an FPGA soft core can be much faster than the old chip.
Many Years ago I designed a board that was based on an Altrra Fpga.
It integrated a Z80 core ( that I downloaded from Opencores!) 2 Darts, 2 Ctc, a PCI slave logic and other stuff... the Z80 was able to run at the speed of PCI bus at even higher!!
But in general it is not a good idea to integrate a CPU into a Fpga, especially if it has to run at high speed!!
Moreovrr FPGA are power hungry.....
This stuff is pure magic, especially when things are explained as well as they are in this video.
I wish you taught my embedded systems class. I attended 40+ lectures and have still only scratched the surface of FPGAs. We did do some cool projects with them though. Your methods of explanation were far better than my professor's. The best lesson you can learn from applied computer science is "computers are stupid...that's why you have to be smart to figure them out."
Awesome stuff. Love it when he says I haven't even scratched the surface. Shows the sheer complexity of this technology
Sir, you're just a genius...! you inspired me with this video. Actually, I'm an electronic engineering student and have been having too many problems understanding some digital electronic lessons but thanks to your videos and to some others out there I now understand better. I will no longer sleep!
I have worked as Applications Engineer for Altera FPGAs and have the opportunity to see them inside out. In many cases it is possible to use MCUs, but the flexibility that FPGAs provide in the present generation devices is just mind blowing.
Dave is really a natural teacher at heart!
I watched this video 7 years ago when I started trying to cram EE knowledge into my dumb head. I just wrote my first FGPA program the other day and realized this video helped me so much! And I haven't even seen it again in years, best content for EE on YT.
I'm a complete newbie when it comes to microprocessors and stuff, and I understood those concepts very well. Great video. Cheers
The only video on the internet which gives a proper explanation of FPGA (trust me I am saying this after watching a lot of crapy videos on FPGA introduction).
Was on someone elses video watching an explanation, I am so glad you were in the "up next" because I got tired of them and jumped straight to this video instead. Dave's a legend!
Really great overview of FPGA basics. You have to know which country you are in before you can efficiently know which specific street to drive down. Many people seem to want to skip the fundamentals, but especially with FBGA's -you do that to your great disadvantage. Its easy to get lost in the trees in the FPGA forest.
I love these introductions. Your presentation, knowledge, and enthusiasm is engaging. Videos like this make RUclips worthwhile. Thank you!
You have crazy energy. Appreciate the breakdown of why take an advantage using the FPGA's. Pros and Cons Thanks EEVblog
Just want to say thank you for these videos.. I've been working as an EE in the automotive field for 5 years now and a lot of these videos really touch on exactly what we have to work with while doing R&D! You have a great way of taking more complex subjects and making them a lot simpler, thank you!
much better than I've seen at school 👍 Always great to go back to your videos Dave! Thanks for what you're bringing to the Electronics Community!
This is a great video. You really got talent to talk about compley stuff without being boring one minute. Way to go.
I love this....Finally someone that explains stuff the way i understand.
I tried to start with FPGA programming, but didn't really get my head around it.
I found the VHDPlus IDE and with the simple language, embedded libraries and other features it helped me a lot to make some cool projects :)
Just in case someone has the same problem
Thanks! I'm going to get started on learning fpga's!
It's really awesome when you have an great person teaching! You're doing the world a great service!
What a great speaker. I watched the whole thing and wasn't even bored. I've wanted an FPGA for awhile for mining but the high power is a bad thing. More vids!
I just gotta say, after watching a bit of videos about fpga’s, this is the best video by far. Thank you very much
Your videos are great, I wish that we had so enthusiastic teacher at our university. Thank you!
Dave could sell ice-cubes to Eskimos, and they would gladly buy it. His enthusiasm is legendary. :)
I bought an FPGA dev board a few months ago and designed a 16-bit processor, these are really great.
at first the video length turned me off, but boi oh boi, this is the best video to know what a fpga is.
Gotta be one of the best RUclips channels, with covid-19 meaning I have to watch my university lectures at home I usually speed them up because they talk too slow! Not with this guy though, great enthusiasm and packs a lot of information in a small period of time as well as being some of the best information on a subject you can find on RUclips.
There are very few videos on RUclips I’ll watch for over 30 minutes but this was exceptional.
I have been watching this blog for the last week , I am totally addicted to this one and jerielliswoth
The title of this video should be: Not scratching the surface of FPGA.
Thanks for the tutorial, Dave. Unfortunately last time there are not so much of them.
When seeing the Data sheets for the Cyclone IV series I've been playing with lately, one realises that in the modern day, no engineer can really understand everything without still having decent reference material :)
Shane Van Ingen is it that bad? I’m just an enthusiast and you just made me feel better on my level of understanding of this chips lol
@@djruido1 Yes. With power comes complexity. Imagine making a cpu out of transistors. The assembler DOES do alot of the grunt work, but it will push the limits of your understanding. They are TRULY intended to be engineered for a mass production project. If as a hobbyist you want it to do what an Arduino or PI can do, save yourself alot of headache and go that route.
I am just starting out with FPGAs. I've just got a Spartan-6 LX9 microboard. Your tutorial has put a lot into perspective. Thanks.
This was one of your best videos so far. Mostly because this was something i never could get my head around, prior to your video. Thanks!
I just wish they had thought about FPGA at my college the same way you did sir. Thanks for this wonderful and informative treasure trove.
Dave is a professor, way more than an electrical engineer!
Limited by your imagination.. and wallet
Mainly wallet haha
Especially once it's converted into a custom ASIC ;)
Hahaha
No, just buy scrapped gear for specialised industry, you get very good FPGAs almost for free. But you maybe cannot do that if you want to multiply and sell your device. But for one-off projects, you can find what you need for very few money.
Well, your can get the Arrow deca max 10 with a lot of interfaces and capabilities for just 31 euros. There are some reasonable prices over there
Dave, you are truly a gift to the world... Thank your Mother for me and get a job!
This guy is like watching Steve Irwin: in the accent and the excitement. Great speaker. Thanks for making it, really helpful.
that was an incredibly educational video. fpgas were confusing for me but you've explained it & now I understand the ins and outs. thanks heaps for putting in the time to do this.
I agree. A very good intro to FPGAs for someone who never used them or fully understood what they were. Like myself. Thanks Dave! Now I want one. New toy!
The best explanation I found about FPGA's. Very good stuff!
By de wae I watched over popular fpga explanations this is by far the best.
Dave, I looked up FPGA's on dig i key the most expensive one was $39,452.40 (USD)
It has 152700 CLBs. I am going to have some fun this weekend. Thanks for making these videos, they really help.
The version that uses actual fuses is called a CPLD, which is one-time programmable (once the fuse is blown, it's blown for good). Typically cheaper; used for in-production products.
Excellent explanation.
A side effect of CPLD & FPGAs is the troubleshooting becomes incredibly difficult if you don't have access to the firmware source code. It's impossible to tell if a given pin is an input or an output, Some FPGAs have up to 960 pins, so, fun times... 😎
I qualified as an electronics repairman over 20 years ago. I left EE for software, but have recently returned as a hobbyist. FPGA's are a complete mystery to me but now I have at least a vague understanding of what they are & I'm also able to look into the 2 main players programming languages so I can choose one to learn. So in short, this video is actually generating sales (I'm buying a dev board!) while also filling in some of the 20+ years gaps in my knowledge! You can't really knock that!
@EEVblog - couple of oopsies!:
Advantages: 3rd asterix typo: field progammable,
Disadvantages: 8th asterix typo: hard to chose/compare
Great vid, thanks.
The only channel i dont watch on double speed, the only one
I think its a good introductory video, especially for beginners who doesn't know what an FPGA is.
FPGAs are really great for those interesting in retro-computing or learning how a CPU works. I am implementing Ben Eater's 8-bit computer in an FPGA in a series of videos on my channel for anyone interested. Very cool stuff!
Thanks Dave. The best explanation of FPGA I've come across.
Thanx very much. I knew a little bit about FPGA's but this was really tying it all together. I wouldn't mind a couple more of these at all! Excellent stuff.
Good explanation Dave....wish you could make vidoes on all possible topics in electronics...boy you explain so well...so happy to have you share your knowledge on youtube.
I've got to say thank you for making these videos. I'm a big fan of your unique approach to explaining everything. Keep up the great videos!
Love the topic Dave, as a computer science major my focus is in software but I love hardware just as much and your videos always help renew my desire to study EE. Thanks a bunch
Looking forward for more info on FPGAs !!!... please target us the newbies and the oldfarts that could have been avoiding the subject for 3 decades... I think it's the ideal audience
Not as such, it's one of the accepted industry terms. It comes from the old days of PROMs were you would "blow the fuse bit" once and that's it. The term is still used today even if the "fuse bit" is actually a reprogrammable FLASH cell or volatile SRAM cell in the case of most FPGA's.
Behavioral abstraction levels in modern HDLs really help to make them much more approachable and intuitive. It is still definitely a different animal altogether insofar as inputs and outputs are predefined and can be things like wires or registers and such, but behavioral abstraction at least affords you syntax that is more akin to a normal PL such as C.
Fantastic video, I wish I had hundreds of hours to spend working through your back catalog on this blog.
Like Dave said in this video, these blocks contain more than just buffers. Typical capabilities include differential pairs, bus keepers, pull up/down resistors, and doubled up flipflops for DDR functionality. The simplest ones are just a buffer, though; typically on dedicated pins like clock inputs. Those still get special treatment in their connections to clock nets, PLL blocks and such.
I watch all your videos anyways, but I asked for this one. I will watch this tomorrow with a notepad and such. Mucho Thankos
Holy crap, that's hilarious! A 37min minute spelling mistake!
programmable :)
no worries, we understand.. Electronics dont care about spellings..:-)
"Progammable" lol
There is no smelling pistake, it's able to be pro-gamma
I wish if you could speak slower so i could catch everything you said. I had to watch your videos multiple time. However, your explainatiom and knowlege are excellent.
Me: Used computers (“RasPi”) and microcontrollers, heard the term “FGPA” once and wants to know what it is.
Dave: Explains _brilliantly_ what an FGPA is.
Me: _Wow,_ amazing!
Me: Sticks to RasPis and Arduinos, happy to have gained some new important knowledge.
Keeping up the good work Dave. FPGA's are still the best direction IMHO for flexibility/speed/cost
Yes. Good synchronous design is still the best way to go, with thorough simulation of functionality, and static timing analysis. But best of all, if you do make a mistake, you can fix it with an editor rather than a soldering iron (usually). Many people skip simulation and static timing analysis, and just turn it on and see if it works. Quick gratification, but not production worthy or reliable in the long term.
Thanks Dave, a was waitting for a good intro to FPGA. I've always wanted to put y hands on something like that ... but well, can't take off from microcontrollers. Even at works, you still fight the 8 bit thing beacause 0.1 or 0.2 dollar cheaper and still do the work ... Man, when I work on an old ARM7 I feel like driving a ferrari. Can't imagine in on of this big boys, but as you say, ton of complexity, expensive kit, but ...that is really the job WELL DONE ... Many thanks, very informative.
I see them a lot in digital audio interfaces, they drive the LCD screens, and in a smaller part, real time DSP processing. Nowadays, they are used as DSP memory hubs. Universal Audio has the technology in their interfaces. And provide only UA plugins for mixing and mastering audio, and there is were they earn the big bucks. The problem with these, the outputs are not DC Coupled, in some cases you can use that. The most known are RISC, SHARC, in audio.
I thought it was the F_____ Professional Golf Association. These do make a really decent DSP platform. There is almost zero latency with these FPGA. We can add a variable latency with phase detection. These things are incredible. Where we would have a rack of digital delays, now we can just run a latency program. I do audio DSP. We might have 96 channels, with subs on each. Let's say the bass player wants to mic two speaker cabs & mix that signal with a direct injected signal to the board. These can null the phase differences. We will have a redundancy factor, where one FPGA will hotswap in, should the other fail, or get out of sync, (same thing). Good stuff!
I like the way they configured you Dave.
I remember when I first programmed an FPGA...oh high school Project Lead the Way...amazing experience. Designed in Multisim, downloaded and BOOM...worked without all the hassle
Very nice Video! in FPGA different primitive blocks are provided to deliver the required job!
Tranks a lot for the Nice overview. Could probably be cut to half the time, but then again as you said could be 2 hours per subtopic …
love your energy and the lilt in your voice man! great explanation so far I'm on the 7 minute mark, excited to learn more!
I wanted an overview, which I received many times over. It's good to keep an aging mind ticking away efficiently. 😄
Liking this before I even watch it.. Love it when I search a topic and you've covered it! Grabbing a cup of coffee, a pen, and paper... Time to get my head straight :P
HAHA I like his statement "They often come in real pain in the ass packages to use like BGA" 17:24
such a easy explaination to get into my brain, not like other videos
Yeah, practical demo of the DE0-Nano is likely next on the cards.
For those who don't know I have an old FPGA video linked in the description.
Dave, you are an electronics-powerhouse-of-knowledge!
Great lecture, Dave. This answered many questions I've had about FPGAs for years. Thank you!
What about FPAAs? Those are crazy. The analog sibling of the FPGA.
They are crazy, able to do analog 'math' while totally preserving resolution. Like adding together signals, subtracting, integrating, with the output still being analog with no digital conversion step in between. Basically, you can program them to replace what would normally be done with passive and/or analog components, programmable on the fly.
They are used a bit in high end professional audio mixers, for obvious reasons. I am sure there are other applications, that is just the only one I actually know of :P
Richard Smith just came across the FPGA and FPAA devices, it’s something I now really want to get into. I’m currently studying electrical and mechanical engineering so seems like it would be a good thing to know and it would be good for prototyping complex digital (or analogue) circuits before getting all the gate ICs and building it on a breadboard
@@rich1051414 For stuff like integration analog calculation is wayyy more precise. These chips make out fantastic calculators for physics/market/whatever model simulation!
YOU MAKE FPGS AND ALL YOU TEACH VERY PALATABLE GOOD JOB. I JUST LIKE THE WAY YOU TALK PLUS THE CONTENT AS WELL
At 11:17 I like the way you stressing. "Anything" :-)
Thanks for the lecture.
Thank you so much sir, you give me the courage to study the FPGA. I'm really grateful. By the way I love the funny end of the video blog ahahah
Great work Dave. I had been waiting for FPGAs from you.
Very informative and very well explained. I was curious about the FPGA the other day. I found this video very educational. Thanks Dave! :)
Yes, I thought I mentioned that in the video, the tools still do old-school schematic capture if you want.
An awesome example of what FPGA's are capable of is the Super NT, which is a fully accurate hardware simulation of the Super Nintendo console that happens to be natively compatible with over 200 of the original cartridges and can natively output an HDMI signal.
Very cool. Im actually working with the nes and snes is some of my current projecta right now, so this interests me even more.
Is it possible for someone to take a super nt and copy the FPGA programming for use with their own FPGA?
So was Jeri Ellsworth's C64 Direct-to-TV ASIC (FPGA originally) and some other console emulators.
Excellent video! High level but also informative enough to spark the imagination. I will be referring your explanation here to those who inquire what exactly an FPGA "is" (common misconceptions being "a cpu", "software" or "hardware" all of which are a piece of a puzzle).
Also to those dabbling in the field I would suggest starting with Altera's tools rather than Xilinx to avoid tearing your hair out fighting tool issues. It's easy to get demoralized early on if you start off with.. difficult tools.
I love your course and also your southern Chinese accent pronunciation
It's not entirely off; Dave's description covers SRAM-based FPGAs (such as from Xilinx, Altera, Lattice and Atmel - but some have built in configuration memory), but there is also Flash (from Actel, now "microsemi".. hate it when companies do that) and anti-fuse based ones (from Quicklogic). The latter aren't reprogrammable, and really work like fuses (which fuse closed, not open). Security bits may use real fuses, such as non-volatile configuration encryption keys. Other vendors exist.
I had a computer engineering lab course last semester (200 level course in the US) and we used a tiny FPGA coded with VHDL. It was already assembled into a housing with just male headers for all the connectivity it had (only a few dozen IO pins) and it was awful. It was the most frustrating thing getting everything to work.
A lab course I’m in this semester uses Arduinos to teach microcontroller use, though the course does focus more heavily on hardware than software, and it is much, much easier, and I’ll never use an FPGA again if I can help it.
Thanks Dave (still remember your name after all these years!)
At my work we use Actel FPGAs which are live on power-up and can run as a stand alone component. It doesn`t require any external circuitry except the power supply to it. Actel also has mixed signal FPGAs containing A/D converters for example. Look at Fusion and Smart Fusion.
These are very special purpose devices. Yes, you can do fast I/O. But unless you need super-fast signals, any decent micro-controller will work, and be cheaper and MUCH easier to develop on and support. I have done LOTS of embedded designs over the last 30+ years, and I have been able to ignore these for 98% of the work I've done. Very, very specialized.
Only got a bit through this video so far, but was the one of the only ones that actually explains fpga well. Do you think we start seeing these in desktops at some point, for desktop software that wants to make use of the performance benefits. Not necessarily replacing the cpu, but perhaps complimenting it.
Hey !! Love your videos . Can u make a video on showing how an FPGA programs itself using an example like basic adder or subtractor? Explaining how the program is converted into digital design.
Way late to the party, ASIC designer here.
The basic idea is you take your fancy design that you probably wrote in some HDL, let's say SystemVerilog for compactness. A 16-bit adder without checks would be as follows:
// 255 + 1 == 0!!!
module my_adder(
input logic [15:0] a,
input logic [15:0] b,
output logic [15:0] z
);
always_comb z = a + b;
endmodule: my_adder
Some proprietary compiler would take this code and compare it to a number of primitives, which is easier for simple binary operations. I assume they have a parameterized basic component for each operator, let's say they know that '+' means an adder and they have some algorithm to choose which kind of adder to use (ripple carry, carry select, parallel prefix, what have you). They now take the width of the input and output vectors to decide how big the adder is, tie to logic 0 the unused inputs if any, leave the unused outputs dangling if any and they have the basic circuit. I assume this step is different for FPGAs, here is where in an ASIC you would map the logic to a standard cell library with all data on timing, consumption and so on, so the synthesizer knows the trade-offs between different implementations. FPGAs do not really work with gates, but I assume they have metrics by which some particular logic element configurations are faster than others, some others are more compact, what have you.
They run a number of optimization algorithms to simplify the logic (let's say we sum 32-bit numbers and want a 16-bit output, we do not need all the stuff computing bits 16 to 31, or maybe we are summing a 16-bit and a 32-bit into a 32-bit and half of an operand is tied to 0 so you just need to propagate the carry through the other one). After all of this is done, they have the final logic representation of what the output does. In an ASIC, you take this big list of standard cells and connection between them and send it to a place and route tool that crunches for a while and then gives you back the exact placement of all of it. FPGAs do more or less the same thing, but choose which logic elements to use and how to get from one to the other instead of having the freedom to move that particular wire one micrometer over.
You now know how you want the FPGA to be programmed and all that's left is putting it all in a format the FPGA understands and transmit it over some serial connection to the configuration logic. The FPGA receives it, flips a number of switches in both logic elements and routing matrix, and you then find out that you really needed that overflow flag you did not put in. Back to the code and iterate.
Hope you can make sense of my rambling.