Fix typos
[matthijs/master-project/haskell-symposium-talk.git] / introduction.lhs
index 1066173ead0e57a02e95b5ebe66af5a10ce4294d..939582f567348bf2323354e7a58649e7ab76b394 100644 (file)
@@ -5,79 +5,64 @@
 {
   \frametitle{What is \clash{}?}\pause
   \begin{itemize}
 {
   \frametitle{What is \clash{}?}\pause
   \begin{itemize}
-    \item \clash{}: CAES Language for Hardware Descriptions\pause
+    \item \clash{}: CAES Language for Hardware\pause
     \item Rapid prototyping language\pause
     \item Subset of Haskell can be translated to Hardware (VHDL)\pause
     \item Rapid prototyping language\pause
     \item Subset of Haskell can be translated to Hardware (VHDL)\pause
-    \item Structural Description of a Mealy Machine
+    \item Structural Description of the logic part of a Mealy Machine
   \end{itemize}
 }
 \note[itemize]
 {
   \end{itemize}
 }
 \note[itemize]
 {
-\item We are a Computer Architectures group, this has been a 6 month project, no prior experience with Haskell.
+\item We are a Computer Architectures group, this has been a Masters' project, no prior experience with Haskell.
 \item \clash{} is written in Haskell, of course
 \item \clash{} is written in Haskell, of course
-\item \clash{} is currently meant for rapid prototyping, not verification of hardware desigs
+\item \clash{} is currently meant for rapid prototyping, not verification of hardware designs
 \item Functional languages are close to Hardware
 \item We can only translate a subset of Haskell
 \item Functional languages are close to Hardware
 \item We can only translate a subset of Haskell
-\item All functions are descriptions of Mealy Machines
+\item All functions are structural descriptions with a Mealy Machines perspective
 }
 
 }
 
-\subsection{Mealy Machine}
 \frame
 {
 \frame
 {
-\frametitle{What again is a Mealy Machine?}
-  \begin{figure}
-  \centerline{\includegraphics[width=10cm]{mealymachine}}
-  \label{img:mealymachine}
-  \end{figure}
-}
-\note[itemize]{
-\item Mealy machine bases its output on current input and previous state
-}
-
-\frame
-{
-\frametitle{Haskell Description}
+\frametitle{Mealy Machine}
+\begin{figure}
+\centerline{\includegraphics<1>[width=6.25cm]{mealymachine2}
+\includegraphics<2>[width=6.25cm]{mealymachine2-func-red}
+\includegraphics<3>[width=6.25cm]{mealymachine2-state-red}}
+\label{img:mealymachine}
+\end{figure}
 \begin{beamercolorbox}[sep=-2.5ex,rounded=true,shadow=true,vmode]{codebox}
 \begin{code}
 \begin{beamercolorbox}[sep=-2.5ex,rounded=true,shadow=true,vmode]{codebox}
 \begin{code}
-mealyMachine :: 
-  InputSignals ->
-  {-"{\color<2>[rgb]{1,0,0}"-}State{-"}"-} ->
-  (State, OutputSignals)
-mealyMachine inputs {-"{\color<2>[rgb]{1,0,0}"-}state{-"}"-} = ({-"{\color<3>[rgb]{1,0,0}"-}new_state{-"}"-}, output)
+run {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-} [] = []
+run {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-} (i:inputs) = o:outputs
   where
   where
-    {-"{\color<3>[rgb]{1,0,0}"-}new_state{-"}"-}    =   logic     {-"{\color<2>[rgb]{1,0,0}"-}state{-"}"-}   input
-    outputs                                         =   logic     {-"{\color<2>[rgb]{1,0,0}"-}state{-"}"-}   input
+    ({-"{\color<3>[rgb]{1,0,0}"-}state'{-"}"-}, o)  =   {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} i {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-}
+    outputs                                         =   run {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} {-"{\color<3>[rgb]{1,0,0}"-}state'{-"}"-} input
 \end{code}
 \end{beamercolorbox}
 \end{code}
 \end{beamercolorbox}
-\begin{itemize}
-\uncover<2->{\item Current state is part of the input}
-\uncover<3->{\item New state is part of the output}
-\end{itemize}
 }
 \note[itemize]{
 }
 \note[itemize]{
+\item A Mealy machine bases its output on the current state and the input
 \item State is part of the function signature
 \item State is part of the function signature
-\item Both the current state, as the updated State
+\item Both the current state, and the updated State
+\item The run function simulates a mealy machine for the provided number of inputs
 }
 
 }
 
-\subsection{Simulation}
 \frame
 {
 \frame
 {
-\frametitle{Simulating a Mealy Machine}
+\frametitle{Haskell Description}
+\begin{figure}
+\centerline{\includegraphics[width=6.25cm]{mealymachine2-func-red}}
+\end{figure}
 \begin{beamercolorbox}[sep=-2.5ex,rounded=true,shadow=true,vmode]{codebox}
 \begin{code}
 \begin{beamercolorbox}[sep=-2.5ex,rounded=true,shadow=true,vmode]{codebox}
 \begin{code}
-run func {-"{\color<2>[rgb]{1,0,0}"-}state{-"}"-} [] = []
-run func {-"{\color<2>[rgb]{1,0,0}"-}state{-"}"-} (i:input) = o:out
-  where
-    ({-"{\color<3>[rgb]{1,0,0}"-}state'{-"}"-}, o)  =   func i {-"{\color<2>[rgb]{1,0,0}"-}state{-"}"-}
-    out                                             =   run func {-"{\color<3>[rgb]{1,0,0}"-}state'{-"}"-} input
+func :: 
+  InputSignal ->
+  State ->
+  (State, OutputSignal)
 \end{code}
 \end{beamercolorbox}
 \end{code}
 \end{beamercolorbox}
-\begin{itemize}
-\item State behaves like an accumulator
-\end{itemize}
 }
 \note[itemize]{
 }
 \note[itemize]{
-\item This is just a quick example of how we can simulate the mealy machine
-\item It sort of behaves like MapAccumN
+\item In \clash{} you describe the logic part of the mealy machine
+\item The state in the signature is turned into memory elements when translating to VHDL
 }
 }
-