Architecture Specifications in CλaSH

  • Jan Kuper
  • Christiaan Baaij
  • Matthijs Kooijman
  • Marco Gerards
Conference paper
Part of the Lecture Notes in Electrical Engineering book series (LNEE, volume 106)


This paper introduces CλaSH, a novel hardware specification environment, by discussing several non-trivial examples. CλaSH is based on the functional language Haskell, and exploits many of its powerful abstraction mechanisms such as higher order functions, polymorphism, lambda abstraction, pattern matching, type derivation. As a result, specifications in CλaSH are concise and semantically clear, and simulations can be directly executed within a Haskell evaluation environment. CλaSH generates synthesizable low-level VHDL code by applying several transformation rules to a functional specification of a digital circuit.


  1. 1.
    C.P.R. Baaij, CλaSH – From Haskell to Hardware, Master Thesis, University of Twente, 2009.Google Scholar
  2. 2.
    P. Bjesse, K. Claessen, M. Sheeran, and S. Singh, Lava: hardware design in Haskell, in: Proceedings of the third ACM SIGPLAN international conference on Functional programming, New York, USA, 1998, pp. 174-184.Google Scholar
  3. 3.
    M.E.T. Gerards, J. Kuper, A.B.J. Kokkeler, E. Molenkamp, Streaming Reduction Circuit, in: Proceedings of the 12th EUROMICRO Conference on Digital System Design, Architectures, Methods and Tools, Patras, Greece, 2009, pp. 287–292Google Scholar
  4. 4.
    M. Kooijman, Haskell as a Higher Order Structural Hardware Description Language, Master Thesis, University of Twente, 2009.Google Scholar
  5. 5.
    J. Matthews, B. Cook, and J. Launchbury, Microprocessor specification in Hawk, in: Proceedings of 1998 International Conference on Computer Languages, 1998, pp. 90-101.Google Scholar
  6. 6.
    I. Sander, A. Jantsch, System Modeling and Transformational Design Refinement in ForSyDe, in: IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2004, vol. 23, no. 1, pp. 17-32.Google Scholar
  7. 7.
    R. Sharp and O. Rasmussen, Using a language of functions and relations for VLSI specification, in: FPCA 95: Proceedings of the seventh international conference on Functional programming languages and computer architecture, New York, NY, USA, 1995, pp. 45-54.Google Scholar
  8. 8.
    M. Sheeran, μFP, a language for VLSI design, in: LFP 84: Proceedings of the 1984 ACM Symposium on LISP and functional programming, New York, NY, USA, 1984, pp. 104-112.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  • Jan Kuper
    • 1
  • Christiaan Baaij
    • 1
  • Matthijs Kooijman
    • 1
  • Marco Gerards
    • 1
  1. 1.University of TwenteEnschedeThe Netherlands

Personalised recommendations