X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=howdoesitwork.lhs;fp=howdoesitwork.lhs;h=4c26ca534ffecfa49b9e7362b68d2f0c985316c6;hb=d0420235340ee715db69a023bf0f6ad75d573735;hp=0000000000000000000000000000000000000000;hpb=dfa8e8c67fe722269e1b61016bffa4c9ad5bc0b6;p=matthijs%2Fmaster-project%2Ffinal-presentation.git diff --git a/howdoesitwork.lhs b/howdoesitwork.lhs new file mode 100644 index 0000000..4c26ca5 --- /dev/null +++ b/howdoesitwork.lhs @@ -0,0 +1,21 @@ +%include talk.fmt +\section{How do you make Hardware from Haskell?} +\frame +{ + \frametitle{So how do you make Hardware from Haskell?}\pause + \large{In three simple steps really:} \pause + \begin{itemize} + \item No Effort:\\ + GHC API Parses, Typechecks and Desugars the Haskell code \pause + \item Hard: \\ + Transform resulting Core, GHC's Intermediate Language,\linebreak to a normal form. Uses reduction rules. \pause + \item Easy: \\ + Translate Normalized Core to synthesizable VHDL + \end{itemize} +}\note[itemize]{ +\item Here is a quick insight as to how WE translate Haskell to Hardware +\item Reduction rules are used to get a required normal form. +\item Normal form already looks like hardware (components and lines) +\item You can also use TH, like ForSyDe. Or traverse datastructures, like Lava? +\item We're in luck with the GHC API update of 6.10 and onwards +}