-\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
\startMPcode
% Create objects
+ save a, inp, out;
newCircle.inp(btex $\overrightarrow{input}$ etex) "framed(false)";
num := 4;
for i=1 upto num:
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:
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.
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);
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
\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.