I've recently started writing my own HDL as an embedded language within Idris. The idea behind it is that you can take advantage of the rich type system and you have the option to prove theorems about your circuits to gain confidence in them. There are also bindings to picosat, so that you can automatically prove some properties. Here's a snippet of how it looks so far (though things are changing rapidly):<p><pre><code> lt : BoolOperation op => Vect n v -> Vect n v -> SSA op v v
lt [] [] = constOp False
lt (x :: xs) (y :: ys) = do
nX <- notOp x
t1 <- andOp [nX, y]
t2 <- xnorOp x y
t3 <- lt xs ys
t4 <- andOp [t2, t3]
orOp [t1, t4]</code></pre>
There is so much potential in open source hardware design.<p>Right now, we are held back by (at best) mediocre tools. We need better HDL software, better synthesis software, better EDA software before we have any hope of widespread use of open source hardware.<p>Imagine if the only compilers available were proprietary compilers locked behind hundreds of pages of licensing requirements and legal bullshit. Open source software would still be in the dark ages.<p>I applaud any effort to advance the open source hardware design toolset.
Always great to see new developments in HDLs.<p>It seems there is no synthesis (which is to be expected without vendor support).
With 'limited' conversion to VHDL/Verilog, I wonder how useful this is for actual implementation.<p>Also from the site I couldn't find any mention of higher level functionality such as generics, etc.
I don't know, i've been working with VHDL for 5 years and i don't see how this could be useful.<p>Usually we first develop our algorithms using fixed point math at Matlab, which is a piece of cake.<p>After doing this, developing our VHDL based on Matlab implementation is very straight forward.<p>Python language isn't a very common knowledge for people developing hardware, so they really need to learn a complete new language made to another domain (software) in order to do the same thing!<p>VHDL/Verilog has been used for 30 years and in my opinion will continue to be used for many mores, Python's language structure just doesn't have what's needed to the hardware domain.<p>I see myself wasting a lot of time having to teach our old hardware guys Python and how to think in terms of RTL with a new Language. That's why i didn't try to switch.<p>Remember, most of the engineers working with hardware come from EE background, not CS. They are more familliar with Schematics than C.
A related project is Chisel, in which you create language using Scala: <a href="https://chisel.eecs.berkeley.edu/" rel="nofollow">https://chisel.eecs.berkeley.edu/</a>