learn-fpga is a teaching resource for learning FPGA design, processor architecture, and RISC-V implementation using affordable hardware.
The project addresses the challenge of making FPGA and processor design education accessible by providing a complete learning path grounded in practical, low-cost hardware. It centers on FemtoRV, a minimalistic RISC-V CPU implementation written in readable Verilog that directly follows the RISC-V specification. The elementary version spans only 400 lines of documented code, making the design transparent and understandable. The repository includes progressively more complex variants and a companion system-on-chip with drivers for common peripherals like UART, LED matrices, OLED displays, SPI RAM, and SD cards. The teaching approach moves from the simplest designs, such as LED blinkers, through to fully functional RISC-V cores capable of computation and graphics rendering. The project also demonstrates integration with LiteX, a framework for assembling SoCs by composing components in Python, showing how FemtoRV can be used as a processor within larger systems.
This resource suits educators and students who want hands-on experience with processor design and FPGA tooling without substantial budget constraints. The minimal hardware requirements mean a complete learning setup costs around forty dollars per student. The step-by-step tutorial structure, progressing from basic digital logic to pipelined processor design, makes it suitable for courses ranging from introductory digital design to advanced computer architecture. The inclusion of LiteX examples provides a bridge to more sophisticated SoC design practices for those ready to move beyond the educational core.
Development activity shows consistent engagement with the teaching mission. The repository maintains a structured tutorial progression with multiple episodes covering distinct architectural concepts. The codebase includes both minimal and elaborate processor variants, indicating iterative refinement of the educational material. The direct integration with LiteX and active support within that ecosystem demonstrates ongoing relevance to contemporary FPGA design practices.