Add the atbegshi package, which is not available on Debian.
[matthijs/master-project/final-presentation.git] / introduction.lhs
1 %include talk.fmt
2 \section{Introduction}
3 \subsection{Hardware as we know it}
4 \frame
5 {
6 \frametitle{Hardware}
7 \begin{figure}
8 \centerline{
9 \includegraphics<1>[height=8cm]{figures/cpus/pmiphone_boardtopbig}
10 \includegraphics<2>[height=8cm]{figures/cpus/Intel_core_i7}
11 \includegraphics<3>[height=8cm]{figures/cpus/6600GT_GPU}
12 % \includegraphics<4>[height=8cm]{figures/cpus/Altera_StratixIV}
13 }
14 \label{img:chips}
15 \end{figure}
16 }
17 \note[itemize]
18 {
19 \item Voorbeelden van hardware / chips
20 \item Next sheet: Binnenkant iPhone met veelvoud aan chips
21 \item Next sheet: Laatste Intel CPU
22 \item Next sheet: Nvidia Videochip
23 \item Next sheet: Altera FPGA
24 }
25
26 \frame
27 {
28 \frametitle{Designing Hardware}
29 \centerline{Design with 4 transistors}
30 \begin{columns}[c]
31 \column{0.6\textwidth}
32 \vspace{-0.5cm}
33 \begin{figure}
34 \centerline{\includegraphics[height=6cm, trim = 0 0 0 2.5cm, clip]{figures/schakelingen/NAND}}
35 \end{figure}
36 \column{0.4\textwidth}
37 \begin{figure}
38 \centerline{\includegraphics[height=6cm, trim = 0 4.5cm 0 0, clip]{figures/schakelingen/CMOS_NAND_Layout}}
39 \end{figure}
40 \end{columns}
41 }
42 \note[itemize]
43 {
44 \item Next sheet: Transistor NAND design
45 \item Met de hand ontwerpen
46 \item Basis zijn transistoren
47 \item Links een schematisch ontwerp, Rechts de layout van de metaal lagen
48 }
49
50 \frame
51 {
52 \frametitle{Transistors}
53 \begin{figure}
54 \centerline{
55 \includegraphics<1>[height=8cm]{figures/transistor/hr-1sttransistor}
56 \includegraphics<2>[height=8cm]{figures/transistor/worldsfastes}
57 \includegraphics<3>[height=8cm]{figures/transistor/nehalem_432x315}
58 }
59 \label{img:chips}
60 \end{figure}
61 }
62 \note[itemize]
63 {
64 \item Next sheet: Eerste transistor 60 jaar geleden
65 \item Next sheet: Superkleine transistoren
66 \item Next sheet: 731 miljoen transistoren in deze chip
67 }
68
69 \frame
70 {
71 \frametitle{Designing Hardware}
72 \vspace{0.5cm}
73 \centerline{\Large Drawing won't work for 730 million transistors!}
74 \begin{figure}
75 \centerline{\includegraphics[height=7cm]{figures/transistor/nehalem-core}}
76 \end{figure}
77 }
78
79 \note[itemize]
80 {
81 \item Next sheet: Floorplan 730 million
82 \item Computer details laten uitzoeken.
83 }
84
85 \frame
86 {
87 \frametitle{Designing Hardware}
88 \begin{itemize}
89 \item We design hardware in the same format as software
90 \item We make designs in plain text!
91 \item Software: Programming Languages
92 \item Hardware: Hardware Description Languages
93 \end{itemize}
94 }
95 \note[itemize]
96
97 \item Hardware designs worden gewoon in tekst opgeschreven.
98 \item Maar wel in een special taal voor hardware
99 \item Waar je voor software programmeer talen hebt,
100 \item Heb je voor hardware zogeheette hardwarebeschrijvingstalen
101 }
102
103 \frame
104 {
105 \frametitle{Designing Hardware}
106 \begin{columns}
107 \begin{column}{6cm}
108 \begin{itemize}
109 \item Behavioral Descriptions:
110 \begin{itemize}
111 \item \emph{What} the hardware does
112 \end{itemize}
113 \item Structural Descriptions:
114 \begin{itemize}
115 \item \emph{How} the hardware does it
116 \end{itemize}
117 \end{itemize}
118 \end{column}
119 \begin{column}{4cm}
120 \includegraphics[width=4cm]{figures/Gradient}
121 \end{column}
122 \end{columns}
123 }
124 \note[itemize]
125 {
126 \item Next sheet: Behavioral vs structural
127 \item Wat moet de hardware doen? Wiskundig, algoritmisch.
128 \item Hoe moet de hardware het doen? Compositie, structuur.
129 \item Balans, meestal beetje van beiden.
130 \item Graag zo veel mogelijk behavioral (makkelijker)
131 }
132
133 \frame
134 {
135 \frametitle{Why do we make Hardware?}
136 \begin{itemize}
137 \item We make hardware to solve problems
138 \item Solutions (Algorithms) often described as a set of mathematical equations
139 \item `Holy Grail' Hardware Descriptions:
140 \begin{itemize}
141 \item Input: Set of Mathematical Equations
142 \item Output: Hardware that is Provably correct, Fast , Small, Cheap to manufacture, and has a low Energy Usage
143 \end{itemize}
144 \end{itemize}
145 }
146 \note[itemize]
147 {
148 \item Hardware lost problemen op (videodecodering, telefoongesprekken versturen, etc.)
149 \item Oplossingen zijn beschreven vaak wiskundige formules
150 \item Heilige graal -$>$ alles automatisch
151 \item Onbereikbaar
152 \item Hebben we geen wiskundige programmeertalen?
153 }
154
155 \frame
156 {
157 \frametitle{Functional Languages}
158 \begin{itemize}
159 \item Functionele talen liggen dicht bij de wiskunde
160 \item Calculate $2 * 3 + 3 * 4$
161 \begin{itemize}
162 \item First calculate $2* 3$ ?
163 \item Or start with $3 * 4$ ?
164 \end{itemize}
165 \end{itemize}
166 }
167
168 \note[itemize]
169 {
170 \item Functionele talen eisen (vaak) geen volgorde van uitrekenen
171 \item Hardware ook niet
172 \item Lijkt goed overeen te komen
173 }
174
175 % \frame
176 % {
177 % \frametitle{Mealy Machine}
178 % \begin{figure}
179 % \centerline{\includegraphics<1>[width=6.25cm]{mealymachine2}
180 % \includegraphics<2>[width=6.25cm]{mealymachine2-func-red}
181 % \includegraphics<3>[width=6.25cm]{mealymachine2-state-red}}
182 % \label{img:mealymachine}
183 % \end{figure}
184 % \begin{beamercolorbox}[sep=-2.5ex,rounded=true,shadow=true,vmode]{codebox}
185 % \begin{code}
186 % run {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-} [] = []
187 % run {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-} (i:inputs) = o:outputs
188 %   where
189 %     ({-"{\color<3>[rgb]{1,0,0}"-}state'{-"}"-}, o)  =   {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} i {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-}
190 %     outputs                                         =   run {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} {-"{\color<3>[rgb]{1,0,0}"-}state'{-"}"-} inputs
191 % \end{code}
192 % \end{beamercolorbox}
193 % }
194 % \note[itemize]{
195 % \item A Mealy machine bases its output on the current state and the input
196 % \item State is part of the function signature
197 % \item Both the current state, and the updated State
198 % \item The run function simulates a mealy machine for the provided number of inputs
199 % }
200
201 % \frame
202 % {
203 % \frametitle{Haskell Description}
204 % \begin{figure}
205 % \centerline{\includegraphics[width=6.25cm]{mealymachine2-func-red}}
206 % \end{figure}
207 % \begin{beamercolorbox}[sep=-2.5ex,rounded=true,shadow=true,vmode]{codebox}
208 % \begin{code}
209 % func :: 
210 %   InputSignal ->
211 %   State ->
212 %   (State, OutputSignal)
213 % \end{code}
214 % \end{beamercolorbox}
215 % }
216 % \note[itemize]{
217 % \item In \clash{} you describe the logic part of the mealy machine
218 % \item The state in the signature is turned into memory elements when translating to VHDL
219 % }