X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Chapters%2FIntroduction.tex;h=595a07485b195b7052e74db5625a8804da9ec5cf;hp=7458e2f850ade083fae0d0cab4f20f27ff0cd8dd;hb=4a1874f15102d7ad201d9f1f7fa8800bebff4ffc;hpb=ebd7336493f39d3da5a05477c9da04199ad2079e;ds=sidebyside diff --git a/Chapters/Introduction.tex b/Chapters/Introduction.tex index 7458e2f..595a074 100644 --- a/Chapters/Introduction.tex +++ b/Chapters/Introduction.tex @@ -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.