The sheer energy and enthusiasm in this video is just exemplary beyond measure. I think there's something to be said for claiming that 'if you imagine that a proportion of viewers might find it overwhelmingly intense, that'a 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
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.
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 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.
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!
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!
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 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.
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.
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.
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.
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
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.
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.
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).
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.
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!
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!
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!
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... 😎
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.
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.
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.
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.
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
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.
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!
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.
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 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
@EEVblog - couple of oopsies!: Advantages: 3rd asterix typo: field progammable, Disadvantages: 8th asterix typo: hard to chose/compare Great vid, thanks.
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.
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!
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.
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.
Hi Dave, I find your tutorials useful and always helpful. Could you do a little bit on how to map sequential logic and how to implement this on a fpga? Some state diagrams would be helpful.
A 37 minute minute spelling mistake?? lol. This is incredible timing because the last two or three days I've been wondering more and more about FPGA's and what they are...
I hope the series continues about how to actually use it, aka "when it gets really intersting". In my impression, about every tutorial/introduction on FPGAs stops right before that point :(
Marvellous. Thanks. I watched this because I have become interested in FPGA implementations of vintage CPUs. The Amiga Vampire for example. My new Siglent scope has one too :)
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
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.
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.
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.
As a musician I have always been excited about the vast range of electronic and electromechanical methods for making organs. The best sounding in terms of tone are the electromechanical variety of organs, with the Hammond tone wheel organ at the top of the heap. The Hammond tone wheel organ was the very first electric based organ, introduced by a clock maker Laurens Hammond in 1934 and remains impossible to mimic down to all of it's subtle nuances. However, listen to FPGA 'HOAX HAMMOND'! (cont.)
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.
The sheer energy and enthusiasm in this video is just exemplary beyond measure. I think there's something to be said for claiming that 'if you imagine that a proportion of viewers might find it overwhelmingly intense, that'a 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 :)
7 years later, still an awesome, informative video. Nice one mate!
This stuff is pure magic, especially when things are explained as well as they are in this video.
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
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.....
The best intro to FPGA I have heard of. Easy to understand and pretty thorough :)
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.
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 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!
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 love these introductions. Your presentation, knowledge, and enthusiasm is engaging. Videos like this make RUclips worthwhile. Thank you!
I'm a complete newbie when it comes to microprocessors and stuff, and I understood those concepts very well. Great video. Cheers
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!
at first the video length turned me off, but boi oh boi, this is the best video to know what a fpga is.
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 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.
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.
You have crazy energy. Appreciate the breakdown of why take an advantage using the FPGA's. Pros and Cons Thanks EEVblog
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.
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.
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.
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.
I have been watching this blog for the last week , I am totally addicted to this one and jerielliswoth
I just gotta say, after watching a bit of videos about fpga’s, this is the best video by far. Thank you very much
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
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.
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.
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!
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.
I think its a good introductory video, especially for beginners who doesn't know what an FPGA is.
I love this....Finally someone that explains stuff the way i understand.
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.
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.
This guy is like watching Steve Irwin: in the accent and the excitement. Great speaker. Thanks for making it, really helpful.
Dave, you are truly a gift to the world... Thank your Mother for me and get a job!
Fantastic video, I wish I had hundreds of hours to spend working through your back catalog on this blog.
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).
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.
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!
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!
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!
Dave is a professor, way more than an electrical engineer!
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... 😎
The only channel i dont watch on double speed, the only one
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!
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.
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.
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.
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 best explanation I found about FPGA's. Very good stuff!
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
Yes, I thought I mentioned that in the video, the tools still do old-school schematic capture if you want.
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
Thanks Dave. The best explanation of FPGA I've come across.
At 11:17 I like the way you stressing. "Anything" :-)
Thanks for the lecture.
I watch all your videos anyways, but I asked for this one. I will watch this tomorrow with a notepad and such. Mucho Thankos
here I am, 20 minutes into the video, not understanding a single word he says, but still listening carefully and enjoying the video.
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!
Great lecture, Dave. This answered many questions I've had about FPGAs for years. Thank you!
I wanted an overview, which I received many times over. It's good to keep an aging mind ticking away efficiently. 😄
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.
Thanks Dave (still remember your name after all these years!)
Very nice Video! in FPGA different primitive blocks are provided to deliver the required job!
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 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
Dave, you are an electronics-powerhouse-of-knowledge!
Keeping up the good work Dave. FPGA's are still the best direction IMHO for flexibility/speed/cost
@EEVblog - couple of oopsies!:
Advantages: 3rd asterix typo: field progammable,
Disadvantages: 8th asterix typo: hard to chose/compare
Great vid, thanks.
I like the way they configured you Dave.
Great introduction. Imagine trying to figure this out on your own. I am glad I will never need one.
By de wae I watched over popular fpga explanations this is by far the best.
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.
Very informative and very well explained. I was curious about the FPGA the other day. I found this video very educational. Thanks Dave! :)
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!
HAHA I like his statement "They often come in real pain in the ass packages to use like BGA" 17:24
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.
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.
Hi Dave, I find your tutorials useful and always helpful. Could you do a little bit on how to map sequential logic and how to implement this on a fpga? Some state diagrams would be helpful.
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!
A 37 minute minute spelling mistake?? lol. This is incredible timing because the last two or three days I've been wondering more and more about FPGA's and what they are...
I hope the series continues about how to actually use it, aka "when it gets really intersting". In my impression, about every tutorial/introduction on FPGAs stops right before that point :(
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.
Marvellous. Thanks. I watched this because I have become interested in FPGA implementations of vintage CPUs. The Amiga Vampire for example. My new Siglent scope has one too :)
Thank you Dave for a most informative Video!
What's next in the series? A nice video on the DE0-Nano would be nice :)
Actel's FPGA are flash based and instant on. Very useful and easy to use.. Great video.
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
Thanks! You might well have mentioned it... I should try re-watching when I'm having slightly less network trouble. :-)
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.
Iv'e always wondered how FPGAs worked. Thanks for the great tutorial
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.
A video where you delve into how folks reproduce an NES in an FPGA, like Dan strothers does, would be awesome
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.
As a musician I have always been excited about the vast range of electronic and electromechanical methods for making organs. The best sounding in terms of tone are the electromechanical variety of organs, with the Hammond tone wheel organ at the top of the heap. The Hammond tone wheel organ was the very first electric based organ, introduced by a clock maker Laurens Hammond in 1934 and remains impossible to mimic down to all of it's subtle nuances. However, listen to FPGA 'HOAX HAMMOND'! (cont.)
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.