12 ms·
FPGA Developer Tutorials
- panpanna 6y agoThis is a great resource, but maybe a bit slow-paced for some people. For a more learning-by-doing-it tutorial, I highly recommend fpga4fun https://www.fpga4fun.com/ https://www.fpga4fun.com/
- rustybolt 6y agoI wanted to post the same link! Additionally, there is (or was, it's offline but we still have the archived site) the HamsterWorks wiki: https://web.archive.org/web/20191020150416/http://www.hamsterworks.co.nz/mediawiki/index.php/Main_Page https://web.archive.org/web/20191020150416/http://www.hamste... Additionally, this guy completely made a CPU in VHDL. Later on in the series he adds HDMI support, implements the RISC-V ISA so that he can use GCC to compile programs for his CPU: http://labs.domipheus.com/blog/designing-a-cpu-in-vhdl-part-1-rationale-tools-method/ http://labs.domipheus.com/blog/designing-a-cpu-in-vhdl-part-...
- liaukovv 6y agoTake a look at this course based on harris and harris book: https://safari.ethz.ch/digitaltechnik/spring2020/doku.php?id=schedule https://safari.ethz.ch/digitaltechnik/spring2020/doku.php?id... It includes readings, video lectures, homeworks(including solutions) and labs
- blackSparrow 6y agoAlso found some great stuff at thedatabus.io
- WillFlux 6y agoI’ve written an introduction to FPGA development with a couple of Xilinx-based boards: https://projectf.io/posts/hello-arty-1/ https://projectf.io/posts/hello-arty-1/ It’s hands-on rather that theoretical.
- lnsru 6y agoI wish there were a good tutorial about FPGA development using version control tools. It’s easy having Vivado project with couple source files, but totally uncool using block design. Especially with my own IP blocks.
- liaukovv 6y agoDoes it make sense to use schematic designs outside of ide context? You dould export them to proper hdl and check that in
- Ballas 6y agoI find vivado will often break my project (usually the axi bus config breaks, and I have not found any way to fix it). The best solution I have found is to use TCL to regenerate the project. You can generate a TCL script of your existing project. I have not tried it, but you might be able to use normal version control tools like git with the TCL script - the usefulness will depend on if things stay in the same order after an update.
- gpanders 6y agoI have tried both versioning the entire "raw" block design files and it is a mess. Vivado creates a ton of files and it's not clear which ones you need in version control in order to regenerate the BD from a fresh clone, and many of the files that you do need get modified anytime the block design is used to build the design which causes git to report file modifications. All in all, I don't recommend it. However, managing a Tcl script is very doable, and this is my preferred method now. This has some drawbacks too of course -- you have to ensure that you use the same arguments to the `create_bd_tcl` command every time you update your script, and if you need to make any modifications to the script then you need to have a process for doing that. But it's much better than the alternative.
- jeffreyrogers 6y agoThis is pretty much what we settled on where I work as well after experiencing the problems you mentioned in your first paragraph.
- abetlen 6y agoIf you're getting into this stuff a great resource I found is the ZipCPU Tutorial [0] by Dan Gisselquist. The tutorial covers both Verilog design and Formal Verification methods. It uses open source tools like Verilator and SymbiYosys so getting started is pretty easy. [0]: https://zipcpu.com/tutorial/ https://zipcpu.com/tutorial/
- anon2718 6y agoI just want to share with people that in no uncertain terms Dan Gisselquist\ZipCPU is transphobic and many members of the Open FPGA community are not a fan of him. [0]: https://twitter.com/whitequark/status/1333484002708254728 https://twitter.com/whitequark/status/1333484002708254728 [1]: https://zipcpu.com/blog/2020/11/26/zipcpu-biz.html https://zipcpu.com/blog/2020/11/26/zipcpu-biz.html
- jedimastert 6y agoI've really wanted to play with FPGAs but never really has good learning resources. This comment section is a gold mine! This is the kind of HN I like. Can anyone point me toward good beginner dev boards? Doesn't have to be particularly powerful or anything, just cheap
- yummypaint 6y agoCheck out the upduino v3. Its as cheap as they come and supported by a fully open source toolchain. I just got one a few weeks ago and it's excellent.
- liaukovv 6y agoThere is a ton of cyclone iv boards on aliexpress
- gchadwick 6y agoHow cheap is cheap? The Arty A7 is a good board: https://store.digilentinc.com/arty-a7-artix-7-fpga-development-board/ https://store.digilentinc.com/arty-a7-artix-7-fpga-developme... though costs $129 I do like the Terasic boards, the DE10 Nano is very capable: https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=1046 https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=... DE0 doesn't look too bad and also cheaper: https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=165&No=593 https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=... The downside with the Terasic boards is the Intel tooling, it's pretty terrible and has bad SystemVerilog support. Vivado (the Xilinx software that you'd use with the Arty A7) is superior in my experience. On the cheaper end of the scale the Lattice ICE40 and EPC5 FPGAs are popular searching for ICE40 board gives you a number of options (here's one that looks reasonable: https://www.olimex.com/Products/FPGA/iCE40/iCE40HX1K-EVB/open-source-hardware https://www.olimex.com/Products/FPGA/iCE40/iCE40HX1K-EVB/ope... and cheap at 16 euro). There's also good open source toolflow support with https://symbiflow.github.io/ https://symbiflow.github.io/ For a beginner I'd recommend going for the more expensive boards from a well known manufacturer (such as Digilent). You should have an easier out of the box experience with getting some basic stuff running. Yes there are some very cheap boards out there especially from places like AliExpress but you want to concentrate on learning an HDL and doing some designs not hours trying to get a poorly supported driver or toolflow to work or struggling with programming the thing because it uses some custom method that isn't well documented and doesn't just work with the FPGA vendor tooling.
- hashtag-til 6y agoAny recommendations on boards that offer good support on linux for the synthesis tooling, etc?
- Ballas 6y agoI've found the Xilinx tooling to be at least as good on linux as on Windows. The tools certainly have a fair share of quirks, but I recommend it based on Xilinx having a majority market share. So if you want to learn a saleable skill, it is a good place to start. As for the boards the pynq is really good value for money with a lot of support.
- hashtag-til 6y agoI'll have a look, thank you
- ashater 6y agopynq is a good starting board. What's really good is the software environment connected to the fpga logic via Python ecosystem. There are lots of examples via Jupyter notebooks.
- ravieira 6y agoAre there many startups using FPGA? In what industry is usage more common? I've had the desire to learn FPGA development for a while but don't much about the professional applications that I could use it for.