I build FPGA boards as a hobby, so here's my perspective on the subject: 1. Since I'm paying for everything with my own money, price is everything! 2. Keeping in mind (1), Xilinx is the best vendor as they give a lot of useful IPs for free in their free edition of tool. For example, it's the only vendor which gives free DDR3 controller IP. 3. The downside is that their modern FPGAs are BGA only. I used to be scared of BGAs, but since I bought a very cheap (~$200) reflow oven, it is not a problem anymore. 4. What IS a problem though is PCB. BGAs require at least 4-layer PCB which are quite reasonably priced as long as you don't demand very fine traces and drills. But price goes up very quickly as your demands grow. For example, the cheapest 4-layer board with 6/6 mil traces and 0.3 mm drill costs about $50 for 5-10 boards 10x10cm (these are good enough to handle 1.0 mm pitch BGAs). But same 4-layer 10x10 cm boards with 5/5 mil and 0.25mm drill (good for 0.8 mm BGA pitch and up) are already $150+. 6 layer boards start at $200. Going even higher is beyond my hobby budget. And this is just for the board. 5. As for actual FPGA chips, currently low-to-midrange Artix-7 in 1.0 mm or 0.8 mm pitch packages are the only realistic option. Can't wait to get my hands on new Spartan-7 chips as they are supposed to be cheaper while still providing a good amount of headroom in terms of density and performance. 6. Since I always get several PCBs with each order, I usually fit one with larger density FPGA and it essentially becomes my devboard. Things like ILA require additional resources (which are not needed on "production" boards) so having some extra is very welcome. To sum it up, it's quite expensive hobby, but oh boy that feeling when the board you've just spent a couple of hours assembling comes to life for the first time - it's magical and is totally worth all the trouble! :) And yes - I've stumbled across a good portion of pitfalls you've described (like using wrong pin for clock) :) I wish I had this video when I've designed my first Artix board - that would save me several board respins and few hundred bucks worth of components. But I didn't give up as I enjoy the process almost as much as I do like results. Thanks for your video!
Thanks for the comment! Very interesting information. I don't think there are many people like you who would buy their own reflow oven to do hobby projects, so that's cool that you enjoy that. You're right that Xilinx does a great job of offering up lots of IP in Vivado, I like that. I haven't used Altera (Intel) in a long time, so I'm not sure what their IP catalog looks like today. But I really like to do things myself, which might be stubborn sometimes. That's probably why I'm drawn to Lattice, because its a simple FPGA and you gotta figure it all out yourself. Not to mention the IceStorm project which completely reverse engineered the design to open source the synthesis and place and route tools. Pretty cool stuff if you haven't seen it: th-cam.com/video/P-9WCFi0p-0/w-d-xo.html
Maybe not many people going as far as I do when it comes to complexity of boards, but many people make reflow oven out of toaster ovens and even skillets. So reflowing is definitely not as exotic among hobbyists as it once was, especially if you're OK with using leaded solder paste (as it's much more forgiving and easier to work with, hence most of them use leaded solder). As for Altera/Intel, their strategy appears to be making some money off software and using this funds to make chips themselves cheaper (and they are a bit cheaper vis-a-vis equivalent Xilinx devices). This is obviously great for mass-production because as volume grows at some point savings on chips price will overtake fixed costs of software/IP licenses, but for the hobbyists like me it's a non-starter. I also like doing stuff myself as much as I can (hence why I'm building my own boards instead of using pre-made devboards), but I'm just not (yet?) at the level when I can roll out my very own DDR3 controller, or Microblaze-level soft-core CPU. Besides when you build a board from scratch, it's important to be able to separate hardware issues from bitstream ones, because troubleshooting issues when both your HW and software are unproven and thus could be a culprit is much harder than when you have at least one part of this equation as "known good" if you know what I mean. As for Lattice, I used their ICE40 Ultra chips (ICE5LP4K to be exact) on a project, and they are good if you can fit your design into them (and QFN package is also very hobbyist-friendly as 2-layer PCBs cost next-to-nothing these days - $5 for 10 boards of 10x10 cm is extremely cheap) and if you can find your way around some schematic idiosyncrasies, but they are now universally out-of-stock and had to be ordered directly from Lattice with minimum order of 500 units, which is obviously a no-go for me. I've managed to buy 10 of them when they were still in stock at Digikey, but eventually I will run out of them. I was thinking about using their higher-end FPGAs (which are roughly equivalent to Artix-7/Cyclone-V family), but toolchain for them is subscription-based. And again, the same issue with IPs as with Altera/Intel.
Which parts? The ECP5? I used an ECP5 in a design. Lattice offers their DDR3 controller free of charge for usage lasting up to 4 hours. Meaning after the design was running for 4 hours the DDR controller would time out and stop communicating with the memory. After that you do need to buy the IP which is like $1000. The license for Diamond (their IDE) is free, unless you need the high-speed transceivers, you need to pay for that. But yeah I see how as a hobbyist, paying for IP is a non-starter. I'm very interested in what's going to happen with the Intel/Altera merger. AI is something that fascinates me, and it seems like Intel bought Altera to add faster parallel processing in pursuit of having the best AI-ready cloud. Interesting stuff.
There were some rumors that Intel is going to make hybrid x64/FPGA chips and that's what I would really like to try out. Don't get me wrong - Zynq are great chips for many users, but having FPGA built into your desktop computer is just in another league. This is especially so for me as I'm professional software developer, so x64 programming is what I do for living. I'm working on computer vision designs so neural networks is something I'm very interested in myself.
asmi06 I'm an engineering student and boy! you got me excited with this. Salute to you Sir. Would love to learn from you about laying the board. Be my guru 🙏🙏🙌
Love your videos. I'm a uni student studying EE and those are good stuffs you putting out there, that are not really taught in uni in that much detail :) Thank You
Hey Russel , Thanks a lot for all the good content and the hard work . Your videos are the best out there in the internet . I wanted to suggest that you can start a new season of tutorials but this time go with more advance tutorials with more complex projects and ... . You might even wanna provide a new board with higher capacity if needed . But even this GoBoard might suffice for a lot more complex projects with more advanced learning material . Best Regards
Great tutorials, thank you for the opensource information, it makes this system more popular and may attract more projects and professional applications :)
One thing to add to about temperature --- If this board is going to end up in a 1U chassis in a datacenter with attachment to CPU via PCIe, you might want to be careful what you want to run. You will find air flow to be a problem, and liquid cooling might be difficult to fit in a 1U chassis. Otherwise, this is a great video on a not-so touched topic.
5:47 I wonder what FPGA family he has in mind (and what kind of application). 200 MHz was pretty fast in a Xilinx Spartan 6, but in 2017 I would have thought he'd be some generations beyond that. Even in a Kintex 7, I would put the "pretty fast" mark at ~300 MHz. But I guess it depends what you're trying to do.
I have a question. I'm designing/building a simple 8 bit computer in a fpga, the artix-7 35t to be exact. using vivado. I'm watching ben eater build it on a bunch of breadboards and on his registers he has tri state buffers before hooking it to the main bus. from what I know fpgas don't have tri states but do a combination of clb blocks to accomplish this. is it necessary to design a bus in the fpga with this feature? or is there a way around it? whichis best to build it in vhdl/verilog/schematics? or in other words what's the best way to go about making a bus and multiple registers on that bus so they don't interfere with each other?
Honestly hard for me to answer this question without seeing exactly what you're trying to do. Try posting your question (and code) to stackoverflow.com. Good luck.
You don't need tristate buffers. All you need to do is to decide what data is on the bus, based on who is currently asserting to it. In Verilog for example, you can do this with if statements, or ternary operators ( ? : ). This gets inferred as multiplexers by your design tool, which, on FPGA, will get mapped into LUTs.
Board usually refers to Printed Circuit Board (PCB). Platform I'm not sure how it's used. I've heard platform used though to describe the environment on which the FPGA is operating. For example if it's an FPGA on a radar system the radar system is the platform. Most boards don't have SoC or processor. You should check out my board! www.nandland.com/goboard/
And what about the usable boards without an FPGA(ASIC and logic stuff like that) either? And can you please tell me how can several boards be connected to each other(via pins? or ..).. Thanks a lot for your attention!!
Narek Hambardzumyan those boards likely need to communicate to something. Or perhaps they can operate on their own? Boards connected by pins yes. You need to understand what the Input/Output to the board looks like. If it's a communication interface like UART, SPI, etc look into how it works. Good luck.
I build FPGA boards as a hobby, so here's my perspective on the subject:
1. Since I'm paying for everything with my own money, price is everything!
2. Keeping in mind (1), Xilinx is the best vendor as they give a lot of useful IPs for free in their free edition of tool. For example, it's the only vendor which gives free DDR3 controller IP.
3. The downside is that their modern FPGAs are BGA only. I used to be scared of BGAs, but since I bought a very cheap (~$200) reflow oven, it is not a problem anymore.
4. What IS a problem though is PCB. BGAs require at least 4-layer PCB which are quite reasonably priced as long as you don't demand very fine traces and drills. But price goes up very quickly as your demands grow. For example, the cheapest 4-layer board with 6/6 mil traces and 0.3 mm drill costs about $50 for 5-10 boards 10x10cm (these are good enough to handle 1.0 mm pitch BGAs). But same 4-layer 10x10 cm boards with 5/5 mil and 0.25mm drill (good for 0.8 mm BGA pitch and up) are already $150+. 6 layer boards start at $200. Going even higher is beyond my hobby budget. And this is just for the board.
5. As for actual FPGA chips, currently low-to-midrange Artix-7 in 1.0 mm or 0.8 mm pitch packages are the only realistic option. Can't wait to get my hands on new Spartan-7 chips as they are supposed to be cheaper while still providing a good amount of headroom in terms of density and performance.
6. Since I always get several PCBs with each order, I usually fit one with larger density FPGA and it essentially becomes my devboard. Things like ILA require additional resources (which are not needed on "production" boards) so having some extra is very welcome.
To sum it up, it's quite expensive hobby, but oh boy that feeling when the board you've just spent a couple of hours assembling comes to life for the first time - it's magical and is totally worth all the trouble! :)
And yes - I've stumbled across a good portion of pitfalls you've described (like using wrong pin for clock) :) I wish I had this video when I've designed my first Artix board - that would save me several board respins and few hundred bucks worth of components. But I didn't give up as I enjoy the process almost as much as I do like results. Thanks for your video!
Thanks for the comment! Very interesting information. I don't think there are many people like you who would buy their own reflow oven to do hobby projects, so that's cool that you enjoy that. You're right that Xilinx does a great job of offering up lots of IP in Vivado, I like that. I haven't used Altera (Intel) in a long time, so I'm not sure what their IP catalog looks like today. But I really like to do things myself, which might be stubborn sometimes. That's probably why I'm drawn to Lattice, because its a simple FPGA and you gotta figure it all out yourself. Not to mention the IceStorm project which completely reverse engineered the design to open source the synthesis and place and route tools. Pretty cool stuff if you haven't seen it: th-cam.com/video/P-9WCFi0p-0/w-d-xo.html
Maybe not many people going as far as I do when it comes to complexity of boards, but many people make reflow oven out of toaster ovens and even skillets. So reflowing is definitely not as exotic among hobbyists as it once was, especially if you're OK with using leaded solder paste (as it's much more forgiving and easier to work with, hence most of them use leaded solder).
As for Altera/Intel, their strategy appears to be making some money off software and using this funds to make chips themselves cheaper (and they are a bit cheaper vis-a-vis equivalent Xilinx devices). This is obviously great for mass-production because as volume grows at some point savings on chips price will overtake fixed costs of software/IP licenses, but for the hobbyists like me it's a non-starter.
I also like doing stuff myself as much as I can (hence why I'm building my own boards instead of using pre-made devboards), but I'm just not (yet?) at the level when I can roll out my very own DDR3 controller, or Microblaze-level soft-core CPU. Besides when you build a board from scratch, it's important to be able to separate hardware issues from bitstream ones, because troubleshooting issues when both your HW and software are unproven and thus could be a culprit is much harder than when you have at least one part of this equation as "known good" if you know what I mean.
As for Lattice, I used their ICE40 Ultra chips (ICE5LP4K to be exact) on a project, and they are good if you can fit your design into them (and QFN package is also very hobbyist-friendly as 2-layer PCBs cost next-to-nothing these days - $5 for 10 boards of 10x10 cm is extremely cheap) and if you can find your way around some schematic idiosyncrasies, but they are now universally out-of-stock and had to be ordered directly from Lattice with minimum order of 500 units, which is obviously a no-go for me. I've managed to buy 10 of them when they were still in stock at Digikey, but eventually I will run out of them. I was thinking about using their higher-end FPGAs (which are roughly equivalent to Artix-7/Cyclone-V family), but toolchain for them is subscription-based. And again, the same issue with IPs as with Altera/Intel.
Which parts? The ECP5? I used an ECP5 in a design. Lattice offers their DDR3 controller free of charge for usage lasting up to 4 hours. Meaning after the design was running for 4 hours the DDR controller would time out and stop communicating with the memory. After that you do need to buy the IP which is like $1000. The license for Diamond (their IDE) is free, unless you need the high-speed transceivers, you need to pay for that. But yeah I see how as a hobbyist, paying for IP is a non-starter.
I'm very interested in what's going to happen with the Intel/Altera merger. AI is something that fascinates me, and it seems like Intel bought Altera to add faster parallel processing in pursuit of having the best AI-ready cloud. Interesting stuff.
There were some rumors that Intel is going to make hybrid x64/FPGA chips and that's what I would really like to try out. Don't get me wrong - Zynq are great chips for many users, but having FPGA built into your desktop computer is just in another league. This is especially so for me as I'm professional software developer, so x64 programming is what I do for living.
I'm working on computer vision designs so neural networks is something I'm very interested in myself.
asmi06 I'm an engineering student and boy! you got me excited with this. Salute to you Sir. Would love to learn from you about laying the board.
Be my guru 🙏🙏🙌
Thank you for your videos. I would suggest adding I/O Banks count and supported I/O VCC ranges as requirements for selecting your FPGA.
Love your videos. I'm a uni student studying EE and those are good stuffs you putting out there, that are not really taught in uni in that much detail :) Thank You
Hey Russel ,
Thanks a lot for all the good content and the hard work . Your videos are the best out there in the internet .
I wanted to suggest that you can start a new season of tutorials but this time go with more advance tutorials with more complex projects and ... .
You might even wanna provide a new board with higher capacity if needed . But even this GoBoard might suffice for a lot more complex projects with more advanced learning material .
Best Regards
Great tutorials, thank you for the opensource information, it makes this system more popular and may attract more projects and professional applications :)
One thing to add to about temperature --- If this board is going to end up in a 1U chassis in a datacenter with attachment to CPU via PCIe, you might want to be careful what you want to run. You will find air flow to be a problem, and liquid cooling might be difficult to fit in a 1U chassis.
Otherwise, this is a great video on a not-so touched topic.
5:47 I wonder what FPGA family he has in mind (and what kind of application). 200 MHz was pretty fast in a Xilinx Spartan 6, but in 2017 I would have thought he'd be some generations beyond that. Even in a Kintex 7, I would put the "pretty fast" mark at ~300 MHz. But I guess it depends what you're trying to do.
13:55 *Actel not Atmel. ALso, can you do a video on false paths and timing. Thanks.--Bob-Esfanchi
I have a question. I'm designing/building a simple 8 bit computer in a fpga, the artix-7 35t to be exact. using vivado. I'm watching ben eater build it on a bunch of breadboards and on his registers he has tri state buffers before hooking it to the main bus. from what I know fpgas don't have tri states but do a combination of clb blocks to accomplish this. is it necessary to design a bus in the fpga with this feature? or is there a way around it? whichis best to build it in vhdl/verilog/schematics? or in other words what's the best way to go about making a bus and multiple registers on that bus so they don't interfere with each other?
Honestly hard for me to answer this question without seeing exactly what you're trying to do. Try posting your question (and code) to stackoverflow.com. Good luck.
You don't need tristate buffers. All you need to do is to decide what data is on the bus, based on who is currently asserting to it. In Verilog for example, you can do this with if statements, or ternary operators ( ? : ).
This gets inferred as multiplexers by your design tool, which, on FPGA, will get mapped into LUTs.
Do you plan on making DSP related videos?
Eventually. But you should check out Patreon. For $5/month you can suggest content! www.patreon.com/user?u=2732133
@@Nandland Hey I would like to study more about advanced stuff ? Can i do with a Patreon account.
@@kavinduvindikasomadasa352 not necessarily since it is for suggestions
HELP PLS ... What is the exact difference between the BOARD and PLATFORM? Are there usable boards without SoC or any processor?
Board usually refers to Printed Circuit Board (PCB). Platform I'm not sure how it's used. I've heard platform used though to describe the environment on which the FPGA is operating. For example if it's an FPGA on a radar system the radar system is the platform. Most boards don't have SoC or processor. You should check out my board! www.nandland.com/goboard/
And what about the usable boards without an FPGA(ASIC and logic stuff like that) either? And can you please tell me how can several boards be connected to each other(via pins? or ..).. Thanks a lot for your attention!!
Narek Hambardzumyan those boards likely need to communicate to something. Or perhaps they can operate on their own? Boards connected by pins yes. You need to understand what the Input/Output to the board looks like. If it's a communication interface like UART, SPI, etc look into how it works. Good luck.
r u avail for consult at a fee?