From: Matthijs Kooijman Date: Sun, 13 Dec 2009 20:25:36 +0000 (+0100) Subject: Merge git://github.com/christiaanb/thesispresentation X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Ffinal-presentation.git;a=commitdiff_plain;h=5bfc71c197897497ac6520548fe3e405dc5f9a9b;hp=b614e04b171194ad19ea2597a7028f84cc03389c Merge git://github.com/christiaanb/thesispresentation * 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 --- diff --git a/clash-haskell09.lhs b/clash-haskell09.lhs index b71f1d7..71a43d1 100644 --- a/clash-haskell09.lhs +++ b/clash-haskell09.lhs @@ -1,6 +1,7 @@ \RequirePackage{atbegshi} \documentclass[empty]{beamer} \usetheme{default} +%\setbeameroption{show only notes} \setbeameroption{show notes} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline} @@ -9,6 +10,13 @@ \centerline{\insertframenumber{}}}% \vskip5pt% } + +\addtobeamertemplate{note page}{ + \vskip5pt + \centerline{\insertframenumber} + \vskip5pt +}{} + %include talk.fmt \include{preamble} @@ -32,3 +40,4 @@ % \include{reducer} \end{document} +% vim: set filetype=tex sw=2 sts=2 expandtab: diff --git a/figures/archs/Pyth.dia b/figures/archs/Pyth.dia new file mode 100644 index 0000000..251c274 Binary files /dev/null and b/figures/archs/Pyth.dia differ diff --git a/figures/archs/Pyth.pdf b/figures/archs/Pyth.pdf new file mode 100644 index 0000000..7d9e94e Binary files /dev/null and b/figures/archs/Pyth.pdf differ diff --git a/figures/archs/Square.dia b/figures/archs/Square.dia new file mode 100644 index 0000000..dcf77eb Binary files /dev/null and b/figures/archs/Square.dia differ diff --git a/figures/archs/Square.pdf b/figures/archs/Square.pdf new file mode 100644 index 0000000..36ebe54 Binary files /dev/null and b/figures/archs/Square.pdf differ diff --git a/figures/norm/Incorrect.dia b/figures/norm/Incorrect.dia new file mode 100644 index 0000000..9b77e83 Binary files /dev/null and b/figures/norm/Incorrect.dia differ diff --git a/figures/norm/Incorrect.pdf b/figures/norm/Incorrect.pdf new file mode 100644 index 0000000..c54e23c Binary files /dev/null and b/figures/norm/Incorrect.pdf differ diff --git a/figures/norm/Normalizing.dia b/figures/norm/Normalizing.dia new file mode 100644 index 0000000..77e774e Binary files /dev/null and b/figures/norm/Normalizing.dia differ diff --git a/figures/norm/Normalizing.pdf b/figures/norm/Normalizing.pdf new file mode 100644 index 0000000..0fe07e9 Binary files /dev/null and b/figures/norm/Normalizing.pdf differ diff --git a/introduction.lhs b/introduction.lhs index 0155a5d..1a6ff71 100644 --- a/introduction.lhs +++ b/introduction.lhs @@ -20,41 +20,6 @@ \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} @@ -78,6 +43,26 @@ \item Links een schematisch ontwerp, Rechts de layout van de metaal lagen } +\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{Designing Hardware} diff --git a/matthijs/introduction.lhs b/matthijs/introduction.lhs index 50087a0..0d11fd8 100644 --- a/matthijs/introduction.lhs +++ b/matthijs/introduction.lhs @@ -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 @@ -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} @@ -75,4 +66,244 @@ \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: