Merge git://github.com/christiaanb/thesispresentation
authorMatthijs Kooijman <matthijs@stdin.nl>
Sun, 13 Dec 2009 20:25:36 +0000 (21:25 +0100)
committerMatthijs Kooijman <matthijs@stdin.nl>
Sun, 13 Dec 2009 20:25:36 +0000 (21:25 +0100)
* git://github.com/christiaanb/thesispresentation:
  Add sections and subsections to PDF
  Make pictures larger
  Add rest of my presentation
  Add files for FIR
  Add part about FIR filter

Conflicts:
introduction.lhs

1  2 
introduction.lhs
matthijs/introduction.lhs

diff --combined introduction.lhs
index ea32adfe93b044246c4f26e59ed165b5b9440d9a,0155a5d0d69be325444ce2b9e10defa2f5d3813e..1a6ff718f27226e4952009f484f784ad5ca7441f
@@@ -6,10 -6,10 +6,10 @@@
  \frametitle{Hardware}
  \begin{figure}
  \centerline{
- \includegraphics<1>[height=6cm]{figures/cpus/pmiphone_boardtopbig}
- \includegraphics<2>[height=6cm]{figures/cpus/Intel_core_i7}
- \includegraphics<3>[height=6cm]{figures/cpus/6600GT_GPU}
- \includegraphics<4>[height=6cm]{figures/cpus/Altera_StratixIV}
+ \includegraphics<1>[height=8cm]{figures/cpus/pmiphone_boardtopbig}
+ \includegraphics<2>[height=8cm]{figures/cpus/Intel_core_i7}
+ \includegraphics<3>[height=8cm]{figures/cpus/6600GT_GPU}
+ \includegraphics<4>[height=8cm]{figures/cpus/Altera_StratixIV}
  }
  \label{img:chips}
  \end{figure}
  \item Binnenkant iPhone met veelvoud aan chips, Laatste Intel CPU, Nvidia Videochip, Altere FPGA
  }
  
 -\frame
 -{
 -\frametitle{Transistor}
 -\begin{figure}
 -\centerline{
 -\includegraphics<1>[height=8cm]{figures/transistor/hr-1sttransistor}
 -\includegraphics<2>[height=8cm]{figures/transistor/worldsfastes}
 -\includegraphics<3>[height=8cm]{figures/transistor/nehalem_432x315}
 -}
 -\label{img:chips}
 -\end{figure}
 -}
 -\note[itemize]
 -{
 -\item Hardware is opgebouwd uit transistoren, simpele schakelaar
 -\item Eerste transistor 60 jaar geleden, ter grootte van je hand
 -\item Het word allemaal steeds kleiner
 -\item Nu: Chip net iets groter dan je duim: 731 miljoen transistoren
 -}
 -
 -\frame
 -{
 -\frametitle{Transistor Counts}
 -\begin{itemize}
 -\item Cell (Playstation 3): 241 Million
 -\item Intel Core i7: 731 Million
 -\item ATI HD5800: 2150 Million
 -\item Nvidia GF100 (Expected Summer 2010): 2900 Million
 -\end{itemize}
 -}
 -\note[itemize]
 -{
 -\item Aantal gebruikte transistoren wordt steeds groter
 -}
 -
  \frame
  {
  \frametitle{Designing Hardware}
  \centerline{Design with 4 transistors}
  \begin{columns}[c]
- \column{0.5\textwidth}
+ \column{0.6\textwidth}
  \vspace{-0.5cm}
  \begin{figure}
- \centerline{\includegraphics[height=5cm, trim = 0 0 0 2.5cm, clip]{figures/schakelingen/NAND}}
+ \centerline{\includegraphics[height=6cm, trim = 0 0 0 2.5cm, clip]{figures/schakelingen/NAND}}
  \end{figure}
- \column{0.5\textwidth}
+ \column{0.4\textwidth}
  \begin{figure}
- \centerline{\includegraphics[height=5cm, trim = 0 4.5cm 0 0, clip]{figures/schakelingen/CMOS_NAND_Layout}}
+ \centerline{\includegraphics[height=6cm, trim = 0 4.5cm 0 0, clip]{figures/schakelingen/CMOS_NAND_Layout}}
  \end{figure}
  \end{columns}
  }
  \item Links een schematisch ontwerp, Rechts de layout van de metaal lagen
  }
  
