Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Lava: hardware design in Haskell

Published: 29 September 1998 Publication History

Abstract

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.

References

[1]
Per Bjesse. Specification of signal processing programs in a pure functional language and compilation to distributed architectures. Master's thesis, Chalmers University of Technology, 1997.]]
[2]
Byron Cook, John Launchbury, and John Matthews. Specifying superscalar microprocessors in Hawk. In Formal Techniques for Hardware and Hardware-like Systems. Marstrand, Sweden, 1998.]]
[3]
David Cyrluk. inverting the abstraction mapping: A methodology for hardware verification. In Formal Methods for Computer Aided Design of Electronic Circuits (FMCAD), number 1166 in Lecture Notes In Computer Science. Springer-Verlag, 1996.]]
[4]
Ruben Gamboa. Mechanically verifying the correctness of the Fast Fourier Transform in ACL2. In Third International Workshop on Formal Methods for Parallel Programming: Theory and Applications, 1998.]]
[5]
Keith Hanna and Nell Daeche. Dependent types and formal synthesis. Phil. Trans. R. Soc. Lond. A, (339), X992.]]
[6]
Shousheng He. Concurrent VLSI Architectures for DFT Computing and Algorithms for Multi-output Logic Decomposition. PhD thesis, Lund Institute of Technology, 1995.]]
[7]
Geraint Jones, A fast flutter by the Fourier transform. In Proceedings IVth Banff Workshop on Higher Order. Springer Workshops in Computing, 1990.]]
[8]
Geraint Jones and Mary Sheeran. The study of butterflies. In Proceedings IVth Banff Workshop on Higher Order. Springer Workshops in Computing, 1990.]]
[9]
Yanbing Li and Miriam Leeser. HML: An innovative hardware design language and its translation to VHDL. In Computer Hardware Description Languages (CHDL '95), 1995.]]
[10]
William W. McCune and L. Wos. Otter: The CADE-13 competition incarnations. Journal of Automated Reasoning, 18(2):211-220, 1997.]]
[11]
John O'Donnell. From transistors to computer architecture: Teaching functional circuit specification in Hydra. In Functional Programming Languagues in Education, volume 1125 of Lecture Notes In Computer Science, pages 221-234. Springer Verlag, 1996.]]
[12]
John Proakis and Dimitris Manolakis. Digital Signal Processing. Macmillan, 1992.]]
[13]
Mary Sheeran and Arne Bor~ilv. How to prove properties of recursively defined circuits using Stfilmarck's method. In Formal Techniques for Hardware and Hardware-like Systems. Marstrand, Sweden, 1998.]]
[14]
Mary Sheeran. Designing regular array architectures using higher order functions, in Int. Conf. on Functional Programming Languages and Computer Architecture, (Jouannaud ed.), volume 201 of Lecture Notes In Computer Science. Springer Verlag, 1985.]]
[15]
Satnam Singh. Analysis of Hardware Description Languages. PhD thesis, Computing Science Dept., Glasgow University, 1991.]]
[16]
Robin Sharp and Ole Rasmussen. Transformational rewriting with Ruby. In Computer Hardware Description Languages (CHDL '93). Elsevier Science Publishers, 1993.]]
[17]
Gunnar Stf~Imarck. A System for Determining Propositional Logic Theorems by Applying Values and Rules to Triplets that are Generated from a Formula, 1989. Swedish Patent No. 467 076 (approved 1992), U.S. Patent No. 5 276 897 (1994), European Patent No. 0403 454 (1995).]]
[18]
Tanel Tammet. Gandalf. Journal of Automated Reasoning, 18(2):199-204, 1997.]]
[19]
Philip Wadler. Monads for Functional Programming. In Lecture notes for Marktoberdorf Summer School on Program Design Calculi, NATO ASI Series F: Computer and systems sciences. Springer Verlag, August 1992.]]

Cited By

