FPGA & RISC-V Tutorials
Tutorials to get you started and improve your design skills. See also Recommended FPGA sites.
FPGA 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
RISC-V Assembler
New for 2024! Get comfortable with RISC-V assembler.
- Arithmetic
- Logical
- Shift
- Load and Store
- Branch and Set
- Jump and Function
- Multiply and Divide
- Assembler Cheat Sheet
Hello FPGA
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
Learn about numbers and put maths to work in Verilog algorithms.
- 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
FPGA 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