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.
- RISC-V Assembler: Arithmetic
- RISC-V Assembler: Logical
- RISC-V Assembler: Shift
- RISC-V Assembler: Load Store
- RISC-V Assembler: Branch Set
I’m working on further installments for release in the first half of 2024.
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
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
- More maths to follow
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