- \frametitle{Transistors}
 +\frame
 +{
- \includegraphics<1>[height=6cm]{figures/transistor/hr-1sttransistor}
- \includegraphics<2>[height=6cm]{figures/transistor/worldsfastes}
- \includegraphics<3>[height=6cm]{figures/transistor/nehalem_432x315}
++\frametitle{Transistor}
 +\begin{figure}
 +\centerline{
++\includegraphics<1>[height=8cm]{figures/transistor/hr-1sttransistor}
++\includegraphics<2>[height=8cm]{figures/transistor/worldsfastes}
++\includegraphics<3>[height=8cm]{figures/transistor/nehalem_432x315}
 +}
 +\label{img:chips}
 +\end{figure}
 +}
 +\note[itemize]
 +{
 +\item Hardware is opgebouwd uit transistoren, simpele schakelaar
 +\item Eerste transistor 60 jaar geleden, ter grootte van je hand
 +\item Het word allemaal steeds kleiner
 +\item Nu: Chip net iets groter dan je duim: 731 miljoen transistoren
 +}
 +
  \frame
  {
  \frametitle{Designing Hardware}
  \vspace{0.5cm}
  \centerline{\Large This won't work for 730 million transistors!}
  \begin{figure}
- \centerline{\includegraphics[height=4cm]{figures/transistor/nehalem-core}}
+ \centerline{\includegraphics[height=7cm]{figures/transistor/nehalem-core}}
  \end{figure}
  }
  
index e8b93304a8b10d2e2d1e8ee1dbd4dd2bc4a2b678,50087a0b963224662e78a38da2f74721a31793b4..0d11fd84a88e3d9cbd5ef5e7daeb5ce6bf5199a2
@@@ -1,4 -1,5 +1,5 @@@
  %include talk.fmt
+ \section{Presentation Matthijs}
  \title{Haskell as a higher order structural hardware description language}
  \author{Matthijs Kooijman}
  \date{December 14, 2009}
@@@ -8,37 -9,47 +9,37 @@@
  
  \frame
  {
 -  \begin{block}{Applying the $sqrt$ function to 4}
 +  \frametitle{Functions}
 +
 +  \begin{block}{Applying the $sqrt$ function to 4}<1>
    $ sqrt(4) = 2$
    \end{block}
 -}
 -
 -\note[itemize]
 -{
 -  \item Functional language - Math like
 -  \item Central: Functions
 -  \item Outside:
 -    \begin{itemize}
 -      \item Put arguments in (application)
 -      \item get result out
 -    \end{itemize}
 -  \item Inside:
 -    \begin{itemize}
 -      \item \emph{How} does the function work? (definition)
 -    \end{itemize}
 -
 -  \item Next sheet: sqrt example
 -}
 -
 -\frame
 -{
 -  \begin{block}{A mathematical square function}
 +  \begin{block}{A mathematical square function}<2->
    $ f(x) = x * x$
    \end{block}
    
 -  \pause
 -  \begin{block}{A square function in Haskell}
 +  \begin{block}{A square function in Haskell}<3->
    \texttt{square x = x * x}
    \end{block}
  }
  
  \note[itemize]
  {
 +  \item Functionele taal -$>$ Wiskunde-achtig
 +  \item Functies staan centraal
 +  \item Next sheet: sqrt example
 +  \item Van buitenaf:
 +    \begin{itemize}
 +      \item Stop er argumenten in (toepassen)
 +      \item Krijg een resultaat terug
 +    \end{itemize}
    \item Next sheet: f(x) = x*x example
 +  \item Van binnenaf:
 +    \begin{itemize}
 +      \item \emph{Hoe} werkt de functie (definitie)
 +    \end{itemize}
    \item Next sheet: square in Haskell
 -  \item No braces
 -  \item Next sheet: pyth in Haskell
 -  \item Functions can be used by other functions
 +  \item Geen haakjes
  }
  
  \frame
@@@ -57,7 -68,6 +58,7 @@@
        \includegraphics[width=3cm]{figures/Pythagoras}
      \end{column}
    \end{columns}
 +
    \pause
    % TODO: Alignment is weird due to mixing columns and non-columns
    \begin{block}{Calculating $c$ in Haskell}
    \end{block}
  }
  
 +\note[itemize]
 +{
 +  \item Functies kunnen door andere functies gebruikt worden
 +  \item Next sheet: Pyth function
 +  \item Complexere functie
 +  \item Next sheet: Pyth in Haskell
 +}
 +
 +\frame
 +{
 +  \begin{block}{}
 +    \texttt{pyth a b = sqrt ((square a) + (square b))}
 +  \end{block}
 +
 +  \begin{figure}
 +    \includegraphics[width=9.5cm]{figures/archs/Pyth}
 +  \end{figure}
 +}
 +
 +\note[itemize]
 +{
 +  \item Next sheet: Pyth hardware
 +  \item Argumenten -$>$ input poorten
 +  \item Toepassing -$>$ component
 +  \item Resultaat -$>$ output poort
 +  \item (Combinatorische) hardware is continu
 +}
 +
 +\frame
 +{
 +  \frametitle{Purity}
 +
 +  \begin{block}{Pure functions}
 +    sqrt, pyth
 +  \end{block}
 +  \begin{block}{Impure functions}
 +    random, delete\_file
 +  \end{block}
 +}
 +
 +\note[itemize]
 +{
 +  \item Next sheet: Purity
 +  \item Wiskundige en functionele functies zijn (meestal) puur.
 +  \item Zelfde argumenten -$>$ zelfde resultaten
 +  \item Geen bijwerkingen.
 +}
 +
 +\frame
 +{
 +  TODO: Impure (stateful) example.
 +}
 +
 +\note[itemize]
 +{
 +  \item TODO
 +}
 +
 +\frame{
 +  \begin{center}
 +  {\Huge \clash}
 +
 +  \bigskip
 +  CAES language for hardware descriptions
 +  \end{center}
 +}
 +
 +\note[itemize]
 +{
 +  \item Next sheet: \clash
 +  \item Hardware beschrijven in Haskell: \clash
 +  \item Nog niet gezien: keuzes, pattern matching, polymorfisme, hogere orde
 +  functies....
 +  \item Dit was de taal -$>$ compiler nodig
 +}
 +
 +\frame
 +{
 +  \begin{block}{Compiler pipeline}
 +  $\xrightarrow{Haskell}{GHC frontend}
 +  \xrightarrow{Core}{Normalization}
 +  \xrightarrow{Core}{Backend}
 +  \xrightarrow{VHDL}$
 +  \end{block}
 +}
 +
 +\note[itemize]
 +{
 +  \item Next sheet: \clash\ pipeline
 +  \item GHC: bestaande compiler
 +  \item Core: simpele functionale taal, niet minder expressief (vergelijk:
 +  taal zonder synoniemen)
 +  \item VHDL: Complexe HDL, gebruiken alleen netlist onderdelen.
 +  \item Normalisatie: Nog simpeler maken.
 +}
 +
 +\frame
 +{
 +  \frametitle{Netlists}
 +
 +  \bigskip
 +  \bigskip
 +  \begin{figure}
 +    \includegraphics[width=9.5cm]{figures/archs/Square}
 +  \end{figure}
 +
 +  \begin{block}{Remember \texttt{square}}
 +    square x = x * x
 +  \end{block}
 + 
 +}
 +
 +\note[itemize]
 +{
 +  \item Next sheet: Square netlist
 +  \item Core hetzelfde als Haskell -$>$ gebruik Haskell syntax voor Core
 +  \item Netlist is componenten (vierkantjes) en verbindingen (lijntjes)
 +  \item Component heeft poorten, poorten moeten een naam hebben
 +  \item Resultaat van square heeft geen naam -$>$ geen normaalvorm
 +}
 +
 +\frame
 +{
 +  \frametitle{Transformation}
 +  \begin{columns}
 +    \begin{column}{5cm}
 +      func = E
 +      
 +      \smallskip
 +      \hrule
 +
 +      \smallskip
 +      func = let res = E in res
 +    \end{column}
 +    \begin{column}{5cm}
 +      E has no name
 +    \end{column}
 +  \end{columns}
 +
 +  \pause
 +  \bigskip
 +  \begin{block}{Apply to square}
 +    square x = x * x
 +
 +    \smallskip
 +    \hrule
 +
 +    \smallskip
 +    square x = let res = x * x in res
 +  \end{block}
 +}
 +
 +\note[itemize]
 +{
 +  \item Next sheet: transformation example
 +  \item Transformatie nodig om output poort een naam te geven
 +  \item Next sheet: Apply to square
 +  \item Toepassen op square, res heeft nu een naam.
 +}
 +
 +\frame
 +{
 +  \frametitle{Normalization system}
 +  
 +  \begin{figure}
 +    \includegraphics[width=9.5cm]{figures/norm/Normalizing}
 +  \end{figure}
 +}
 +
 +\note[itemize]
 +{
 +  \item Systeem van transformaties
 +  \item Volgorde ongedefinieerd: Doe maar wat, tot het net meer kan.
 +  \item Next sheet: Graafnotatie
 +  \item Lijnen zijn transformaties
 +  \item Keuzes (meerdere uitgaande lijnen)
 +  \item Alles komt onderin uit
 +}
 +
 +\frame
 +{
 +  \frametitle{Normalization system}
 +  
 +  \begin{figure}
 +    \includegraphics[width=8cm]{figures/norm/Incorrect}
 +  \end{figure}
 +}
 +
 +\note[itemize]
 +{
 +  \item Meerdere normaalvormen
 +  \item Cykel
 +  \item Systeem werkt nu \emph{meestal}
 +  \item verbeteringen en bewijzen nodig
 +}
 +
 +\frame
 +{
 +  \frametitle{Normalization system}
 +
 +  \begin{itemize}
 +    \item Easy to work with
 +    \item Allows analysis
 +    \item Still complex
 +  \end{itemize}
 +}
 +
 +\note[itemize]
 +{
 +  \item Goede scheiding
 +  \item Makkelijk implementeren
 +  \item Wiskundige beschrijving -$>$ bewijzen
 +  \item Huidige systeem is nog incompleet
 +  \item De goede weg
 +}
 +
 +\frame
 +{
 +  \frametitle{But now?}
 +  \begin{itemize}
 +    \item \clash\ has a solid base
 +    \item Lots of work left
 +    \item Needs testing!
 +  \end{itemize}
 +}
 +
 +\note[itemize]
 +{
 +  \item \clash\ is helemaal nieuw werk
 +  \item Tekortkomingen: Haskell is niet ideaal, state beschrijvingen zijn
 +  niet compact, transformaties zijn nog niet (bewezen compleet).
 +  \item Meer testen nodig, 
 +}
 +
 +\frame
 +{
 +  {\Huge Thanks!}
 +
 +}
 +    
  % vim: set filetype=tex sw=2 sts=2 expandtab: