129Total chapters
20Modules
129Chapters live
20 / 20Active modules
Modes you derive, not memorise
The full-duplex shift-register model and the launch/sample clocking contract come first — so Modes 0–3 are derived from CPOL and CPHA rather than recited from a table.
Built for RTL, DV and FPGA work
Master and slave RTL as flagship modules, plus SPI clock domains, synchronizers, and the input/output delay constraints that decide whether a slave closes timing.
Design → verify → debug
Verification planning through monitors, scoreboards, SVA, coverage and a UVM agent — then a systematic waveform-debug method, and a design-and-verify capstone.
SPI Complete Curriculum
Your Learning Roadmap
129 chapters · 20 modules — full-duplex shift-register transfers, derived CPOL/CPHA modes, master and slave RTL, and SPI clock domains.
129of 129 chapters live
100% complete
Module 1
SPI Architecture and Mental Model
Module 2
SPI Timing Fundamentals
Module 3
CPOL, CPHA, and the Four SPI Modes
Module 4
SPI Framing
Module 5
SPI Write Transactions
Module 6
SPI Read Transactions and Latency
Module 7
Multi-Byte, Burst, and Continuous Transfers
Module 8
Bus Ownership and Multi-Slave Systems
Module 9
SPI Performance
Module 10
Real Devices and Datasheet Interpretation
Module 11
SPI Flash and Boot
Module 12
Dual, Quad, Octal SPI, and XIP
Module 13
Designing an SPI Master in RTL
13.1From Protocol to Design Requirements13.2Master Microarchitecture13.3The Master Control FSM13.4Clock Divider and SCLK Generation13.5CPOL/CPHA-Aware Edge Control13.6TX and RX Shift Registers13.7Chip-Select Generation13.8Configurable Transfer Width and Bit Order13.9Multi-Byte and Back-to-Back Transactions13.10Busy/Done/Valid Interface, Reset, and Abort13.11Synthesizable Master Architecture and RTL Review
Module 14
Designing an SPI Slave in RTL
14.1Slave Microarchitecture and Clocking Assumptions14.2CS Detection and Transaction Boundaries14.3MOSI Capture and Bit Counting14.4MISO Generation and Launch Timing14.5MISO Output Enable and Release14.6CPOL/CPHA Handling in a Slave14.7Transfer Width, Partial Frames, and Aborts14.8Reset Behaviour and Safe Idle14.9The System-Side Interface14.10Synthesizable Slave Architecture and RTL Review
Module 15
SPI Clock Domains and FPGA Timing
15.1Why an SPI Slave Is a Clock-Domain Problem15.2Architecture A — SCLK as a Clock Domain15.3Architecture B — Oversampling SCLK15.4Choosing an Architecture15.5Synchronizers and Their Limits15.6Handshake and FIFO Crossings15.7Input and Output Delay Constraints15.8FPGA I/O Registers and Timing Closure15.9CDC and Constraint Failure Modes
Module 16
SPI Verification Fundamentals
Module 17
SPI Assertions, Coverage, and UVM
Module 18
SPI Debugging and Waveform Reasoning
18.1A Systematic Waveform Debug Method18.2Wrong CPOL, Wrong CPHA, Wrong Sampling Edge18.3Bit Shifts, Bit-Order Mismatch, and Clock-Count Errors18.4Transfer-Width and Dummy-Cycle Errors18.5CS Timing Faults and Partial Frames18.6Read Corruption and MISO Contention18.7RTL, CDC, Constraint, or Testbench?
Module 19
SPI in FPGA and SoC Integration
Module 20
Capstone — Design and Verify a Configurable SPI Controller
20.1Capstone Requirements and Specification20.2Microarchitecture and Design Decisions20.3RTL Implementation and Mode Handling20.4Timing, Constraints, and CDC Considerations20.5Assertions, Reference Model, and Scoreboard20.6Constrained Random and Coverage Closure20.7Bug Injection, Waveform Debug, and Design Review
