Project Showcase
(Last updated 2023-03-01)
This is a listing of some projects built in Spade, intended for inspiration and to get a feel for how the language looks and behaves.
Maintained projects
The following are projects which are in active use and development, and therefore usually keep up with changes to the language.
Spade-V
A five stage RISC-V pipeline implementation. Currently intended to support the base RV32 instruction set, but might be extended down the line.
DP-Executor
Hardware for running dynamic programming to optimize the fuel use of hybrid electric vehicles. Paired with a fully pipelined vehicle model, this project schedules the execution of the model across a configurable number of model evaluation units, and manages data reads and writes between units.
Birbstar
Interfaces with two ADCs to run auto-correlation on two audio signals in order to compute where sounds are coming from. Useful for finding birds.
Older projects
These are projects which are no longer actively maintained, meaning that while they might not reflect the language in its current state, they are still good showcases of its capabilities.
snoωo
A snowboarding game built by 4 people in 48 hours during a game jam in the fall
of 2022. 1366x768@30Hz
HDMI output on an ECP5 FPGA. The whole game is implemented
in hardware, meaning there is no softcore processor anywhere in the project.
Tiny Tapeout FPGA
A small FPGA with 12 2-input LUTs, submitted to tiny tapeout. Makes heavy use of the ports feature for the configuration chain.
A video showing it running on the ulx3s board. Initially it's loaded with independent 2 and gates, then I reconfigure it as a 4 way OR.
Miscellaneous libraries
A collection of libraries used by other Spade projects, primarily for communicating with external hardware. Sometimes updated to newer Spade versions when the need arrises.
- HDMI for the ulx3s board
- Sharp memory display driver
- ws2812 RGB led driver
- Has documentation of how it was implemented at https://docs.spade-lang.org/ws2812-example/
- UART transmit and receive
- mcp3002 ADC driver