Expand the improved notation for state and pipelining sections.
[matthijs/master-project/report.git] / Chapters / Introduction.tex
index 7458e2f..595a074 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
 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
 
   \startMPcode
     % Create objects
+    save a, inp, out;
     newCircle.inp(btex $\overrightarrow{input}$ etex) "framed(false)";
     num := 4;
     for i=1 upto num:
     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(-)";
     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:
   \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 
     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.
 
     % 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)";
    
     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);
     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
     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
 
   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
   
     \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
 
   \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.
 \section{Outline}
 
 In the first chapter, we will sketch the context for this research.