University of Twente Student Theses

Login

Recursive functional hardware descriptions using CλaSH

Raa, I. te (2015) Recursive functional hardware descriptions using CλaSH.

[img] PDF
745kB
Abstract:CλaSH is a functional hardware description language in which structural descriptions of combinational and synchronous sequential hardware can be expressed. The language is based on Haskell, from which it inherits abstraction mechanisms such as, the support of polymorphism and higher-order functions. Recursion is another fundamental and commonly used abstraction mechanism in Haskell. In contrast with Haskell, the support of recursion in CλaSH is currently limited. This is considered a shortcoming by many CλaSH users. Data-dependent recursive functions pose a problem for the current implementation of CλaSH. Currently, these recursive function definitions are unrolled by the compiler, in an attempt to produce finite circuits. In the case of data-dependent recursive functions, such finite circuit descriptions often cannot be found using unrolling, as it would require infeasibly large circuits, capable of handling all possible arguments. This thesis focuses on extending the CλaSH compiler with support of data-dependent recursion. This is established by describing a formal rewrite method, based on the continuation passing style transformation. This method transforms recursive function descriptions to a corresponding circuitry, capable of executing the recursive function. A detailed description of the generated stack architecture is provided in the form of CλaSH descriptions. The resulting circuits, produced by applying the methodology, are elaborated and synthesis results of those circuitries are discussed.
Item Type:Essay (Master)
Faculty:EEMCS: Electrical Engineering, Mathematics and Computer Science
Subject:50 technical science in general, 53 electrotechnology, 54 computer science
Programme:Embedded Systems MSc (60331)
Link to this item:https://purl.utwente.nl/essays/68804
Export this item as:BibTeX
EndNote
HTML Citation
Reference Manager

 

Repository Staff Only: item control page