Hardware specification with CλaSH

Jan Kuper

Research output: Chapter in Book/Report/Conference proceedingChapterAcademicpeer-review

Abstract

CλaSH is a recently developed system to specify and synthesize hardware architectures, strongly based on the functional programming language Haskell. Different from other existing approaches to describe hardware in a functional style, CλaSH is not defined as an embedded language inside Haskell, but instead, CλaSH uses Haskell itself to specify hardware architectures. In fact, every CλaSH specification is an executable Haskell program. Hence, the simulation of a hardware architecture is immediate, and all abstraction mechanisms that are available in Haskell are maintained in CλaSH, insofar they are directly applicable to the specification of hardware. This paper describes several examples of specifications of hardware architectures in CλaSH to illustrate the various abstraction mechanisms that CλaSH offers. The emphasis is more on the CλaSH-style of specification, than on the concrete technical details of CλaSH. Often, the specifications are given in plain Haskell, to avoid some of the specific CλaSH details that will be indicated in a separate section. The given examples include regular architectures such as a ripple carry adder, a multiplier, vector and matrix multiplications, finite impulse response filters, and also irregular architectures such as a simple Von Neumann style processor and a reduction circuit. Finally, some specific technicalities of CλaSH will be discussed, among others the processing pipeline of CλaSH and the hardware oriented type constructions of CλaSH.

Original languageEnglish
Title of host publicationCentral European Functional Programming School
Subtitle of host publication5th Summer School, CEFP 2013, Cluj-Napoca, Romania, July 8-20, 2013, Revised Selected Papers
EditorsViktória Zsók, Zoltán Horváth, Lehel Csató
Place of PublicationCham
PublisherSpringer
Pages336-380
Number of pages45
ISBN (Electronic)978-3-319-15940-9
ISBN (Print)978-3-319-15939-3
DOIs
Publication statusPublished - 21 Mar 2015
Event5th Central European Functional Programming School, CEFP 2013 - Cluj-Napoca, Romania
Duration: 8 Jul 201320 Jul 2013
Conference number: 5

Publication series

NameLecture Notes in Computer Science
PublisherSpringer
Volume8606
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference5th Central European Functional Programming School, CEFP 2013
Abbreviated titleCEFP
Country/TerritoryRomania
CityCluj-Napoca
Period8/07/1320/07/13

Keywords

  • n/a OA procedure

Fingerprint

Dive into the research topics of 'Hardware specification with CλaSH'. Together they form a unique fingerprint.

Cite this