FPGA Tutorials
Tutorials to get you started and improve your design skills. See also Recommended FPGA sites.
Graphics
Learn graphics at the hardware level and improve your FPGA design skills:
- Beginning FPGA Graphics - video signals and basic graphics
- Racing the Beam - simple demo effects with minimal logic
- FPGA Pong - recreate the classic arcade on an FPGA
- Display Signals - revisit display signals and meet colour palettes
- Hardware Sprites - fast, colourful graphics for games
- Framebuffers - bitmap graphics featuring Michelangelo’s David
- Lines and Triangles - drawing lines and triangles
- 2D Shapes - filled shapes and simple pictures
- Animated Shapes - animation and double-buffering
Hello
An introduction to FPGA development and Verilog with the Digilent Arty or Nexys Video boards:
- Part 1: Hello Arty 1 & Hello Nexys 1
- Part 2: Hello Arty 2 & Hello Nexys 2
- Part 3: Hello Arty 3
Maths and Algorithms
The latest Project F tutorial series:
- Numbers in Verilog - introduction to numbers in Verilog
- Vectors and Arrays - working with Verilog vectors and arrays
- Multiplication with DSPs - efficient FPGA multiplication
- Fixed-Point Numbers - precision without complexity
- Division in Verilog - divided we stand
- More maths to follow
How To
Handy recipes for solving FPGA problems. See the Tools page for FPGA dev and testing tools.
Hardware & Devices
- SPRAM on iCE40 FPGA - use SPRAM with Yosys and compare it with Block RAM
- Memory Types - understand FPGA memory types, including BRAM, HBM, SRAM, and DRAM
- Initialize Memory in Verilog - use $readmemh and $readmemb to initialize RAM or ROM
- Video Timings: VGA, SVGA, 720p, 1080p - work with standard monitors and TVs
Maths
See the new Maths Tutorials for topics including vectors, fixed-point numbers, division, and DSPs.
- Sine & Cosine - lookup sine and cosine from ROM
- Square Root - calculate square roots for integers and fixed-point
Have a question or suggestion? Contact @WillFlux or join me on Project F Discussions or 1BitSquared Discord. If you like what I do, consider sponsoring me on GitHub. Thank you.