Design a SPI (Serial Peripheral Interface) controller to read and write data to external flash memory. This project introduces you to memory-mapped I/O, timing constraints, and handling real-world clock speeds up to 50MHz.
8-10 hours including timing closure
Moderate to Advanced
~320 lines
Runs at 50MHz, supports W25Q128 flash chips
SPI is the workhorse of embedded systems: SD cards, displays, sensors, ADCs, DACs, and configuration storage. Understanding SPI gives you access to thousands of peripheral chips.
Your SPI controller enables Week 10's multi-device orchestration and opens the door to adding displays, sensors, and SD card storage.