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 language | English |
---|---|
Title of host publication | Central European Functional Programming School |
Subtitle of host publication | 5th Summer School, CEFP 2013, Cluj-Napoca, Romania, July 8-20, 2013, Revised Selected Papers |
Editors | Viktória Zsók, Zoltán Horváth, Lehel Csató |
Place of Publication | Cham |
Publisher | Springer |
Pages | 336-380 |
Number of pages | 45 |
ISBN (Electronic) | 978-3-319-15940-9 |
ISBN (Print) | 978-3-319-15939-3 |
DOIs | |
Publication status | Published - 21 Mar 2015 |
Event | 5th Central European Functional Programming School, CEFP 2013 - Cluj-Napoca, Romania Duration: 8 Jul 2013 → 20 Jul 2013 Conference number: 5 |
Publication series
Name | Lecture Notes in Computer Science |
---|---|
Publisher | Springer |
Volume | 8606 |
ISSN (Print) | 0302-9743 |
ISSN (Electronic) | 1611-3349 |
Conference
Conference | 5th Central European Functional Programming School, CEFP 2013 |
---|---|
Abbreviated title | CEFP |
Country/Territory | Romania |
City | Cluj-Napoca |
Period | 8/07/13 → 20/07/13 |
Keywords
- n/a OA procedure