View all
  • (2023)Survey of the Formal Verification of Operating Systems in Power Monitoring SystemProceedings of the 2023 5th International Conference on Pattern Recognition and Intelligent Systems10.1145/3609703.3609714(65-70)Online publication date: 28-Jul-2023
  • (2023)Parameterized Algebraic ProtocolsProceedings of the ACM on Programming Languages10.1145/35912777:PLDI(1389-1413)Online publication date: 6-Jun-2023
  • (2023)Better Together: Unifying Datalog and Equality SaturationProceedings of the ACM on Programming Languages10.1145/35912397:PLDI(468-492)Online publication date: 6-Jun-2023
  • Show More Cited By

Recommendations

Reviews

Josep Silva

Hardware design languages have been continuously increasing their abstraction levels over the last 20 years, and languages such as very high speed integrated circuit hardware description language (VHDL) and Verilog have become standards in the field. These languages lack a formal basis, however, which is needed, for instance, to formally verify designed circuits. Nowadays, Haskell (see http://www.haskell.org) is the most important pure functional language. Its strong mathematical foundation (it is based on lambda calculus) makes it a very convenient language to perform formal verification of programs. In this work, the authors describe the hardware design language, Lava, that has been embedded into Haskell. The authors describe how Lava takes advantage of many features of Haskell, such as monads or type classes, to completely describe hardware circuits, and how many existing tools, such as theorem provers (which allow users to perform formal verification of circuits), can be used with Lava. The paper is well written, and clearly explains the advantages and properties of Lava using many examples. Although some related work is described, the authors only mention a short comment about Hawk [1], another language embedded in Haskell, which uses a very similar approach to hardware specification. A more detailed comparison between them would have been very interesting. Finally, Lava has become the core of Claessen's Ph.D. thesis [2], so I refer the interested reader to this document for a more detailed explanation about Lava. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 34, Issue 1
Jan. 1999
357 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/291251
Issue’s Table of Contents
  • cover image ACM Conferences
    ICFP '98: Proceedings of the third ACM SIGPLAN international conference on Functional programming
    September 1998
    351 pages
    ISBN:1581130244
    DOI:10.1145/289423
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 29 September 1998
Published in SIGPLAN Volume 34, Issue 1

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)422
  • Downloads (Last 6 weeks)47
Reflects downloads up to 09 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Survey of the Formal Verification of Operating Systems in Power Monitoring SystemProceedings of the 2023 5th International Conference on Pattern Recognition and Intelligent Systems10.1145/3609703.3609714(65-70)Online publication date: 28-Jul-2023
  • (2023)Parameterized Algebraic ProtocolsProceedings of the ACM on Programming Languages10.1145/35912777:PLDI(1389-1413)Online publication date: 6-Jun-2023
  • (2023)Better Together: Unifying Datalog and Equality SaturationProceedings of the ACM on Programming Languages10.1145/35912397:PLDI(468-492)Online publication date: 6-Jun-2023
  • (2023)Architecture-Preserving Provable Repair of Deep Neural NetworksProceedings of the ACM on Programming Languages10.1145/35912387:PLDI(443-467)Online publication date: 6-Jun-2023
  • (2023)Loop Rerolling for Hardware DecompilationProceedings of the ACM on Programming Languages10.1145/35912377:PLDI(420-442)Online publication date: 6-Jun-2023
  • (2023)Mosaic: An Interoperable Compiler for Tensor AlgebraProceedings of the ACM on Programming Languages10.1145/35912367:PLDI(394-419)Online publication date: 6-Jun-2023
  • (2023)Modular Hardware Design with Timeline TypesProceedings of the ACM on Programming Languages10.1145/35912347:PLDI(343-367)Online publication date: 6-Jun-2023
  • (2023)Recursive State Machine Guided Graph Folding for Context-Free Language ReachabilityProceedings of the ACM on Programming Languages10.1145/35912337:PLDI(318-342)Online publication date: 6-Jun-2023
  • (2023)Bifröst: Creating Hardware With Building Blocks2023 Forum on Specification & Design Languages (FDL)10.1109/FDL59689.2023.10272129(1-8)Online publication date: 13-Sep-2023
  • (2023)Studying the challenges of developing hardware description language programsInformation and Software Technology10.1016/j.infsof.2023.107196159:COnline publication date: 1-Jul-2023
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media