Questions Concepts
GitHub icon

Spatial

Spatial - Programming language

< >

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

Source code:
git clone https://github.com/stanford-ppl/spatial
#873on PLDB 5Years Old

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 Token Example
Comments
// A comment
Line Comments //
// A comment
Semantic Indentation X

View source

- Build the next great programming language · Search · Add Language · Features · Creators · Resources · About · Blog · Acknowledgements · Queries · Stats · Sponsor · Traffic · Traffic Today · Day 305 · feedback@pldb.com · Logout