5fcaa0c1dafd5a6aaac1fd3bedab2c8c1d0aa98c
[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{itemize}
107 \item Algorithmic / Behavioral Descriptions:
108 \begin{itemize}
109 \item Describe \emph{what} the Hardware does
110 \item Relation between input and output
111 \end{itemize}
112 \item Structural Descriptions:
113 \begin{itemize}
114 \item Describe \emph{how} the Hardware does it
115 \item Hierarchal composition
116 \end{itemize}
117 \end{itemize}
118 }
119 \note[itemize]
120 {
121 \item Algoritmische beschrijvingen beschrijven wat de Hardware moet doen, niet hoe die dat doet
122 \item Structurele beschrijvingen beschrijven hoe de Hardware dingen doet
123 \item In Structurele beschrijvingen worden componenten opgebouwd uit simpele schakelingen en/of andere componenten
124 \item Graag willen wij algorithmische beschrijvingen maken, en de structurele beschrijving hier automatisch van afleiden
125 }
126
127 \frame
128 {
129 \frametitle{Why do we make Hardware?}
130 \begin{itemize}
131 \item We make hardware to solve problems
132 \item Solutions (Algorithms) often described as a set of mathematical equations
133 \item `Holy Grail' Hardware Descriptions:
134 \begin{itemize}
135 \item Input: Set of Mathematical Equations
136 \item Output: Hardware that is Provably correct, Fast , Small, Cheap to manufacture, and has a low Energy Usage
137 \end{itemize}
138 \end{itemize}
139 }
140 \note[itemize]
141 {
142 \item We maken hardware omdat we, soms vaag gedefineerde, problemen willen oplossen.
143 \item Oplossingen, vooral in de signaalverwerking (video, muziek, TV, etc.), zijn beschreven als een verzameling van wiskundige formules
144 \item Heilige graal -$>$ alles automatisch
145 \item Onbereikbaar
146 \item Hebben we geen wiskundige programmeertalen?
147 }
148
149 \frame
150 {
151 \frametitle{Functional Languages}
152 \begin{itemize}
153 \item Functionele talen liggen dicht bij de wiskunde
154 \item Calculate $2 * 3 + 3 * 4$
155 \begin{itemize}
156 \item First calculate $2* 3$ ?
157 \item Or start with $3 * 4$ ?
158 \end{itemize}
159 \end{itemize}
160 }
161
162 \note[itemize]
163 {
164 \item Functionele talen eisen (vaak) geen volgorde van uitrekenen
165 \item Hardware ook niet
166 \item Lijkt goed overeen te komen
167 }
168
169 % \frame
170 % {
171 % \frametitle{Mealy Machine}
172 % \begin{figure}
173 % \centerline{\includegraphics<1>[width=6.25cm]{mealymachine2}
174 % \includegraphics<2>[width=6.25cm]{mealymachine2-func-red}
175 % \includegraphics<3>[width=6.25cm]{mealymachine2-state-red}}
176 % \label{img:mealymachine}
177 % \end{figure}
178 % \begin{beamercolorbox}[sep=-2.5ex,rounded=true,shadow=true,vmode]{codebox}
179 % \begin{code}
180 % run {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-} [] = []
181 % run {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-} (i:inputs) = o:outputs
182 %   where
183 %     ({-"{\color<3>[rgb]{1,0,0}"-}state'{-"}"-}, o)  =   {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} i {-"{\color<3>[rgb]{1,0,0}"-}state{-"}"-}
184 %     outputs                                         =   run {-"{\color<2>[rgb]{1,0,0}"-}func{-"}"-} {-"{\color<3>[rgb]{1,0,0}"-}state'{-"}"-} inputs
185 % \end{code}
186 % \end{beamercolorbox}
187 % }
188 % \note[itemize]{
189 % \item A Mealy machine bases its output on the current state and the input
190 % \item State is part of the function signature
191 % \item Both the current state, and the updated State
192 % \item The run function simulates a mealy machine for the provided number of inputs
193 % }
194
195 % \frame
196 % {
197 % \frametitle{Haskell Description}
198 % \begin{figure}
199 % \centerline{\includegraphics[width=6.25cm]{mealymachine2-func-red}}
200 % \end{figure}
201 % \begin{beamercolorbox}[sep=-2.5ex,rounded=true,shadow=true,vmode]{codebox}
202 % \begin{code}
203 % func :: 
204 %   InputSignal ->
205 %   State ->
206 %   (State, OutputSignal)
207 % \end{code}
208 % \end{beamercolorbox}
209 % }
210 % \note[itemize]{
211 % \item In \clash{} you describe the logic part of the mealy machine
212 % \item The state in the signature is turned into memory elements when translating to VHDL
213 % }