~/talk

Metaprogramming with Combinators

Talkat GPCE 2021 · 2021-10-17..10-18· [compilers-and-language-design]
links:none on file
links:none on file
slides:none on file

Haskell generators use quasiquotation and a mixed shallow/deep embedding plus a MonadCg codegen monad and scoped combinators to emit VHDL for Xilinx FPGAs. A 16-stage incrementer pipeline (serial vs parallel) is generated and measured against Clash and Kansas Lava; the combinator implementation produces the lowest LUT/FF counts and highest f_MAX, at the cost of about twice the LOC. Combinators gensym loop vars, tailor handshake protocol precisely, and produce runnable Haskell instances via shallow embeddings.

AI-written summary · about

  1. 0:00Intro
  2. 0:15Metaprogramming with what?
  3. 2:30Hardware Pipelines
  4. 4:24But we can already generate hardware from Haskell!
  5. 5:24Motivating Example: Multi-stage Incrementer
  6. 7:49Multi-stage Incrementer Performance
  7. 10:14Running MWC Circuits (in Haskell)
  8. 10:53Running MWC Circuits as Haskell
  9. 11:56Implementation of piter (VHDL)
  10. 14:17One more metric...
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.