Hiding State in CλaSH Hardware Descriptions

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

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademic

    28 Downloads (Pure)

    Abstract

    Synchronous hardware can be modelled as a mapping from input and state to output and a new state, such mappings are referred to as transition functions. It is natural to use a functional language to implement transition functions. The CaSH compiler is capable of translating transition functions to VHDL. Modelling hardware using multiple components is convenient. Components in CaSH can be considered as instantiations of functions. To avoid packing and unpacking state when composing components, functions are lifted to arrows. By using arrows the chance of making errors will decrease as it is not required to manually (un)pack the state. Furthermore, the Haskell do-syntax for arrows increases the readability of hardware designs. This is demonstrated using a realistic example of a circuit which consists of multiple components.
    Original languageUndefined
    Title of host publicationPreproceedings of the 22nd Symposium on Implementation and Application of Functional Languages (IFL 2010)
    Place of PublicationUtrecht
    PublisherUtrecht University
    Pages107-119
    Number of pages13
    ISBN (Print)0924-3275
    Publication statusPublished - Aug 2010
    Event22nd Symposium on Implementation and Application of Functional Languages, IFL 2010 - Alphen aan den Rijn, Netherlands
    Duration: 1 Sep 20103 Sep 2010
    Conference number: 22

    Publication series

    Name
    PublisherUtrecht University
    ISSN (Print)0924-3275

    Conference

    Conference22nd Symposium on Implementation and Application of Functional Languages, IFL 2010
    Abbreviated titleIFL
    CountryNetherlands
    CityAlphen aan den Rijn
    Period1/09/103/09/10

    Keywords

    • METIS-278694
    • Haskell
    • HDL
    • Functional Languages
    • EWI-19194
    • State Hiding
    • Hardware
    • Hardware Description Language
    • IR-78215

    Cite this

    Gerards, M. E. T., Baaij, C. P. R., Kuper, J., & Kooijman, M. (2010). Hiding State in CλaSH Hardware Descriptions. In Preproceedings of the 22nd Symposium on Implementation and Application of Functional Languages (IFL 2010) (pp. 107-119). Utrecht: Utrecht University.
    Gerards, Marco Egbertus Theodorus ; Baaij, C.P.R. ; Kuper, Jan ; Kooijman, Matthijs. / Hiding State in CλaSH Hardware Descriptions. Preproceedings of the 22nd Symposium on Implementation and Application of Functional Languages (IFL 2010). Utrecht : Utrecht University, 2010. pp. 107-119
    @inproceedings{d59ee774bb62496fb43e57e2533f2ddc,
    title = "Hiding State in CλaSH Hardware Descriptions",
    abstract = "Synchronous hardware can be modelled as a mapping from input and state to output and a new state, such mappings are referred to as transition functions. It is natural to use a functional language to implement transition functions. The CaSH compiler is capable of translating transition functions to VHDL. Modelling hardware using multiple components is convenient. Components in CaSH can be considered as instantiations of functions. To avoid packing and unpacking state when composing components, functions are lifted to arrows. By using arrows the chance of making errors will decrease as it is not required to manually (un)pack the state. Furthermore, the Haskell do-syntax for arrows increases the readability of hardware designs. This is demonstrated using a realistic example of a circuit which consists of multiple components.",
    keywords = "METIS-278694, Haskell, HDL, Functional Languages, EWI-19194, State Hiding, Hardware, Hardware Description Language, IR-78215",
    author = "Gerards, {Marco Egbertus Theodorus} and C.P.R. Baaij and Jan Kuper and Matthijs Kooijman",
    year = "2010",
    month = "8",
    language = "Undefined",
    isbn = "0924-3275",
    publisher = "Utrecht University",
    pages = "107--119",
    booktitle = "Preproceedings of the 22nd Symposium on Implementation and Application of Functional Languages (IFL 2010)",

    }

    Gerards, MET, Baaij, CPR, Kuper, J & Kooijman, M 2010, Hiding State in CλaSH Hardware Descriptions. in Preproceedings of the 22nd Symposium on Implementation and Application of Functional Languages (IFL 2010). Utrecht University, Utrecht, pp. 107-119, 22nd Symposium on Implementation and Application of Functional Languages, IFL 2010, Alphen aan den Rijn, Netherlands, 1/09/10.

    Hiding State in CλaSH Hardware Descriptions. / Gerards, Marco Egbertus Theodorus; Baaij, C.P.R.; Kuper, Jan; Kooijman, Matthijs.

    Preproceedings of the 22nd Symposium on Implementation and Application of Functional Languages (IFL 2010). Utrecht : Utrecht University, 2010. p. 107-119.

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademic

    TY - GEN

    T1 - Hiding State in CλaSH Hardware Descriptions

    AU - Gerards, Marco Egbertus Theodorus

    AU - Baaij, C.P.R.

    AU - Kuper, Jan

    AU - Kooijman, Matthijs

    PY - 2010/8

    Y1 - 2010/8

    N2 - Synchronous hardware can be modelled as a mapping from input and state to output and a new state, such mappings are referred to as transition functions. It is natural to use a functional language to implement transition functions. The CaSH compiler is capable of translating transition functions to VHDL. Modelling hardware using multiple components is convenient. Components in CaSH can be considered as instantiations of functions. To avoid packing and unpacking state when composing components, functions are lifted to arrows. By using arrows the chance of making errors will decrease as it is not required to manually (un)pack the state. Furthermore, the Haskell do-syntax for arrows increases the readability of hardware designs. This is demonstrated using a realistic example of a circuit which consists of multiple components.

    AB - Synchronous hardware can be modelled as a mapping from input and state to output and a new state, such mappings are referred to as transition functions. It is natural to use a functional language to implement transition functions. The CaSH compiler is capable of translating transition functions to VHDL. Modelling hardware using multiple components is convenient. Components in CaSH can be considered as instantiations of functions. To avoid packing and unpacking state when composing components, functions are lifted to arrows. By using arrows the chance of making errors will decrease as it is not required to manually (un)pack the state. Furthermore, the Haskell do-syntax for arrows increases the readability of hardware designs. This is demonstrated using a realistic example of a circuit which consists of multiple components.

    KW - METIS-278694

    KW - Haskell

    KW - HDL

    KW - Functional Languages

    KW - EWI-19194

    KW - State Hiding

    KW - Hardware

    KW - Hardware Description Language

    KW - IR-78215

    M3 - Conference contribution

    SN - 0924-3275

    SP - 107

    EP - 119

    BT - Preproceedings of the 22nd Symposium on Implementation and Application of Functional Languages (IFL 2010)

    PB - Utrecht University

    CY - Utrecht

    ER -

    Gerards MET, Baaij CPR, Kuper J, Kooijman M. Hiding State in CλaSH Hardware Descriptions. In Preproceedings of the 22nd Symposium on Implementation and Application of Functional Languages (IFL 2010). Utrecht: Utrecht University. 2010. p. 107-119