Top 1K Features Creators Events Podcasts Books Extensions Interviews Blog Explorer CSV

Spatial

< >

Spatial, aka Specify Parameterized Accelerators Through Inordinately Abstract Language, is an open source programming language created in 2018 by David Koeplinger.

#662on PLDB 6Years Old
Download source code:
git clone https://github.com/stanford-ppl/spatial
Homepage · Source Code

Spatial: A High Level Programming Language for FPGAs


Example from the web:
import spatial.dsl._ @spatial object HelloSpatial extends SpatialApp { def main(args: Array[String]): Void = { // Create ArgIn val x = ArgIn[Int] // Set `x` to the value of the first command line argument setArg(x, args(0).to[Int]) Accel { // Create 16x32 SRAM and a Register val s = SRAM[Int](16,32) val r = Reg[Int] // Loop over each element in SRAM Foreach(16 by 1, 32 by 1){(i,j) => s(i,j) = i + j } // Store element into the register, based on the input arg r := s(x,x) // Print value of register (only shows in Scala simulation) println(r"Value of SRAM at (${x.value},${x.value}) is ${r.value}") } } }

Language features

Feature Supported Example Token
Comments ✓ // A comment
Line Comments ✓ // A comment //
Semantic Indentation X
- Build the next great programming language · Add · About · Search · Keywords · Livestreams · Labs · Resources · Acknowledgements · Part of the World Wide Scroll