Fill in a few more slides.
[matthijs/projects/internship.git] / Progress presentation / Presentation.tex
index 3a7d1101972c211366d780198ccaf4cea436a562..1d28c7d4e558e51a7f5e8c04f33b09ae835161c1 100755 (executable)
@@ -1,5 +1,6 @@
 \documentclass[hyperref={pdfpagelabels=false}]{beamer}
-%\documentclass{beamer}
+
+\setbeameroption{show notes}
 
 \mode<presentation>
 {
 \usepackage{multimedia}
 \usepackage{subfigure}
 \usepackage{booktabs}
+% Can use a tiny fontsize
+\usepackage{fancyvrb}
+
+
+%\usepackage{pgfpages}
+%\pgfpagesuselayout{4 on 1}[a4paper,border shrink=5mm]
+
 %For handouts, use the following two lines:
 %\usepackage{pgfpages}
 %\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
 
 
 \title
-{Scalability issues of a Network-on-Chip}
+{MontiumC Transforming}
 
-\author {David Bonfrer}
+\author {Matthijs Kooijman}
 
 \institute[Recore Systems and University of Twente]
 {
-  \inst{1}%
+  \inst{}%
   Recore Systems
   \and
-  \inst{2}%
+  \inst{}%
   Faculty of Electrical Engineering, Mathematics and Computer Science\\
   University of Twente
   }
   
-%\setbeamertemplate{navigation symbols}{}
-  
-% \pgfdeclareimage[height=0.5cm]{recore_logo}{images/recore_logo}
-% \logo{\pgfuseimage{recore_logo}}
-
-
-
-%\AtBeginSubsection[]
-%{
-%  \begin{frame}<beamer>{Outline}
-%    \tableofcontents[currentsection,currentsubsection,hideothersubsections]
-%  \end{frame}
-%}
-
-
-
 \begin{document}
 
 \begin{frame}
 \end{frame}
 
 \section{Introduction}
-       \subsection{Low power usage}
-%              \begin{frame}{PDA}
-%                      \begin{center}
-%                              \includegraphics[scale=.44]{images/pda3}
-%                      \end{center}
-%              \end{frame}
-%              \begin{frame}{SoC}
-%                      %Picture of SoC
-%              \end{frame}
-%              \begin{frame}{Annabelle \ac{SoC}}
-%                      \begin{center}
-%                              \includegraphics[scale=0.52]{images/reconfigurable_fabric}
-%                      \end{center}
-%              \end{frame}
-%              \begin{frame}{CRISP \ac{SoC}}
-%                      \begin{center}
-%                              \includegraphics[scale=.76]{images/CRISP}%TODO fix blue too black
-%                      \end{center}
-%              \end{frame}
-%\section{Problem description}
-%      %Problem description
-%\section{Architecture}
-%              \begin{frame}
-%              \begin{center}
-%                      \tikzstyle{help lines}=[black!10,thin]
-%                      \begin{tikzpicture}[>=stealth,scale=.7]
-%                              \foreach \x in {1,6,11}
-%                                      \foreach \y in {5,0}{
-%                                              \draw (\x,\y) +(-1,-1) rectangle ++(1,1)[draw=black!50,fill=black!20,thick];
-%                                              \draw (\x,\y) node{Router};
-%                                              \draw (\x,\y) +(.4,1.2) rectangle ++(1.4,1.8)[draw=black!50,fill=black!20,thick];
-%                                              \draw (\x,\y) +(.9,1.5)node{Tile};
-%                                              \foreach \z in {0,.1,.2,.3} \draw (\x,\y) ++(\z,0) ++(0.5,1) -- ++(0,0.2);
-%                              }
-%                              \foreach \x in {1,6}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(4,\z);
-%                              \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,4);
-%                              \foreach \x in {11}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(1.5,\z);
-%                              \foreach \x in {1,6,11}\foreach \y in {5}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,1.5);
-%                              \foreach \x in {1}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(-1,\z) -- ++(-1.5,\z);
-%                              \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,-1) -- ++(\z,-1.5);
-%                              \draw (4,5) circle (0.4) +(0,-0.4) -- (3,3.5) +(0,-0.2) node{Link};
-%                              \draw (2,0) circle (0.4) +(0,0.4) -- (4,1.5) +(0,0.2) node{Port};
-%                              \draw (9,4.9)  circle (0.1) +(0,-0.1) -- (8,3.5) +(0,-0.2) node{Lane};
-%                      \end{tikzpicture}
-%              \end{center}
-%              \end{frame}
-%              \begin{frame}{Circuit switched}
-%                      \begin{center}
-%                              \tikzstyle{help lines}=[black!10,thin]
-%                              \begin{tikzpicture}[>=stealth,scale=.6]
-%                                      \foreach \x in {1,6,11}
-%                                              \foreach \y in {5,0}{
-%                                                      \draw (\x,\y) +(-1,-1) rectangle ++(1,1)[draw=black!50,fill=black!20,thick];
-%                                                      \draw (\x,\y) node{Router};
-%                                                      \draw (\x,\y) +(.4,1.2) rectangle ++(1.4,1.8)[draw=black!50,fill=black!20,thick];
-%                                                      \draw (\x,\y) +(.9,1.5)node{Tile};
-%                                                      \foreach \z in {0,.1,.2,.3} \draw (\x,\y) ++(\z,0) ++(0.5,1) -- ++(0,0.2);
-%                                      }
-%                                      \foreach \x in {1,6}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(4,\z);
-%                                      \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,4);
-%                                      \foreach \x in {11}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(1.5,\z);
-%                                      \foreach \x in {1,6,11}\foreach \y in {5}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,1.5);
-%                                      \foreach \x in {1}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(-1,\z) -- ++(-1.5,\z);
-%                                      \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,-1) -- ++(\z,-1.5);
-%                                      \draw [very thick,->] (-1,0.2)  -- (11.2,0.2) -- (11.2,4.9) -- (13,4.9);
-%                              \end{tikzpicture}
-%                      \end{center}
-%              \end{frame}
-%              \begin{frame}{Packet switched}
-%                      \begin{center}
-%                              \tikzstyle{help lines}=[black!10,thin]
-%                              \begin{tikzpicture}[>=stealth,scale=.6]
-%                                      \foreach \x in {1,6,11}
-%                                              \foreach \y in {5,0}{
-%                                                      \draw (\x,\y) +(-1,-1) rectangle ++(1,1)[draw=black!50,fill=black!20,thick];
-%                                                      \draw (\x,\y) node{Router};
-%                                                      \draw (\x,\y) +(.4,1.2) rectangle ++(1.4,1.8)[draw=black!50,fill=black!20,thick];
-%                                                      \draw (\x,\y) +(.9,1.5)node{Tile};
-%                                                      \foreach \z in {0,.1,.2,.3} \draw (\x,\y) ++(\z,0) ++(0.5,1) -- ++(0,0.2);
-%                                      }
-%                                      \foreach \x in {1,6}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(4,\z);
-%                                      \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,4);
-%                                      \foreach \x in {11}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(1,\z) -- ++(1.5,\z);
-%                                      \foreach \x in {1,6,11}\foreach \y in {5}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,1) -- ++(\z,1.5);
-%                                      \foreach \x in {1}\foreach \y in {5,0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(-1,\z) -- ++(-1.5,\z);
-%                                      \foreach \x in {1,6,11}\foreach \y in {0}\foreach \z in {-0.1,0,0.1,0.2}\draw (\x,\y) +(\z,-1) -- ++(\z,-1.5);
-%                                      \draw [very thick,->] (-1,0.2)  -- (.8,0.2);
-%                                      \draw [very thick,->] (1.2,0.2)  -- (5.8,0.2);
-%                                      \draw [very thick,->] (6.2,0.2)  -- (10.8,0.2);
-%                                      \draw [very thick,->] (11.2,0.5)-- (11.2,4.5);
-%                                      \draw [very thick,->] (11.5,4.9)-- (13,4.9);
-%                              \end{tikzpicture}
-%                      \end{center}
-%              \end{frame}
-%              \begin{frame}{Router components}
-%                      \begin{center}
-%                              \tikzstyle{help lines}=[black!10,thin]
-%                              \begin{tikzpicture}[>=stealth,scale=.84]
-%                                      \draw (-2.8,-1) rectangle ++(7.5,5);
-%                                      \draw (1,3.75) node{Generic router};
-%                                      \draw (.1,.1) rectangle ++(1.8,3);
-%                                      \draw (1,2.75) node{Crossbar};
-%                                      \foreach \x in {.1,2.6,2.0,1.4}{
-%                                              \draw (2.1,\x) rectangle ++(2.5,.5);
-%                                              \draw (2.1,\x) +(1.25,.25) node{Output buffer};
-%                                      }
-%                                      \foreach \x in {.8,1,1.2}{
-%                                              \draw (2.1,\x) +(1.25,0) circle (0.05);
-%                                      }
-%                                      \foreach \x in {.1,2.6,2.0,1.4}{
-%                                              \draw (-.1,\x) rectangle ++(-2.5,.5);
-%                                              \draw (-.1,\x) +(-1.25,.25) node{Input buffer};
-%                                      }
-%                                      \foreach \x in {.8,1,1.2}{
-%                                              \draw (-.1,\x) +(-1.25,0) circle (0.05);
-%                                      }
-%                                      \draw (.9,.1) -- (.9,-.1);
-%                                      \draw (1.1,.1) -- (1.1,-.1);
-%                                      \draw (0,-.1) rectangle (2,-.9);
-%                                      \draw (1,-.5) node {Arbiter};
-%                                      \foreach \x in {0.2,0.3,...,2.2}{
-%                                              \draw (0.2,\x) -- (.1,\x);
-%                                              \draw (1.9,\x) -- (1.8,\x);
-%                                      }
-%                                      \draw (.1,2.1) -- (.5,2.1);
-%                                      \draw (.1,0.2) -- (.5,0.2);
-%                      
-%                                      \draw (1.5,2.1) -- (1.9,2.1);
-%                                      \draw (1.5,0.2) -- (1.9,0.2);
-%                      
-%                                      \draw (-4.2,1.5) node {N inputs};
-%                                      \draw (6.5,1.5) node {N outputs};
-%                      
-%                                      \draw (0.5,2.1) -- (1.5,0.2);
-%                                      \draw (0.5,0.2) -- (1.5,2.1);
-%                                      \draw (1.9,0.2) -- (2.1,.35);
-%                                      \draw (1.9,2.1) -- (2.1,2.85);
-%                                      \draw (1.9,2.0) -- (2.1,2.25);
-%                                      \draw (1.9,1.9) -- (2.1,1.65);
-%                      
-%                                      \draw (.1,0.2) -- (-.1,.35);
-%                                      \draw (.1,2.1) -- (-.1,2.85);
-%                                      \draw (.1,2.0) -- (-.1,2.25);
-%                                      \draw (.1,1.9) -- (-.1,1.65);
-%                      
-%                      
-%                                      \draw [->] (4.5,0.35) -- (4.9,.35);
-%                                      \draw [->] (4.5,2.85) -- (4.9,2.85);
-%                                      \draw [->] (4.5,2.25) -- (4.9,2.25);
-%                                      \draw [->] (4.5,1.65) -- (4.9,1.65);
-%                      
-%                                      \draw [<-] (-2.5,0.35) -- (-3,.35);
-%                                      \draw [<-] (-2.5,2.85) -- (-3,2.85);
-%                                      \draw [<-] (-2.5,2.25) -- (-3,2.25);
-%                                      \draw [<-] (-2.5,1.65) -- (-3,1.65);
-%                              \end{tikzpicture}
-%                      \end{center}
-%              \end{frame}
-%              \begin{frame}{Flow control}
-%                      \begin{center}
-%                              \tikzstyle{help lines}=[black!10,thin]
-%                              \begin{tikzpicture}[>=stealth,scale=.5]
-%                                      \draw[->] (.5,1) -- (9.5,1)node[above,midway]{Data valid};
-%                                      \draw[<-] (.5,2) -- (9.5,2)node[above,midway]{Acknowledge};
-%                                      \draw[->][very thick] (.5,3.5) -- (9.5,3.5) node[above,midway]{Data};
-%                              \end{tikzpicture}
-%                      \end{center}
-%              \end{frame}
-%\section{Results}
-%      \subsection{Flow control}
-%              \begin{frame}{Flow control}
-%                      \begin{itemize}
-%                              \item Different types of flow control:
-%                              \begin{itemize}
-%                                      \item Direct flow control
-%                                      \item Single register flow control
-%                                      \item Double register flow control
-%                                      \item Windowed transmission
-%                              \end{itemize}
-%                      \end{itemize}
-%              \end{frame}
-%      \subsection{Configuration network}
-%%             \begin{frame}{Configuration network}
-%%                     \begin{center}
-%%                             \includegraphics[trim = 10mm 200mm 100mm 20mm, clip, scale=.8]{images/d+c_router}
-%%                     \end{center}
-%%             \end{frame}
-%              \begin{frame}{Configuration network}
-%                      \begin{columns}
-%                      \column{.8\textwidth}
-%                      \begin{itemize}
-%                              \item The configuration network \ac{CSDCnet}:
-%                              \begin{itemize}
-%                                      \item Pros:
-%                                      \begin{itemize}
-%                                              \item Easy configuration
-%                                              \item Optimal config route
-%                                              \item Small area needed on chip ($0.002 mm^2$)
-%                                              \item High clock speed possible (1GHz)
-%                                      \end{itemize}
-%                                      \item Cons:
-%                                      \begin{itemize}
-%                                              \item Only configuration data.
-%                                              \item Central control needed.
-%                                              \item Long configuration times.
-%                                      \end{itemize}
-%                              \end{itemize}
-%                      \end{itemize}
-%                      \column{.2\textwidth}
-%                      \begin{center}
-%                              \tikzstyle{place}=[circle,draw=blue!50,fill=blue!20,thick]
-%                              \tikzstyle{transition}=[rectangle,draw=black!50,fill=black!20,thick]
-%                              \begin{tikzpicture}[>=stealth,scale=.5,transform shape]
-%                                      \node[place] (1) {};
-%                                      \node[place] (2) [right of=1] {};
-%                                      \node[place] (3) [right of=2] {};
-%                                      \node[place] (4) [below of=1] {};
-%                                      \node[place] (5) [right of=4] {};
-%                                      \node[place] (6) [right of=5] {};
-%                                      \node[place] (7) [below of=4] {};
-%                                      \node[place] (8) [right of=7] {};
-%                                      \node[place] (9) [right of=8] {};
-%              
-%                                      \draw (1.east) -- (2.west);
-%                                      \draw (2.east) -- (3.west);
-%                                      \draw (4.east) -- (5.west);
-%                                      \draw (5.east) -- (6.west);
-%                                      \draw (7.east) -- (8.west);
-%                                      \draw (8.east) -- (9.west);
-%                                      \draw (1.south)-- (4.north);
-%                                      \draw (2.south)-- (5.north);
-%                                      \draw (3.south)-- (6.north);
-%                                      \draw (4.south)-- (7.north);
-%                                      \draw (5.south)-- (8.north);
-%                                      \draw (6.south)-- (9.north);
-%                              \end{tikzpicture}
-%                      \end{center}
-%                      \end{columns}
-%              \end{frame}
-%              \begin{frame}{Configuring a NoC with CSDCnet}
-%                      \begin{itemize}
-%                              \item Configuration using relative addressing
-%                              \item Configuration using commands
-%                              \item Two states for CSDCrouters:
-%                              \begin{itemize}
-%                                      \item \emph{passthrough mode}
-%                                      \item \emph{execute command mode}
-%                              \end{itemize}
-%                      \end{itemize}
-%              \end{frame}
-%              \begin{frame}[shrink=33]{Commands of CSDCnet}
-%                      \vspace{2cm}
-%                      \begin{table}
-%                              \centering
-%                              \begin{tabular}{lll} \toprule
-%                                      Command name & Command description & Parameters (Length in bits)\\
-%                                      \midrule
-%                                      CONFIG & Configure current data router & configuration data (11)\\
-%                                      DESTROY & Destroy complete configuration path & -\\
-%                                      EXTEND & Extend configuration path & direction to extend to (3)\\
-%                                      REMOVE & Remove the last router from path & -\\
-%                                      RESET\_ALL & Reset complete \acs{NoC} and all tiles & -\\
-%                                      RESET\_TILE & Reset current tile & -\\
-%                                      \bottomrule
-%                              \end{tabular}
-%                              \caption{Commands}
-%                              \label{tab:commandsLimited}
-%                      \end{table}
-%              \end{frame}
-%
-%              
-%              \begin{frame}{Ring network}
-%                      \begin{columns}
-%                      \column{.8\textwidth}
-%                      \begin{itemize}
-%                              \item The ring network, from the University of Twente, can be used for configuration too:
-%                              \begin{itemize}
-%                                      \item Pros:
-%                                      \begin{itemize}
-%                                              \item No setting up paths.
-%                                              \item Not only configuration data.
-%                                              \item Needs small area on chip ($0.003 mm^2$).
-%                                              \item High clock speed possible (1GHz).
-%                                              \item No central control of the network.
-%                                      \end{itemize}
-%                                      \item Cons:
-%                                      \begin{itemize}
-%                                              \item Routes not optimal. 
-%                                      \end{itemize}
-%                              \end{itemize}
-%                      \end{itemize}
-%                      \column{.2\textwidth}
-%                      \begin{center}
-%                              \tikzstyle{place}=[circle,draw=blue!50,fill=blue!20,thick]
-%                              \tikzstyle{transition}=[rectangle,draw=black!50,fill=black!20,thick]
-%                              \begin{tikzpicture}[>=stealth,scale=.4,transform shape]
-%                                      \node[place] (1) at (-1,-2) {};
-%                                      \node[place] (2) at ( 1,-2) {};
-%                                      \node[place] (3) at ( 2,-1) {};
-%                                      \node[place] (4) at ( 2, 1) {};
-%                                      \node[place] (5) at ( 1, 2) {};
-%                                      \node[place] (6) at (-1, 2) {};
-%                                      \node[place] (7) at (-2, 1) {};
-%                                      \node[place] (8) at (-2,-1) {};
-%                                      \foreach \from/\to in {1/2,2/3,3/4,4/5,5/6,6/7,7/8,8/1}
-%                                      \draw (\from) -- (\to);
-%                              \end{tikzpicture}
-%                      \end{center}
-%                      \end{columns}
-%              \end{frame}
-%              \begin{frame}
-%              \only<1>{\begin{center}
-%                      \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
-%                              \foreach \x in {0,1,...,7}
-%                              \foreach \y in {0,1,...,7}
-%                              \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
-%                              \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
-%                              \draw (0,-1) node {CU};
-%                              \draw (0,7) node {A};
-%                              \draw (7,0) node {B};
-%                              %\draw[->,color=red,dashed,very thick] (0,0) -- (0,7);
-%                              \draw[color=black!0] (0,-.5) -- (1,-.5);
-%                              \foreach \x in {0,...,6}
-%                              \foreach \y in {0,...,7}
-%                              \draw (\y,\x)+(0,0.3) -- +(0,0.7);
-%                              \foreach \x in {0,...,7}
-%                              \foreach \y in {0,...,6}
-%                              \draw (\y,\x)+(0.3,0) -- +(0.7,0);
-%
-%                              %\draw[very thick,->] (0,7) -- (7,7) -- (7,0);
-%                      
-%                      \end{tikzpicture}
-%                      \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
-%                              \foreach \x in {0,1,...,7}
-%                              \foreach \y in {0,1,...,7}
-%                              \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
-%                              \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
-%                              \draw (0,-1) node {CU};
-%                              \draw (0,7) node {A};
-%                              \draw (7,0) node {B};
-%                              %\draw[very thick,->] (0,7) -- (0,0) -- (7,0);
-%                              %ring-net lines
-%                              \foreach \x in {0,...,5}
-%                              \foreach \y in {0,...,7}
-%                              \draw (\y,\x)+(0,0.3) -- +(0,0.7);
-%                              \draw (0,6)+(0,0.3) -- +(0,0.7);
-%                              \draw (7,6)+(0,0.3) -- +(0,0.7);
-%                              \foreach \x in {0,2,4,6} \draw (\x,0)+(0.3,0) -- +(0.7,0);
-%                              \foreach \x in {1,3,5}   \draw (\x,6)+(0.3,0) -- +(0.7,0);
-%                              \foreach \x in {0,...,6} \draw (\x,7)+(0.3,0) -- +(0.7,0);
-%                              
-%                              \draw[color=black!0] (0,-.5) -- (1,-.5);
-%                      \end{tikzpicture}
-%              \end{center}}
-%              \only<2>{\begin{center}
-%                      \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
-%                              \foreach \x in {0,1,...,7}
-%                              \foreach \y in {0,1,...,7}
-%                              \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
-%                              \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
-%                              \draw (0,-1) node {CU};
-%                              \draw (0,7) node {A};
-%                              \draw (7,0) node {B};
-%                              \draw[->,color=red,dashed,very thick] (0,0) -- (0,7);
-%                              \draw[color=black!0] (0,-.5) -- (1,-.5);
-%                              \foreach \x in {0,...,6}
-%                              \foreach \y in {0,...,7}
-%                              \draw (\y,\x)+(0,0.3) -- +(0,0.7);
-%                              \foreach \x in {0,...,7}
-%                              \foreach \y in {0,...,6}
-%                              \draw (\y,\x)+(0.3,0) -- +(0.7,0);
-%
-%                              \draw[very thick,->] (0,7) -- (7,7) -- (7,0);
-%                      
-%                      \end{tikzpicture}
-%                      \begin{tikzpicture}[>=stealth,scale=0.5,transform shape]
-%                              \foreach \x in {0,1,...,7}
-%                              \foreach \y in {0,1,...,7}
-%                              \draw (\y,\x) circle (0.3)[draw=blue!50,fill=blue!20,thick];
-%                              \draw (0,-1) circle (0.3)[draw=blue!50,fill=blue!20,thick];
-%                              \draw (0,-1) node {CU};
-%                              \draw (0,7) node {A};
-%                              \draw (7,0) node {B};
-%                              \draw[very thick,->] (0,7) -- (0,0) -- (7,0);
-%                              %ring-net lines
-%                              \foreach \x in {0,...,5}
-%                              \foreach \y in {0,...,7}
-%                              \draw (\y,\x)+(0,0.3) -- +(0,0.7);
-%                              \draw (0,6)+(0,0.3) -- +(0,0.7);
-%                              \draw (7,6)+(0,0.3) -- +(0,0.7);
-%                              \foreach \x in {0,2,4,6} \draw (\x,0)+(0.3,0) -- +(0.7,0);
-%                              \foreach \x in {1,3,5}   \draw (\x,6)+(0.3,0) -- +(0.7,0);
-%                              \foreach \x in {0,...,6} \draw (\x,7)+(0.3,0) -- +(0.7,0);
-%                              
-%                              \draw[color=black!0] (0,-.5) -- (1,-.5);
-%                      \end{tikzpicture}
-%              \end{center}}
-%              \end{frame}
-%              \begin{frame}
-%              \begin{center}
-%                      %\includegraphics[scale=.7]{results/conftimes2}
-%              \end{center}
-%              \end{frame}
-%              \small
-%              \begin{frame}{Synthesis results at 500MHz}
-%                      \begin{table} [ht]
-%                              \centering
-%                              \begin{tabular}{lll}
-%                                      \toprule
-%                                      Component & Slack (ns) & Area ($mm^2$)\\
-%                                      \midrule
-%                                      Packet switched (Kavaldjiev)                    & 0.00 & 0.2133\\
-%                                      Small packet switched (Kavaldjiev)              & 0.00 & 0.0769\\
-%                                      Circuit switched (Annabelle)                    & 0.42 & 0.0254\\
-%                                      Circuit switched SingleReg (thesis)             & 0.35 & 0.0393\\
-%                                      Circuit switched DoubleReg (thesis)             & 0.03 & 0.0681\\
-%                                      \midrule
-%                                      Ring configuration                              & 0.96 & 0.0030\\
-%                                      \acs{CSDCrouter}                                & 0.85 & 0.0021\\
-%                                      %\acs{CSDCrouter} with TTL                      & 0.26 & 0.0090\\
-%                                      
-%                                      
-%                                      \bottomrule
-%                              \end{tabular}
-%                              \caption{Results of 90nm ASIC technology from TSMC at 500MHz}
-%                      \end{table}
-%              \end{frame}
-%              \begin{frame}{Synthesis results at 1000MHz}
-%                      \begin{table} [ht]
-%                              \centering
-%                              \begin{tabular}{lll}
-%                                      \toprule
-%                                      Component & Slack (ns) & Area ($mm^2$)\\
-%                                      \midrule
-%                                      Packet switched (Kavaldjiev)                            & -0.66 & 0.2174 \\
-%                                      Small packet switched (Kavaldjiev)                      & -0.67 & 0.0812\\
-%                                      Circuit switched (Annabelle)                            & 0.00  & 0.0265\\
-%                                      Circuit switched SingleReg (thesis)                     & 0.00  & 0.0423\\
-%                                      Circuit switched DoubleReg (thesis)                     & 0.00  & 0.0837\\
-%                                      \midrule
-%                                      Ring configuration                                      & 0.02  & 0.0030\\
-%                                      \acs{CSDCrouter}                                        & 0.01  & 0.0022\\
-%                                      %\acs{CSDCrouter} with TTL                              & -0.17 & 0.0098\\
-%                                      \bottomrule
-%                              \end{tabular}
-%                              \caption{Results of 90nm ASIC technology from TSMC at 1000MHz}
-%                              \label{tabASIC1000}
-%                      \end{table}
-%              \end{frame}
-%              \normalsize
-%
-%\section{Conclusion}
-%      \begin{frame}{Flow control}
-%              \begin{itemize}
-%                      \item DirectAck is not scalable, but good for very small \acp{NoC}.\onslide<2->
-%                      \item Single register is slower, but usable for any size of \ac{NoC}.\onslide<3->
-%                      \item Double register requires twice as much area, but is fast and usable for any size of \ac{NoC}.\onslide<4->
-%                      \item Windowed transmission requires very much buffer area in the tiles, and is therefore not recommended.\onslide<5->
-%              \end{itemize}
-%              Scalable flow control always requires two buffers or two clock cycles.
-%      \end{frame}
-%      \begin{frame}{Choosing a NoC}
-%      \begin{itemize}
-%              \item Best Effort (BE) traffic:
-%              \begin{itemize}
-%                      \item Much BE traffic: use Packet Switched.\onslide<2->
-%                      \item Some control BE traffic: use SAnet with ring network.\onslide<3->
-%                      \item No BE traffic: use SAnet with CSDCnet.\onslide<4->
-%                      \item Some BE traffic can also be routed efficiently using circuits in the circuit switched network, bursts for example.\onslide<5->
-%                      \item CSDCnet does not support connections initiated from the tiles.\onslide<6->
-%              \end{itemize}
-%              \item Guaranteed Service (GS) traffic:
-%              \begin{itemize}
-%                      \item High bandwidth streams: use circuit switched;
-%                      \begin{itemize}
-%                              \item Circuit switched has 4 outputs per port.
-%                              \item Circuit switched can be clocked at 1GHz.\onslide<7->
-%                      \end{itemize}
-%                      \item Low bandwidth streams: use packet switched;
-%                      \begin{itemize}
-%                              \item Streams can be multiplexed.
-%                      \end{itemize}
-%
-%              \end{itemize}
-%      \end{itemize}
-%      \end{frame}
-       %tiny
-       \begin{frame}[shrink=33]{CSDCnet vs Ring}
-               \vspace{2cm}
-               \begin{table}
-                       \centering
-                       \begin{tabular}{ll}\toprule
-                               \acs{CSDCnet} & Ring network\\
-                               \midrule 
-                               Circuit switched                                        & Packet switched\\%\onslide<2-> \\
-                               Full \acs{NoC} configuration in 1.3ms (for N=8)         & Full \acs{NoC} configuration in 0.8ms (for N=8)\\%\onslide<3-> \\
-                               No BE traffic support                                   & Tiles can send BE data over the ring\\%\onslide<4-> \\
-                               Topology the same as data \acs{NoC}                     & Topology differs from data \acs{NoC}\\%\onslide<5-> \\
-                               Worst case config time increases linearly               & Worst case config time increases quadratically\\%\onslide<6-> \\
-                               Central coordination for avoiding deadlocks             & No deadlocks possible\\%\onslide<7-> \\
-                               Area on chip is $2166 \mu m^2$ (one router)             & Area on chip is $3026 \mu m^2$ (one router)\\%\onslide<1->\\
-                                \bottomrule
-                       \end{tabular}
-                       \caption{Configuration networks: Serial VS Ring}
-                       \label{tab:SerialVSRing}
-               \end{table}
-       \end{frame}
-       %\normalsize
-       \begin{frame}{Future research}
-               \begin{itemize}
-                       \item Recommendations for future research:
-                       \begin{itemize}
-                               \item Configuration using data lanes
-                               \item Optimisations for \ac{CSDCnet}
-                               \item Optimisations for ring network
-                               \item Packet switched mesh configuration network
-                       \end{itemize}
-               \end{itemize}
-       \end{frame}
-%      \begin{frame}
-%              \begin{center}
-%                      \includegraphics[scale=.16]{images/qmark2}
-%              \end{center}
-%      \end{frame}
-\appendix
-
-%\begin{frame}{Synthesis settings}
-%      To compare size and maximum clock frequency of various \acp{NoC}, we synthesised them using the 90nm TSMC library with the following settings:
-%      \begin{itemize}
-%              \item Operating Condition Name: WCCOM.
-%              \item Library: tcbn90gthpwc.
-%              \item Process: 1.00.
-%              \item Temperature: 125.00.
-%              \item Voltage: 1.08.
-%              \item Interconnect Model: balanced\_tree.
-%      \end{itemize}
-%\end{frame}
-%\tiny
-%\begin{frame}{Commands}
-%      \begin{table} [ht]
-%              \centering
-%              \begin{tabular}{lll} \toprule
-%                      Command name & Command description & Parameters (Length in bits)\\
-%                      \midrule
-%                      CONFIG & Configure current data router & configuration data (11)\\
-%                      CONFIG\_TTL & Configure current data router & configuration data and TTL (13)\\
-%                      DESTROY & Destroy complete configuration path & -\\
-%                      EXTEND & Extend configuration path & direction to extend to (3)\\
-%                      REMOVE & Remove the last router from path & -\\
-%                      RESET\_ALL & Reset complete \acs{NoC} and all tiles & -\\
-%                      RESET\_TILE & Reset current tile & -\\
-%                      SET\_TTL & Set TTL value & TTL, destination and timeout (14)\\
-%                      STATUS & Returns the TTL status & no data while status is returned (20)\\
-%                      \bottomrule
-%              \end{tabular}
-%              \caption{Commands}
-%              \label{tab:commands}
-%      \end{table}
-%\end{frame}
-%\normalsize
-
-%\begin{frame}{SRAM size vs register size}
-%      \begin{figure}
-%              \centering
-%              \includegraphics[scale=.5]{images/sram_register_16_90}
-%              \caption{Estimation of size of SRAM vs registers in 90nm UMC technology}
-%              \label{pic:SRAMvsREGS}
-%      \end{figure}
-%\end{frame}
-
-%\begin{frame}{Examples of \acp{NoC}}
-%      \tiny
-%      \begin{table} [ht]
-%              \centering
-%                      \begin{tabular}{lllll} \toprule
-%                      NoC & CS or PS & BE/GS & Flow control & Configuration \\
-%                      \midrule
-%                      \AE thereal                             & PS            & BE and GS     & BE:Handshake, GS:Windowed     & Header\\
-%                      Kavaldjiev                              & PS            & BE and GS     & Handshake                     & Header\\
-%                      SoCIN                                   & PS            & BE            & Handshake                     & XY header\\
-%                      SoCBUS                                  & CS            & GS            & Handshake                     & Header\\
-%                      PACT XPP                                & CS            & GS            & Handshake                     & Config network\\
-%                      Annabelle's NoC                         & CS            & GS            & Handshake                     & Config network\\
-%                      \bottomrule
-%              \end{tabular}
-%              \caption{Different NoCs}
-%              \label{tab:NoCs}
-%      \end{table}
-%\end{frame}
-
-%\begin{frame}{Glossary}
-       \begin{acronym}[CRISP]
-               \acro{ASIC}{application-specific integrated circuit}
-               \acro{CRISP}{Cutting edge Reconfigurable ICs for Stream Processing}
-               \acro{CSDCnet}{Circuit switched Serial Dedicated Configuration network}
-               \acro{CSDCrouter}{Circuit switched Serial Dedicated Configuration router}
-               \acro{CU}{Configuration Unit}
-               \acro{FPGA}{field programmable gate array}
-               \acro{GPP}{general purpose processor}
-               \acro{KISS}{keeping it simple and stupid}
-               \acro{NoC}{Network-on-Chip}
-               \acro{SAnet}{Scalable Annabelle network}
-               \acro{SoC}{System-on-Chip}
-       \end{acronym}
-%\end{frame}
-\end{document}
+  \begin{frame}{Montium Tile Processor}
+    \begin{itemize}
+      \item Explicitely parallel processor
+      \item Multilevel reconfiguration
+      \item Separate memory addressing units
+      \item Data oriented, limited control flow
+      \item Redesign on the way
+    \end{itemize}
+  \end{frame}
+
+  \begin{frame}{MontiumC}
+    \begin{itemize}
+      \item Subset of C
+      \item Operations on data using MontiumC API
+      \item Compilable by gcc (as C++)
+      \item Under constant improvement
+    \end{itemize}
+  \end{frame}
+
+  \begin{frame}{Low Level Virtual Machine (LLVM)}
+    \begin{itemize}
+      \item Compiler framework.
+      \item Provides:
+      \begin{itemize}
+        \item C Frontend
+        \item Intermediate representation (LLVM IR)
+        \item Transformation passes
+        \item Native codegenerators
+        \item JIT compilation
+      \end{itemize}
+      \item Very modular
+    \end{itemize}
+  \end{frame}
+
+  \begin{frame}{Compiling MontiumC}
+    \pgfdeclareimage[width=\textwidth]{Compiling}{images/Compiling}
+    \pgfuseimage{Compiling}
+    \begin{itemize}
+      \item Focus: montiumccfe and transformations
+    \end{itemize}
+  \end{frame}
+
+\section{Tasks}
+
+  \subsection{Original tasks}
+    \begin{frame}{Original tasks}
+      \begin{itemize}
+        \item Select LLVM transformations
+        \item Improve and add transformations
+        \item Provide debugging information
+      \end{itemize}
+    \end{frame}
 
-%\tiny tiny font
-%\scriptsize very small font
-%\footnotesize quite small font
-%\small small font
-%\normalsize normal font
-%\large large font
-%\Large larger font
-%\LARGE very large font
-%\huge huge
-%\Huge largest
+  \subsection{Extra tasks}
+    \begin{frame}{Extra tasks}
+      \begin{itemize}
+        \item What is MontiumC?
+        \item What is Montium IR?
+        \item Reconfigurable binaries
+      \end{itemize}
+    \end{frame}
+
+    \begin{frame}{What is MontiumC?}
+      \note{Two angles: What do we want, and what do we support.}
+      \begin{itemize}
+      \item Status: Specification is ongoing
+      \item Challenges:
+        \begin{itemize}
+          \item Clang is nontransparent
+          \note[item]{Clang --- A lot of special cases}
+          \item C is complex
+          \note[item]{Complex C --- A lot of corner cases}
+          \item C is limited
+          \note[item]{Limited C --- Need to use annotations, limited amount of types}
+          \item Assembly vs. High level
+          \note[item]{Tradeoffs -- Code size vs compiler complexity, clarity
+          vs control, clarity vs determinism}
+        \end{itemize}
+      \end{itemize}
+    \end{frame}
+
+    \begin{frame}[containsverbatim]
+      \begin{columns}
+        \begin{column}{0.5\textwidth}
+          Low level
+          \begin{Verbatim}[fontsize=\tiny]
+mem input;
+mem output;
+word factor;
+
+void run(void) {
+  factor = from_int(2);
+  input  = alloc_mem(P0M0);
+  output = alloc_mem(P0M1);
+  set_base(input, 0);
+  set_offset(input, 0);
+  set_base(output, -1);
+  set_offset(output, -1);
+
+  next_cycle();
+  word in = read_mem(input);
+  word out = p0o0(imul(ra1(in), rc1(factor)))
+  add_offset(input, 1);
+  add_offset(output, 1);
+  init_loop(LC1, 8);
+  do {
+    write_mem(output, out);
+    in = read_mem(input);
+    out = p0m0(imul(ra1(in), rc1(factor)))
+    add_offset(input, 1);
+    add_offset(output, 1);
+  } while(loop_next(LC1));
+
+  write_mem(output, out);
+\end{Verbatim}
+        \end{column}
+        \begin{column}{0.5\textwidth}
+          High level
+          \begin{Verbatim}[fontsize=\tiny]
+P0M0 int input[10];
+P0M1 int output[10];
+
+void run(void) {
+  for (int i=0; i<10; ++i)
+    output[i] = input[i] * 2;
+}
+          \end{Verbatim}
+        \end{column}
+      \end{columns}
+    \end{frame}
+    \note{} % Empty filler note page
+
+    \begin{frame}{What is Montium IR?}
+      \begin{itemize}
+        \item Status: Initial version
+        \item Challenges:
+        \begin{itemize}
+          \item Backend is a fast moving target
+          \item Corner cases
+          \note[item]{Corner case --- global constants}
+          \item Hardware dependencies
+          \note[item]{Hardware --- Limited number of conditionals possible}
+        \end{itemize}
+      \end{itemize}
+    \end{frame}
+
+    \begin{frame}{Selecting LLVM transformations}
+      \begin{itemize}
+        \item Status: Done
+        \item Challenges:
+        \begin{itemize}
+          \item LLVM Passes assume a lot
+          \note[item]{Assumptions --- Immediates are not free}
+          \item Montium has specific constraints
+          \note[item]{Constraint --- Implicit cycle boundaries and ordering}
+        \end{itemize}
+      \end{itemize}
+    \end{frame}
+
+    \begin{frame}{Improving / adding transformations}
+      \begin{itemize}
+        \item Status: Ongoing
+        \item Challenges:
+        \begin{itemize}
+          \item Staying generic
+          \note[item]{Generic --- LLVM maintained passes are a lot easier}
+          \item New LLVM features
+          \note[item]{Features --- Multiple return values, inlining and
+          annotation attributes}
+        \end{itemize}
+      \end{itemize}
+    \end{frame}
+
+    \begin{frame}{Debugging information}
+      \begin{itemize}
+        \item Status: Not started
+        \item Challenges:
+        \begin{itemize}
+          \item Not much LLVM support yet
+          \note[item]{LLVM support --- New in clang/backend, no support in
+          transformations yet.}
+          \item Transformations
+          \note[item]{Transformations --- Global arguments, argument addition,
+          removal, etc.}
+        \end{itemize}
+      \end{itemize}
+    \end{frame}
+
+    \begin{frame}{Reconfigurable binaries}
+      \begin{itemize}
+        \item Status: Recently started
+        \item Challenges:
+        \begin{itemize}
+          \item Tracking variables
+          \note[item]{Tracking --- Through all steps of the process}
+          \item Loss of optimizations
+          \note[item]{Optimizations --- Hard to encode constraints}
+          \item Mostly a backend problem
+        \end{itemize}
+      \end{itemize}
+    \end{frame}
+
+\section{Work process}
+  \begin{frame}{Working at Recore}
+    \begin{itemize}
+      \item Smart people
+      \item Fast communication
+      \note[item]{Communication --- Mixed teams, easy to "listen in".}
+      \item Constructive brainstorming
+      \note[item]{Brainstorming --- Evaluating different ideas and approaches.}
+    \end{itemize}
+  \end{frame}
+
+  \begin{frame}{Working with LLVM}
+    \begin{itemize}
+      \item Large community
+      \note[item]{Community --- Companies involved, a lot of full time
+      developers.}
+      \item Great support
+      \note[item]{Support --- mailing list, bug reports solved within 1/2 days.}
+      \item Slightly conflicting goals
+      \note[item]{Goals --- LLVM aims mainly at "regular" architectures.}
+    \end{itemize}
+  \end{frame}
+
+\section{Conclusions}
+  \begin{frame}{Conclusions}
+    \begin{itemize}
+      \item LLVM is very suitable
+      \item Defining the problem is harder than solving it
+      \item Three months is short!
+    \end{itemize}
+  \end{frame}
+
+\end{document}