Embedding a Hardware Description Language in Template Haskell [chapter]

John T. O'Donnell
2004 Lecture Notes in Computer Science  
Hydra is a domain-specific language for designing digital circuits, which is implemented by embedding within Haskell. Many features required for hardware specification fit well within functional languages, leading in many cases to a perfect embedding. There are some situations, including netlist generation and software logic probes, where the DSL does not fit exactly within the host functional language. A new solution to these problems is based on program transformations performed automatically by metaprograms in Template Haskell.
doi:10.1007/978-3-540-25935-0_9 fatcat:sbbvahhhafg4xlzbtak6tbk3xy