Higher-Order Abstraction in Hardware Descriptions with CλaSH

Marco Egbertus Theodorus Gerards, C.P.R. Baaij, Jan Kuper, Matthijs Kooijman

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

    8 Citations (Scopus)
    205 Downloads (Pure)


    Synchronous hardware can be straightforwardly modelled as a function from input and (current) state to an updated state and output. The CλaSH compiler can translate such a transition function, described in a functional language,to synthesisable VHDL. Taking a hardware-oriented viewpoint, components can then be seen as an instantiation of such a transition function. An abstraction called Arrows is used to directly model components by combining a transition function and its state. The abstraction also provides an uniform interface for composition, without losing the referential transparency offered by a functional description. Furthermore, readability of hardware designs is increased by the use of the γ-syntax, that automatically composes components according to the Arrow interface. The advantages of the Arrow abstraction and the γ-syntax are demonstrated by means of a realistic example circuit consisting of multiple components. This is a significant extension to CλaSH and enables many high level abstractions.
    Original languageUndefined
    Title of host publicationProceedings of the 14th EUROMICRO Conference on Digital System Design, DSD 2011
    EditorsP. Kitsos
    Place of PublicationUSA
    Number of pages8
    ISBN (Print)978-0-7695-4494-6
    Publication statusPublished - Aug 2011
    Event14th EUROMICRO Conference on Digital System Design, DSD 2011 - Oulu, Finland
    Duration: 31 Aug 20112 Sept 2011
    Conference number: 14

    Publication series

    PublisherIEEE Computer Society


    Conference14th EUROMICRO Conference on Digital System Design, DSD 2011
    Abbreviated titleDSD
    Internet address


    • EWI-20645
    • Pipeline processing
    • Hardware Description Languages
    • Functional Programming
    • IR-78217
    • METIS-278854

    Cite this