# FPGA-Core Tutorial This tutorial tree follows `ROADMAP.md`. Each phase and subphase has a learning note with the same structure: - Context - Goals - New Concepts - How To Think About It - Learning Tasks - Pitfalls - Tooling And Testing - References The notes assume strong Linux/systems experience and beginner-to-intermediate FPGA and digital-design experience. They intentionally avoid giving implementation code. The goal is to explain what to learn, what to verify, and what mistakes to avoid. ## Phase Index - [Phase 0 - Architecture Contract](phase-00-architecture-contract/phase-00.md) - [Phase 1 - ALU + M Unit](phase-01-alu-m-unit/phase-01.md) - [Phase 2 - Register File](phase-02-register-file/phase-02.md) - [Phase 3 - Decoder](phase-03-decoder/phase-03.md) - [Phase 4 - First CPU](phase-04-first-cpu/phase-04.md) - [Phase 5 - Branches And Jumps](phase-05-control-flow/phase-05.md) - [Phase 6 - Load/Store](phase-06-load-store/phase-06.md) - [Phase 7 - Memory-Mapped UART](phase-07-uart-mmio/phase-07.md) - [Phase 8 - GCC Toolchain Integration](phase-08-gcc-toolchain/phase-08.md) - [Phase 9 - GCC-Built BIOS / Serial Monitor](phase-09-bios-monitor/phase-09.md) - [Phase 10 - Minimal ELF Loader](phase-10-elf-loader/phase-10.md) - [Phase 11 - Tiny Kernel + Command Shell](phase-11-tiny-kernel/phase-11.md) - [Phase 12 - CSRs + M-Mode Traps](phase-12-csrs-traps/phase-12.md) - [Phase 13 - Timer](phase-13-timer/phase-13.md) - [Phase 14 - Interrupt Controller](phase-14-interrupt-controller/phase-14.md) - [Phase 15 - Atomics](phase-15-atomics/phase-15.md) - [Phase 16 - Pipeline](phase-16-pipeline/phase-16.md) - [Phase 17 - SPI Flash + DRAM](phase-17-flash-dram/phase-17.md) - [Phase 18 - M/S/U + Sv32](phase-18-privilege-sv32/phase-18.md) - [Phase 19 - Linux Boot Contract](phase-19-linux-boot-contract/phase-19.md) - [Phase 20 - Linux](phase-20-linux/phase-20.md)