From: Matthijs Kooijman Date: Thu, 3 Dec 2009 13:23:35 +0000 (+0100) Subject: Add initial sketch for conclusions. X-Git-Tag: final-thesis~114 X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=901c9881c60ac1897aa8efb63d082798272e1ae7;p=matthijs%2Fmaster-project%2Freport.git Add initial sketch for conclusions. --- diff --git a/Chapters/Conclusions.tex b/Chapters/Conclusions.tex new file mode 100644 index 0000000..c12e99d --- /dev/null +++ b/Chapters/Conclusions.tex @@ -0,0 +1,38 @@ +\chapter[chap:conclusions]{Conclusions} +At the end of this research, we have created a system called Cλash, which +allows us to translate hardware descriptions written in Haskell to be +translated to \VHDL, and be programmed into an FPGA. + +In this research, we have seen that a functional language is well suited +for hardware descriptions. Function applications provide elegant notation for +component instantiation and the various choice mechanisms (pattern matching, +case expressions, if expressions) are well suited to describe conditional +assigment in the hardware. + +Useful features from the functional perspective, like polymorphism and higher +order functions and expressions are also well-suited for translation to +hardware. + +Using Haskell enabled a rapid prototype supporting complex features like +polymorphism and higher order values. Mostly typechecker would have been +complicated otherwise. + +Haskell is not the perfect language. Some of the expressiveness it offers is +not appropriate for hardware description, but also some extra syntax sugar +could be useful. Lack of type-safe recursion is a big downside (but also a +hard problem!), perhaps improvements to Haskell will fix this. + +Explicit state descriptions... + +Transformation based system is suitable, allows for reasoning about the +system. Easy to specify transformation in the prototype. Implmentation is stil +lacking, especially when combined with pattern matching. + +General design (frontend + desugaring into small language, transformation +system, simple backend) works well and should be preserved. + +Usefulness of Cλash is not completely clear yet. Advanced features work +nicely, as well as choice, but no extensive testing (actual design projects) +have been done yet. Use in education possible due to prototype. + +Limited to structural, single clock domain synchronous, etc. diff --git a/Outline b/Outline index 3afd469..3ea03b2 100644 --- a/Outline +++ b/Outline @@ -63,3 +63,4 @@ TODO: Make interaction links not bold TODO: Say something about implementation differences with transformation specs TODO: Say something about the builtin functions somewhere (ref: christiaan) TODO: Reorder future work. +TODO: Future work: Use Cλash diff --git a/Report.tex b/Report.tex index c7a4e9d..cd0aab2 100644 --- a/Report.tex +++ b/Report.tex @@ -37,6 +37,7 @@ Matthijs Kooijman \input Chapters/Prototype \input Chapters/Normalization \input Chapters/Future +\input Chapters/Conclusions \stoptext % vim: set sw=2 sts=2 expandtab: