FPGA Developer Tutorials
fpgatutorial.com
fpgatutorial.com
[0]: https://twitter.com/whitequark/status/1333484002708254728 [1]: https://zipcpu.com/blog/2020/11/26/zipcpu-biz.html
Can anyone point me toward good beginner dev boards? Doesn't have to be particularly powerful or anything, just cheap
The Arty A7 is a good 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=... DE0 doesn't look too bad and also cheaper: 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/ope... and cheap at 16 euro). There's also good open source toolflow support with 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.
If you don’t mind nMigen, it can target the DE-10 Nano. You still need to install Intel’s bloated Quartus suite however.
It also supports the ICE40 line.
[1] https://www.crowdsupply.com/1bitsquared/icebreaker-fpga [2] https://www.digikey.com/en/products/detail/lattice-semicondu...
[1]: https://reference.digilentinc.com/reference/programmable-log...
http://www.latticesemi.com/Products/DevelopmentBoardsAndKits...
ICE40 board directly from the FGPA manufacturer. It's cheap has an open source toolchain and works without any additional hardware. Just plug it in and go.
https://projectf.io/posts/hello-arty-1/
It’s hands-on rather that theoretical.
For a more learning-by-doing-it tutorial, I highly recommend fpga4fun
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-...
It includes readings, video lectures, homeworks(including solutions) and labs
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.