
Spatial: A High Level Programming Language for FPGAs - ArtWomb
https://spatial-lang.org/
======
snops
An alternative to this in python would be MyHDL:
[http://www.myhdl.org](http://www.myhdl.org), which has a less verbose syntax
and allows you to use the python scientific stack in testbenches.

Spatial seems to have a HAL though (called the fringe), to handle platform
specific details like hardware interfacing, including things like DRAM, which
could otherwise be very complex.

~~~
guiraldelli
It is interesting that I haven't seen a reference to CλaSH [1] as well: it is
Haskell for FPGA and it has quite interesting results, as well as research
work on it.

[1]: [http://www.clash-lang.org/](http://www.clash-lang.org/)

------
setra
If anyone wants to jump straight to the code: [https://spatial-lang.org/hello-
spatial/](https://spatial-lang.org/hello-spatial/)

------
analognoise
Does anyone want to work on a VHDL/Verilog parser for a mixed language (delta
time) simulator?

FOSS needs that more than it needs yet another "high level" language with no
industry uptake.

~~~
krupan
Yes, I want to work on that. I agree with you 100% that this is what the world
needs. GNU succeeded by replacing commercial tools, not inventing new
languages or paradigms. There is a ton of existing, legacy Verilog and VHDL
code out there being used in current designs and nobody is going to switch to
Free tools unless those tools support that legacy code.

~~~
analognoise
Ok, let's get started. We need an abstract simulator front end, and to be able
to connect that simulator front end to both Verilog and VHDL - almost like a
simulator IR language, and have that language cover productions from both VHDL
and Verilog. There's some recent Verilator optimazations to look at, but all
that stuff comes later. V0.0 should probably just have a simple message pump
for delta cycle emissions. I'll start seeing if I can gather some literature
on this.

~~~
doppioandante
Are you going to track the progress somewhere? I'm interested in helping

------
alain94040
When I click on tutorial, I get a 404 page. Not good. So no info to provide
feedback.

~~~
FavouriteColour
Links in the tutorial menu work.

------
strictfp
I find a setup guide, but no code examples whatsoever. Am I missing something?

~~~
ur-whale
It seems to be fairly standard on programming language websites that you must
dig around in the site for 10mn before you can actually see a chunk of code
written in the language itself.

------
peter_d_sherman
First Impression: Looks like a way to turn high-level code (Scala, Java) into
low-level FPGA gates / ASIC silicon. If that works for all types of high-level
programs, it's absolutely brilliant. If not, it's still a great idea. I wish
them much success in the future! (Looking forward to something like Any
Language -> LLVM -> FPGA / ASIC...) This is a good step in that direction.

~~~
kirvyteo
Any Language -> LLVM -> FPGA / ASIC

This is much closer than you think. I am aware of quite a few parties
embarking on this. LLVM is the common denominator.

~~~
slivym
Well the Intel OpenCL compiler already does LLVM-> FPGA.

------
tutanchamun
So this is a level above Chisel [0] seeing that it can emit Chisel as output?

[0] [https://chisel.eecs.berkeley.edu/](https://chisel.eecs.berkeley.edu/)

------
deepnotderp
Kunle olukotun who was one of the people behind this has founded sambanova
systems which appears to be pursuing more general purpose accelerators.

------
drudru11
Off topic question: that binary tree image on their site... wasn’t that an X
screensaver?

~~~
std_throwawayay
*ternary

------
smrk007
Another good framework for high level synthesis for FPGA is SystemC. I haven’t
looked into all the details of Spatial, but SystemC is basically a C++ library
that lets you write your C++ in a way that can be synthesized for FPGA. Plus,
it’s a good option if you don’t want to learn another language!

~~~
ur-whale
Is there a free implementation of SystemC somewhere?

If not, that's pretty much a non-starter for learning.

~~~
krupan
There is a free implementation for simulation, but, as far as I know there is
no free implementation for synthesis (compiling to FPGA)

------
atupis
BTW what is easiest way to start learning programming FPGAs.

~~~
Thorondor
There was an Ask HN about this yesterday:
[https://news.ycombinator.com/item?id=18323236](https://news.ycombinator.com/item?id=18323236)

