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
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 :)
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.
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 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.
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 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."
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!
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 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
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!
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.
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.
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.
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.
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.
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).
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!
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.
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.
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... 😎
@EEVblog - couple of oopsies!: Advantages: 3rd asterix typo: field progammable, Disadvantages: 8th asterix typo: hard to chose/compare Great vid, thanks.
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.
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!
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!
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.
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!
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
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.
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.
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 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.
At my school we did a lot of work with the Terasic DE2 boards that use Altera Cyclone II fpga's. The academic price for those is something like $200 CAD. However, if you just want an fpga to learn the basics, the DE0 nano is a nice little board. I got mine for about $100 CAD after shipping, though again thats with academic price. It doesn't have a whole lot of connectors, in fact it only has usb built in, but it does have a huge number of IO pins that for connecting whatever you want.
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!
Of course, but how long did you want this video to be? It lives up to it's title exactly - "What is an FPGA?", nothing more. I didn't call it "practical FPGA demo". I deliberately did not include any practical demo in this video. That is a choice I made, I wanted it to just be basic intro theory. I will never understand anyone who complains about something that is deliberately NOT in a video. What point is that? There is always another video.
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.
There are 2 main players between the hobbyist community as I remember. Its Papilio One and Basys 2. Both work on quite popular xilinx spartan 3 series fpga's. There are at least 2 options with both of them naming 250K and 500K (difference is size of logic blocks). you can buy papilio for around 40 bucks (250K edition or 500k edition for around 70$) Basys is a bit more expensive, but as its sold by digilent, they have options for students etc.
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.
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.
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 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
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
Have you ever used Actel's antifuse FPGAs? They have one-time programmable antifuses controlling the fabric and CLBs, and power up in the programmed state. Useful for things that require static operation and/or instant configuration. BTW and antifuse is like a fuse, but backwards. Apply a certain amout of power to it and it goes from being an open circuit to being a short circuit (they're sometimes made with special zener diodes). Also very useful for certain applications.
Both ISE (Xilinx) and Quartus II (Altera) have schematic entry. They are less difficult to use that the HDLs but still require some careful handling, specially when using IP blocks.
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 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!
FPGAs are quite exciting devices to work with. There was a time when they were just in the corner in a digital design not having any central role. Now things are different as they are replacing ASICs and even micro-controllers with their soft cores and more recently with their Hard Processor Systems in the latest generation devices.
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.
You can obtain quite high speeds using specific programming techniques; the default high level GPIO access just isn't designed for it. For an example, look up RPIO.PWM (the code suggests 10MHz is possible, albeit not supported in that API). That's far different from reacting to such rates, though.
I suspect your comment is based on your extreme in depth knowledge of FPGA architecture and usage, while .... people who know nothing about FPGA's will have found this a great fundamental intro.. I challenge you to find good verbal bla bla on any wikipedia article. Dave - you did a good intro, keep up the good work.
I'd say they're still highly relevant though - I got started with programmable logic using some xc9572 CPLDs in PLCC44 packaging, bitbanging the JTAG port using a parallel port. Only simple functions, and I had to hook up an oscillator myself. By now I'd probably suggest a DE0 Nano or MachXO2 breakout board; the latter really push the boundaries, as "CPLDs" with FPGA architecture and built in configuration memory.
Awesome video. Makes me want to do a FPGA project now. When i did FPGA's in the mid 90s i had to use Xilinx 5200's. And this software called "Xilinx Foundation" was a pain sometimes. I had to place line drivers manually in order to make a design work. Today's design software seems to be much more reliable and it's basically free. "Foundation" did cost around today's 1500 EUR back then.
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.
Very nice video, in 1990 I got (F)PGA s in school so this chip architecture exist already more than 20 years. Very interesting to see that can be very powerful
Back in the 90's as a production tech, I nursed a product to market that plugged into a 4U card cage that had all sorts of ISDN functionality. This card added ethernet, WAN and associated routing capabilities. It was incredibly cramped - jam-packed full of PQFPs, a big i960 processor in PGA, socketed PLCC's butting up against each other and many other packages (thankfully, no BGA's). There were a lot of temperature profile issues with the manufacturing and I was hand reworking a lot of squishy-soldered socket pins, etc. Of all the devices that product had, the one that really fascinated me was the Xilinx.. The very idea that its internal hardware arrangement was only determined after the configuration stream had loaded just knocked me out. I had spent a good many years being used to making hardware mods. ECO's (or "ECN"s as they were referred to by then).. Track cuts, mod wires, a dab of glue.. It struck me that this thing could conceivably have a hardware mod implemented via a remote download while it was still in its cage which saves an awful lot in transport resources.
Hi, I would still recommend the DE1 if you can afford it, but you can run a lot of stuff on a cheap EP2C8 board from China. They are only around €60 Euros with a programmer (USB Blaster clone), but come with SDRAM / SD card slot / Hex displays / Serial port / VGA port / lots of IO pins / USB interface / Audio in and out. You can still run a lot of the retro micro cores on it (8-bit era mainly). The cheaper boards lack SRAM and Flash, but are great for learning on.
This is really great I appreciate the information! I’m just waiting for the one 800 number where it says if you call within the next 30 minutes you get not one but two and we’ll include the flash memory for the same price operators are standing by!
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
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 :)
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.
7 years later, still an awesome, informative video. Nice one mate!
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 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.
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.
The best intro to FPGA I have heard of. Easy to understand and pretty thorough :)
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."
This stuff is pure magic, especially when things are explained as well as they are in this video.
Dave is really a natural teacher at heart!
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!
at first the video length turned me off, but boi oh boi, this is the best video to know what a fpga is.
I bought an FPGA dev board a few months ago and designed a 16-bit processor, these are really great.
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!
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.
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
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!
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
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.
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.
You have crazy energy. Appreciate the breakdown of why take an advantage using the FPGA's. Pros and Cons Thanks EEVblog
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.
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.
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).
I have been watching this blog for the last week , I am totally addicted to this one and jerielliswoth
I love these introductions. Your presentation, knowledge, and enthusiasm is engaging. Videos like this make RUclips worthwhile. Thank you!
Yes, I thought I mentioned that in the video, the tools still do old-school schematic capture if you want.
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!
This is a great video. You really got talent to talk about compley stuff without being boring one minute. Way to go.
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.
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!
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.
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.
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... 😎
@EEVblog - couple of oopsies!:
Advantages: 3rd asterix typo: field progammable,
Disadvantages: 8th asterix typo: hard to chose/compare
Great vid, thanks.
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.
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!
I love this....Finally someone that explains stuff the way i understand.
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!
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.
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!
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
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.
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.
Very nice Video! in FPGA different primitive blocks are provided to deliver the required job!
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.
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.
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!
Dave, you are truly a gift to the world... Thank your Mother for me and get a job!
Dave is a professor, way more than an electrical engineer!
I think its a good introductory video, especially for beginners who doesn't know what an FPGA is.
At my school we did a lot of work with the Terasic DE2 boards that use Altera Cyclone II fpga's. The academic price for those is something like $200 CAD. However, if you just want an fpga to learn the basics, the DE0 nano is a nice little board. I got mine for about $100 CAD after shipping, though again thats with academic price. It doesn't have a whole lot of connectors, in fact it only has usb built in, but it does have a huge number of IO pins that for connecting whatever you want.
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!
Of course, but how long did you want this video to be? It lives up to it's title exactly - "What is an FPGA?", nothing more. I didn't call it "practical FPGA demo". I deliberately did not include any practical demo in this video. That is a choice I made, I wanted it to just be basic intro theory. I will never understand anyone who complains about something that is deliberately NOT in a video. What point is that? There is always another video.
Fantastic video, I wish I had hundreds of hours to spend working through your back catalog on this blog.
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.
A common use I've seen for FPGAs is Software Defined Radios. I presume that this is an example of the "massive parallel" feature you mentioned.
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!
There are 2 main players between the hobbyist community as I remember. Its Papilio One and Basys 2. Both work on quite popular xilinx spartan 3 series fpga's. There are at least 2 options with both of them naming 250K and 500K (difference is size of logic blocks). you can buy papilio for around 40 bucks (250K edition or 500k edition for around 70$) Basys is a bit more expensive, but as its sold by digilent, they have options for students etc.
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 just gotta say, after watching a bit of videos about fpga’s, this is the best video by far. Thank you very much
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.
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 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
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 …
At my last job, I used an Altera Virtex IV. It was for a 100Gb Ethernet board. The single chip was $10,000 with a minimum quantity of 3.
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
Have you ever used Actel's antifuse FPGAs? They have one-time programmable antifuses controlling the fabric and CLBs, and power up in the programmed state. Useful for things that require static operation and/or instant configuration.
BTW and antifuse is like a fuse, but backwards. Apply a certain amout of power to it and it goes from being an open circuit to being a short circuit (they're sometimes made with special zener diodes). Also very useful for certain applications.
Both ISE (Xilinx) and Quartus II (Altera) have schematic entry. They are less difficult to use that the HDLs but still require some careful handling, specially when using IP blocks.
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 like the way they configured you Dave.
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 just wish they had thought about FPGA at my college the same way you did sir. Thanks for this wonderful and informative treasure trove.
FPGAs are quite exciting devices to work with. There was a time when they were just in the corner in a digital design not having any central role. Now things are different as they are replacing ASICs and even micro-controllers with their soft cores and more recently with their Hard Processor Systems in the latest generation devices.
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.
I watch all your videos anyways, but I asked for this one. I will watch this tomorrow with a notepad and such. Mucho Thankos
You can obtain quite high speeds using specific programming techniques; the default high level GPIO access just isn't designed for it. For an example, look up RPIO.PWM (the code suggests 10MHz is possible, albeit not supported in that API). That's far different from reacting to such rates, though.
I suspect your comment is based on your extreme in depth knowledge of FPGA architecture and usage, while .... people who know nothing about FPGA's will have found this a great fundamental intro.. I challenge you to find good verbal bla bla on any wikipedia article. Dave - you did a good intro, keep up the good work.
Actel's FPGA are flash based and instant on. Very useful and easy to use.. Great video.
Keeping up the good work Dave. FPGA's are still the best direction IMHO for flexibility/speed/cost
The only channel i dont watch on double speed, the only one
Last week I bought an Cyclone IV Core 10 Development board with 20 additional boards, including TFT LCD !! I Still waiting the box !!
I'd say they're still highly relevant though - I got started with programmable logic using some xc9572 CPLDs in PLCC44 packaging, bitbanging the JTAG port using a parallel port. Only simple functions, and I had to hook up an oscillator myself. By now I'd probably suggest a DE0 Nano or MachXO2 breakout board; the latter really push the boundaries, as "CPLDs" with FPGA architecture and built in configuration memory.
Awesome video. Makes me want to do a FPGA project now. When i did FPGA's in the mid 90s i had to use Xilinx 5200's. And this software called "Xilinx Foundation" was a pain sometimes. I had to place line drivers manually in order to make a design work. Today's design software seems to be much more reliable and it's basically free. "Foundation" did cost around today's 1500 EUR back then.
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.
Great lecture, Dave. This answered many questions I've had about FPGAs for years. Thank you!
Very nice video,
in 1990 I got (F)PGA s in school so this chip architecture exist already more than 20 years.
Very interesting to see that can be very powerful
HAHA I like his statement "They often come in real pain in the ass packages to use like BGA" 17:24
Back in the 90's as a production tech, I nursed a product to market that plugged into a 4U card cage that had all sorts of ISDN functionality. This card added ethernet, WAN and associated routing capabilities. It was incredibly cramped - jam-packed full of PQFPs, a big i960 processor in PGA, socketed PLCC's butting up against each other and many other packages (thankfully, no BGA's). There were a lot of temperature profile issues with the manufacturing and I was hand reworking a lot of squishy-soldered socket pins, etc. Of all the devices that product had, the one that really fascinated me was the Xilinx.. The very idea that its internal hardware arrangement was only determined after the configuration stream had loaded just knocked me out. I had spent a good many years being used to making hardware mods. ECO's (or "ECN"s as they were referred to by then).. Track cuts, mod wires, a dab of glue.. It struck me that this thing could conceivably have a hardware mod implemented via a remote download while it was still in its cage which saves an awful lot in transport resources.
Thanks Dave (still remember your name after all these years!)
Hi,
I would still recommend the DE1 if you can afford it, but you can run a lot of stuff on a cheap EP2C8 board from China. They are only around €60 Euros with a programmer (USB Blaster clone), but come with SDRAM / SD card slot / Hex displays / Serial port / VGA port / lots of IO pins / USB interface / Audio in and out.
You can still run a lot of the retro micro cores on it (8-bit era mainly).
The cheaper boards lack SRAM and Flash, but are great for learning on.
This guy is like watching Steve Irwin: in the accent and the excitement. Great speaker. Thanks for making it, really helpful.
Digilent has some FPGA boards with student pricing. There are a few that are in that price range. They use Xilinx FPGAs.
Lattice semiconductors? is also an important supplier of FPGA's. Great overvieuw. thanks.
09/2021: Small FPGAs (like Lattice's iCE40 UltraLite ones) can be bought for about 2$.
This is really great I appreciate the information! I’m just waiting for the one 800 number where it says if you call within the next 30 minutes you get not one but two and we’ll include the flash memory for the same price operators are standing by!