How easy are FPGA's to hook up and use use compared to traditional microcontrollers?
A brief explanation of why FPGA are a lot more complicated to setup and get working than microcontrollers.
A short video linking to several other FGPA videos.
NOTE: This is very old footage that was meant to be part of a series of videos on trying out some FPGA demo boards. It's been sitting around for too long, so I'm uploading all the footage I have now.
What is an FPGA: https://www.youtube.com/watch?v=gUsHwi4M4xE
FPGA Implementation Tutorial: https://www.youtube.com/watch?v=7AFGcAyK7kE
What is JTAG: https://www.youtube.com/watch?v=TlWlLeC5BUs
FPGA Demo Boards: https://www.youtube.com/watch?v=XZpYfm7jOt8
Forum: http://www.eevblog.com/forum/blog/eevblog-635-fpga%27s-vs-microcontrollers/'>http://www.eevblog.com/forum/blog/eevblog-635-fpga%27s-vs-microcontrollers/
EEVblog Main Web Site:
http://www.eevblog.com
EEVblog Amazon Store:
http://astore.amazon.com/eevblogstore-20
Donations:
http://www.eevblog.com/donations/
Projects:
http://www.eevblog.com/projects/
Electronics Info Wiki:
http://www.eevblog.com/wiki/
A brief explanation of why FPGA are a lot more complicated to setup and get working than microcontrollers.
A short video linking to several other FGPA videos.
NOTE: This is very old footage that was meant to be part of a series of videos on trying out some FPGA demo boards. It's been sitting around for too long, so I'm uploading all the footage I have now.
What is an FPGA: https://www.youtube.com/watch?v=gUsHwi4M4xE
FPGA Implementation Tutorial: https://www.youtube.com/watch?v=7AFGcAyK7kE
What is JTAG: https://www.youtube.com/watch?v=TlWlLeC5BUs
FPGA Demo Boards: https://www.youtube.com/watch?v=XZpYfm7jOt8
Forum: http://www.eevblog.com/forum/blog/eevblog-635-fpga%27s-vs-microcontrollers/'>http://www.eevblog.com/forum/blog/eevblog-635-fpga%27s-vs-microcontrollers/
EEVblog Main Web Site:
http://www.eevblog.com
EEVblog Amazon Store:
http://astore.amazon.com/eevblogstore-20
Donations:
http://www.eevblog.com/donations/
Projects:
http://www.eevblog.com/projects/
Electronics Info Wiki:
http://www.eevblog.com/wiki/
Hi. In this video, we're going to take a look at a couple of affordable Fpga starter kits to get you into Fpgas But before I jump into that I thought I'd just do a quick little uh primer here on exactly how easy is it to hook up and use an Fpga as I mentioned in my previous videos which I'll link in. The answer is not very easy at all. Take for example: um, your classic micro controller here your p, your AVR your MSP whatever.
It is pretty easy for a beginner to use, even if you don't use something simple like a uh development uh board like an Arduino. For example, they're really easy. You get your little pick or your AVR chip. You stick it on your breadboard, you hook up 5 volts to it and you can Flash an LED just using a simple lowcost uh program which plugs into your USB port, couple of wires come over, goes into your chip and Bobs your uncle.
really easy to do. They got build-in oscillators like there might be a reset pin on here you often you don't even need to worry about that cuz it's got an internal pullup. There's no other configuration stuff. Internal oscillators allow the thing to work, run your program and you can get a flashing LED uh Blinky circuit up and running very easily and cheaply.
But is it the same for Fpgas Nope. Let's take a look at why. So you can't just do the same thing you can with the micro here rolled on your breadboard. hook up your uh 5V Supply hook up your USB programmer JTAG programmer to the thing and get it to Blink your lead.
It's not that easy like it is with a microcontroller. Yes, you can get uh, simple, cheap, uh little JTAG programmers which I've done a separate video on that will be linked down below how the JTAG uh programming system works for Fpgas And but yeah, you can get these cheap programmers and but it doesn't work the same as micros. Why? Because of quite a few things which we're going to take a look at. First of all, they come in a usually come in pain in the ass BGA packages Not a simple, uh, friendly dip package which you can just plug into your breadboard.
Maybe some of the lowend ones might come in a quad flat pack, but it might be. you know, 100 pins or something like that. Real pain in the ass. So right off the bat there, you're going to have to mount this thing on some sort of adapter board at a bare minimum to get the thing.
uh, in a usable format that you can connect all your stuff up to. The next thing is that these things are volatile. What that means is that they don't have flash memory in them like uh, your microcontroller does. So yeah, you can just program it via the Uh JTAG programmer.
but soon as you remove the power poof, your Design's gone. You have to download it again. Hopeless. Um, so we'll take a look at that.
Next thing is is that there? Um, there's no internal OS oors in these things like there are on your micro controller. So once again, you've got to add in an external oscillator just to get the damn thing working. Oh, and the next thing is that they're generally not 5V compatible, so you can't just hook them up to your regular 5V power supply like you used to. Heck, some of them you can't even hook up to a 3.3 Vol Supply They often require multiple Uh voltages for internal core voltages and stuff like that for some of your high end ones, some of you lower end ones. No, you can just get away with single 3.3 but it's something to be aware of. These things aren't easy. We haven't even gotten to all the configuration pins yet. So here's just some of the crazy stuff you might need to add in red here around your basic circuit, which you didn't have to add for your micro controller.
here. This is like for a xylin Fpga for example. it's not bang on, it's just a rough example. We'll do a screen capture in the middle of exactly what you need for a basic uh JTAG flash uh boot configuration for a typical Fpga But as I said, it's going to uh change based on the vendor based on the Uh family of Fpga so you have to read the documentation.
The very extensive documentation as we'll see for the individual for the TP exact Fpga which you're using just to get the damn thing up and running. So you've got your USB simple little USB uh, JTAG programmer here. But you now need a second chip here, which is your configuration flash memory which stores all the information for your Fpj. Then you got to hook up that correctly.
You have to tie it into the JTAG system that I've done the video on so that it uh, forms a loop uh through the JTAG chain. there it's called and you have to get that right. If you screw that up, it's just not going to work. Um, then you've got all the uh, configuration lines, the data in knit reset lines, the clocks, uh, the done line, all that sort of stuff.
You've got to hook that up correctly. If you screw up one of those lines and you don't get it right, it's just not going to work. And then you got various uh VCC voltages for your different banks which I've done a separate video on before linked down below and you've got weird pins like H swapp en. what does that do? Well, you got to read the documentation to find out, don't you? Uh, you've got mode pins down here.
For example, in these Zink Fpga you got to put those in a certain configuration to power the thing up. Oh, sometimes you don't. Now with the more modern families, they got a separate J tag interface H But there's the thing is. there's a lot of stuff you got to do this.
Uh, flash over here has to have the same JTAG programming voltage as everything else. and if all that stuff isn't done, then you know your Fpga is just not going to work. It's going to be. You're going to be sitting there scratching your head and saying these Fpga suck I'm going back to my microcontrollers.
But basically why I'm doing it. All this and telling you about it is because it's not easy to do for a beginner, so a beginner shouldn't be mucking around with all this stuff. You should get one of these demo kits that we're going to take a look at that have all this stuff already done for you so and already hooked up so you don't have to worry about any of this stuff. It just you know somebody's done all the hard work to figure out how to get this thing to boot up and make it work and just to show you that I wasn't kidding. Here is the Spartan 6 Fpga configuration User guide. This is just for the configuring and getting your Fpga up and running and doing what you want. And uh, there's a different one of these for each different Zyink family. and the other manufacturers will also have uh, similar types of guides and this guide is well, 164 pages long.
Folks, that is, just to get the Fpga configuration doing various things. And granted, there are lots of different ways that you can configure uh, Fpgas But you know, look at this sort of stuff. It's configuring all sorts of highspeed priority options Jtags Master Slos nonm multi boot safe, upgrade blah blah blah Select map data loading Ah man, you name it. look at it.
Unbelievable. But let's go down here. You don't get down our CRC configurations daisy chain. Oh man, it's incredible.
But let's go down to page H 26, shall we? I think it's on. Get down to page 26 here. and uh, bingo! Here is our basic configuration that we're going to use for a uh, Xyl Linkx Spartan 6 for example. And that's how to hook it up.
There's the Fpga There's the Uh platform flash memory as they call it, the external flash memory. They've got the daisy chaining of the Uh J tag there. You can see like TDI coming in TD going out into TDI of The Flash Tdo going going back out to your Um Zyink cable header here for your uh programmer and there's those mode pins there. There's H swap enable the various Bank voltages there and there and look if you don't get this VCC Ox pin.
If you forget to hook that up, then well your J Tag's not going to work and you know the things. Just going to sit there and do nothing and you're going to be scratching your head. Think it might be a software problem or I don't know something going on. So there's all sorts of things you have to hook up just to get your Fpga programmed working and booted up just so you can run that Blinky lead program.
It's incredible and there's still 10 and something pages left. Oh my goodness. But most of the time you don't have to look at all this because you're not going to be using the more obscure modes. But anyway, that's how complicated it is.
Um.
comparing an FPGA to a microcontroller is like comparing a dog to a cat. They are completely different devices intended for completely different things. The author clearly does not understand that. You can implement a microcontroller in the FPGA fabric. You cannot implement an FPGA in a microcontroller. This video is an example of someone putting together a video just so they can claim they uploaded a video to youtube.
No mention of these AT ALL in university undergrad
As an FPGA Engineer, I have had these difficulties whilst learning how to get going with the tech. However these devices are not intended to be hobby friendly, they are for specific applications and recently are becoming more popular due to the concurrent nature of the tech, also because you can design pretty much anything digital in these devices they are great for recreating obsolete protocols. But yes the tool chain and documentation is a pain especially for xilinx (but hey its free unless you want a paid core). I'd encourage people to get involved with them though, as there is a world wide shortage of engineers who can use them, and generally it's a well paid job with good job security.
super as always
Your energy and the clarity of this presentation is stellar! The insight into attempting to experiment with a BGA package (as if the Quad Flat Pack was not difficult enough) is so "right on".
Maybe it is because I am not an FPGA expert, but I don't feel like you were comparing apples to apples here. From your discription of FPGAs, it seems like you were talking about the IC by it's self. An Arduino is not the ATmega 328p, it is a whole package. It includes the oscillator, the USB interface and more. So why not compare an Arduino to a FPGA development board?
You have some great content, but this video like a lot others (that you create) has such a negative tone. Recognize the fact it is hard to get into FPGAs and unlike Arduino (which is open-source) FPGAs do not have a big community. But, that shouldn't stop a person, give some pointers on how to go about it. Remind people to start small.
FPGAs are "a pain in the @$$!" LoL!! That about sums it up. Thanks Dave!! ๐
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!
Your voice is amazing
STM32 is my ultimate choice ๐
FPGAs are better but, don't try to replace microcontroller project with an FPGA!!!
Ok, got it, massively complex, Iโll wait โtil tomorrow to try.
Consuming a lot of your videos and this will bug me every day if I don't ask. Is Athleanx your brother?
Thank you
No wonder! FPGA has not replaced microcontrollers!!
everyone is buying development boards and Dave is here making his own.
The Intel/Altera Max 10 FPGA seems a bit easier than most FPGA's. It has internal Clock, internal Flash and internal SRAM. Intel also deliver dedicated power solution for easy implementation. It also Comes with ADC, and even optional NIOS ARM configuration. It also has support for Different types of RAM, PCIE, and Flash memory. It offers up to 50.000 Logic elements. Can do some cool stuff with this thing.
Still micro controllers might be easier though. But it all comes down to the application you need it for I guess.
uncle Bob๏ผlove your video๏ผ
where are u from๏ผScottish or Ireland ๏ผ
Lots of years ago I saw an article on using an EPROM (yes one of those ) as a logic controller. Vauguely from memory there was a step ticker which stepped through the EPROM addresses and the output pins were serviced. I cannot recall how inputs were handled but the system simply stepped through the EPROM addresses and the burnt status presented to the outputs. A sort of Truth Table.
Sorry to be vaugue, it is 30 yrs ago in Z80 days and 2708/2716 time.
@UCkHnngw4Sq29VOpqVTUZWGQ/
subscribe to this channel for FPGA.
Is there any new update about fpga 2020?!
Hi!
Thanks for the video!
Can you give an example of calculations/operations which are better suited for the MCU rather than the FPGA fabric in the modern SoC which have both? I have been designing controllers for DC/DC converters for quite some time now on FPGAs (and then ASICs) and have never felt i need an MCU. Would be happy to hear any thoughts on the matter
me, waking up out of the blue in the middle of the night, sweating
"What happened?"
– I just had a terrible nightmare!
"What was that about?"
– I was configuring an FPGA!
Hi, gud one for hardware comparison but you should re-edit this one with additional info. Such as there working technique, spees etc.
Well then, use a PIC.
I love FPGAs – can't argue with the complexity though – I use bi-directional bus switches to handle voltage level conversion (the commonly used mosfet level translator affects rise and fall times which can be significant in some designs). An EEPROM eliminates the need to reprogram it after cycling power and there are Non-Volatile FPGAs available. But yeah – if you can get the job done with an AVR, PIC, etcetera, I agree with Dave 100% that would be the way to go. I am about to watch ALL of his FPGA videos – Dave is a Dynamic personality with a beautiful method of presentation (i.e. Genius)
grear video, thanks
I love FPGAs all the way ๐