Lava: hardware design in Haskell

P Bjesse, K Claessen, M Sheeran, S Singh - Acm Sigplan Notices, 1998 - dl.acm.org
P Bjesse, K Claessen, M Sheeran, S Singh
Acm Sigplan Notices, 1998dl.acm.org
Lava is a tool to assist circuit designers in specifying, designing, verifying and implementing
hardware. It is a collection of Haskell modules. The system design exploits functional
programming language features, such as monads and type classes, to provide multiple
interpretations of circuit descriptions. These interpretations implement standard circuit
analyses such as simulation, formal verification and the generation of code for the
production of real circuits. Lava also uses polymorphism and higher order functions to …
Lava is a tool to assist circuit designers in specifying, designing, verifying and implementing hardware. It is a collection of Haskell modules. The system design exploits functional programming language features, such as monads and type classes, to provide multiple interpretations of circuit descriptions. These interpretations implement standard circuit analyses such as simulation, formal verification and the generation of code for the production of real circuits.Lava also uses polymorphism and higher order functions to provide more abstract and general descriptions than are possible in traditional hardware description languages. Two Fast Fourier Transform circuit examples illustrate this.
ACM Digital Library