This version of spatial has been deprecated. For the current version of Spatial, please go to https://github.cmo/stanford-ppl/spatial.

Documentation can be found on the website, spatial-lang.org


For a brief introduction to Spatial and its purpose, see this presentation.

For a brief rundown of the language and its constructs, see these slides and the in-depth tutorials on this website.

Get Started API Documentation Source

Spatial is a domain-specific language for describing hardware accelerators for use on FPGAs and other supported spatial architectures. The language is intended to be both higher level than hardware description languages (HDLs) like Verilog, VHDL, and Chisel, while also being easier to use than Altera’s OpenCL or high level synthesis (HLS) languages like Xilinx’s Vivado.

Language features of Spatial include:
  • Tunable, hardware specific templates
  • User specified and implicitly created design parameters
  • Design runtime and area analysis
  • Automatic parameter tuning
  • Automatic memory banking and buffering

To run Spatial on the new Amazon EC2 FPGA instances, see the AWS Tutorial.