Added images
[matthijs/master-project/haskell-symposium-talk.git] / introduction.lhs
index 1066173ead0e57a02e95b5ebe66af5a10ce4294d..c7b0bca887d2cd4873a66393c3253dd86c5f8a13 100644 (file)
@@ -5,79 +5,75 @@
 {
   \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 Structural Description of a Mealy Machine
+    \item Structural Description of the logic part of a Mealy Machine
   \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 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 All functions are descriptions of Mealy Machines
 }
 
-\subsection{Mealy Machine}
-\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
-}
+% \subsection{Mealy Machine}
+% \frame
+% {
+% \frametitle{What is a Mealy Machine again?}
+%   \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
+% \item: TODO: Integrate this slide with the next two. First, show the picture
+% with the mealyMachine type signature (and rename it to "func"). Then, show the
+% run function, without type signature. Focus is on correspondence to the
+% picture.
+% }
 
 \frame
 {
 \frametitle{Haskell Description}
+\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}
-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 func {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-} [] = []
+run func {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-} (i:inputs) = o:outputs
   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}
-\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]{
 \item State is part of the function signature
 \item Both the current state, as the updated State
 }
 
-\subsection{Simulation}
 \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}
-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}
-\begin{itemize}
-\item State behaves like an accumulator
-\end{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
-}
-