
Don Stewart:
tomahawkins:
A few years ago I attempted to build a Haskell hardware compiler (Haskell -> Verilog) based on the Yhc frontent. At the time I was trying to overcome several problems [1] with implementing a hardware description language as a light eDSL, which convinced me a proper compiler may be a better approach. Yhc was recommended as a good starting point since it had a simpler IR compared with GHC -- at least at the time.
I am considering restarting this effort, but this time to target hard realtime embedded code. What is the recommended compiler to start from? I need an IR that is post type checking with as much desugaring as possible, and a code base that is relatively easy to splice and build.
My other requirement is not to be bound to IO () for 'main'. The top level will be a monad, but with different semantics than IO. I would also like to reuse the standard library, with exception to the values related to IO.
What are my options?
Have you looked at Clash, the GHC to VHDL compiler?
Links are always useful: http://clash.ewi.utwente.nl/ http://hackage.haskell.org/package/clash http://dutchhug.nl/static/dutchhugday-2010/clash.pdf http://wiki.clean.cs.ru.nl/images/8/86/Christiaan-from-haskell-to.pdf Sean