Requirements & Functional Specification
Requirements Specification
The aim of the project is the implementation of the Raspberry Pi’s RP2040 programmable I/O state machine (PIO) in an FPGA to help understanding this instance and general forms of programmable state machines. Driving a 64x64 RGB LED matrix could be optional illustrations of the PIO capabilities.
Functional Specification
PIO original specification
UART
Mandatory
Compatibility to the Raspi PIO spec
Side-set
Program wrapping
Autopush and autopull
Clock dividers
Forced and
EXEC’d instructionsFull instruction set
JMP,WAIT,IN,OUT,PUSH,PULL,MOV,IRQ,SET4 state machines per PIO block
4 testing Programs
UART
SPI
Manchester encoded UART/Differential manchester (BMC) TX and RX
(I2C)
Optional:
FIFO joining
Multiple PIO blocks
Full GPIO mapping support
Additional PIO functions for common tasks
CRC calculation
Stuff bit counter
Same timing/performance capabilities within the possible frequency range of the FPGA
Video output via 64x64 RGB LED matrix
Language and compiler for PIO assembly