Add / update TODOs.
[matthijs/master-project/report.git] / Chapters / Introduction.tex
index 7458e2f850ade083fae0d0cab4f20f27ff0cd8dd..595a07485b195b7052e74db5625a8804da9ec5cf 100644 (file)
@@ -1,4 +1,4 @@
-\chapter{Introduction}
+\chapter[chap:introduction]{Introduction}
 This thesis describes the result and process of my work during my
 Master's assignment. In these pages, I will try to introduce the world
 of hardware descriptions, the world of functional languages and
@@ -26,6 +26,7 @@ andword = map not
 
   \startMPcode
     % Create objects
+    save a, inp, out;
     newCircle.inp(btex $\overrightarrow{input}$ etex) "framed(false)";
     num := 4;
     for i=1 upto num:
@@ -55,11 +56,6 @@ andword = map not
     drawObj(out);
     % Draw a dotted line between the middle operations
     ncline(a2)(a3) "linestyle(dashed withdots)", "arrows(-)";
-
-    % Clear everything
-    clearObj a;
-    clearObj inp;
-    clearObj out;
   \stopMPcode
 
   Slightly more complicated is the following incremental summation of values:
@@ -92,7 +88,7 @@ sum' (x:xs) acc = acc' : (sum' xs acc')
     for i=1 upto num:
       newCircle.a[i](btex + etex);
     endfor 
-    newCircle.out(btex $output$ etex) "framed(false)";
+    newCircle.out(btex $\overrightarrow{output}$ etex) "framed(false)";
 
     % Center the input and output ports vertically, and put them left and right
     % resp.
@@ -140,7 +136,7 @@ sum' (x:xs) acc = acc' : (sum' xs acc')
     newCircle.a(btex + etex);
     newCircle.out(btex $output$ etex) "framed(false)";
    
-    % Punt inp, a and out in one horizontal line, with reg above a
+    % Put inp, a and out in one horizontal line, with reg above a
     reg.c-a.c=(0cm, 2cm);
     a.c-inp.c=(3cm, 0cm);
     out.c-a.c=(3cm, 0cm);
@@ -181,6 +177,7 @@ sum' (x:xs) acc = acc' : (sum' xs acc')
     How can we describe the structural properties of a hardware design, using
     a functional language?
   \stopquotation
+  \setupquotation[style=normal,spacebefore=]
 
   We can further split this into subquestions from a hardware perspective:
   \startitemize
@@ -188,13 +185,20 @@ sum' (x:xs) acc = acc' : (sum' xs acc')
     \item How can we describe (hierarchical) structure in a design?
   \stopitemize
   
-  functional perspective:
+  And subquestions from a functional perspective:
   \startitemize
     \item How to interpret recursion in descriptions?
     \item How to interpret polymorphism?
     \item How to interpret higher order in descriptions?
   \stopitemize
 
+  In addition to looking at designing a hardware description language, we
+  will also implement a prototype to test drive our ideas. This prototype will
+  translate hardware descriptions written in the Haskell functional language
+  to simple (netlist-like) hardware descriptions in the \VHDL language. The
+  reasons for choosing these languages are detailed in section
+  \in{}[sec:prototype:input] and \in{}[sec:prototype:output] respectively.
+
 \section{Outline}
 
 In the first chapter, we will sketch the context for this research.