Top 1,000 Features Creators Events Podcasts Extensions Blog Explorer CSV Download


< >

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

#677on PLDB 6Years Old
Download source code:
git clone

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

View source

- Build the next great programming language · About · Resources · Acknowledgements · Part of the World Wide Scroll