Update piece about state to show relation between the run function and the statefull...
authorChristiaan Baaij <baaijcpr@wlan228123.mobiel.utwente.nl>
Tue, 2 Mar 2010 12:03:48 +0000 (13:03 +0100)
committerChristiaan Baaij <baaijcpr@wlan228123.mobiel.utwente.nl>
Tue, 2 Mar 2010 12:03:48 +0000 (13:03 +0100)
clash.bib
cλash.lhs

index f3aeaa5fd49035bf74259dcbc94d5d2d96f389ba..5bec9134a33a3a08bd425c90fc44a42b8b97752d 100644 (file)
--- a/clash.bib
+++ b/clash.bib
   timestamp = {2010.02.24}
 }
 
   timestamp = {2010.02.24}
 }
 
+@INPROCEEDINGS{Sulzmann2007,
+  author = {Sulzmann, Martin and Chakravarty, Manuel M. T. and Jones, Simon Peyton
+       and Donnelly, Kevin},
+  title = {{System F with Type Equality Coercions}},
+  booktitle = {{TLDI '07: Proceedings of the 2007 ACM SIGPLAN international workshop
+       on Types in languages design and implementation, Nice, France}},
+  year = {2007},
+  pages = {53--66},
+  address = {{New York, NY, USA}},
+  month = {January},
+  publisher = {{ACM}},
+  doi = {http://doi.acm.org/10.1145/1190315.1190324},
+  isbn = {1-59593-393-X},
+  location = {Nice, Nice, France},
+  owner = {darchon},
+  timestamp = {2009.10.23}
+}
+
 @ELECTRONIC{ghc,
   author = {{The GHC Team}},
   title = {{The Glasgow Haskell Compiler}},
 @ELECTRONIC{ghc,
   author = {{The GHC Team}},
   title = {{The Glasgow Haskell Compiler}},
index 4c7e6806e48153b024dd3ce899584bbc701be26c..85709be26568b10604138c111cd659cca186f2b9 100644 (file)
@@ -950,7 +950,7 @@ circuit~\cite{reductioncircuit} for floating point numbers.
     expression, that adds one to every element of a vector:
 
     \begin{code}
     expression, that adds one to every element of a vector:
 
     \begin{code}
-    map ((+) 1) xs
+    map (+ 1) xs
     \end{code}
 
     Here, the expression \hs{(+) 1} is the partial application of the
     \end{code}
 
     Here, the expression \hs{(+) 1} is the partial application of the
@@ -1041,8 +1041,10 @@ circuit~\cite{reductioncircuit} for floating point numbers.
     first input value, \hs{i}. The result is the first output value, \hs{o}, 
     and the updated state \hs{s'}. The next iteration of the \hs{run} function 
     is then called with the updated state, \hs{s'}, and the rest of the 
     first input value, \hs{i}. The result is the first output value, \hs{o}, 
     and the updated state \hs{s'}. The next iteration of the \hs{run} function 
     is then called with the updated state, \hs{s'}, and the rest of the 
-    inputs, \hs{inps}. Each value in the input list corresponds to exactly one 
-    cycle of the (implicit) clock.
+    inputs, \hs{inps}. It is assumed that there is one input per clock cycle.
+    Also note how the order of the input, output, and state in the \hs{run} 
+    function corresponds with the order of the input, output and state of the 
+    \hs{macS} function described earlier.
     
     As both the \hs{run} function, the hardware description, and the test 
     inputs are plain Haskell, the complete simulation can be compiled to an 
     
     As both the \hs{run} function, the hardware description, and the test 
     inputs are plain Haskell, the complete simulation can be compiled to an 
@@ -1052,7 +1054,7 @@ circuit~\cite{reductioncircuit} for floating point numbers.
     simulation, where the executable binary has an additional simulation speed 
     bonus in case there is a large set of test inputs.
     
     simulation, where the executable binary has an additional simulation speed 
     bonus in case there is a large set of test inputs.
     
-\section{\CLaSH\ prototype}
+\section{\CLaSH\ compiler}
 
 The \CLaSH\ language as presented above can be translated to \VHDL\ using
 the prototype \CLaSH\ compiler. This compiler allows experimentation with
 
 The \CLaSH\ language as presented above can be translated to \VHDL\ using
 the prototype \CLaSH\ compiler. This compiler allows experimentation with
@@ -1069,7 +1071,7 @@ The prototype heavily uses \GHC, the Glasgow Haskell Compiler.
 \Cref{img:compilerpipeline} shows the \CLaSH\ compiler pipeline. As you can 
 see, the front-end is completely reused from \GHC, which allows the \CLaSH\ 
 prototype to support most of the Haskell Language. The \GHC\ front-end 
 \Cref{img:compilerpipeline} shows the \CLaSH\ compiler pipeline. As you can 
 see, the front-end is completely reused from \GHC, which allows the \CLaSH\ 
 prototype to support most of the Haskell Language. The \GHC\ front-end 
-produces the program in the \emph{Core} format, which is a very small, 
+produces the program in the \emph{Core}~\cite{Sulzmann2007} format, which is a very small, 
 functional, typed language which is relatively easy to process.
 
 The second step in the compilation process is \emph{normalization}. This
 functional, typed language which is relatively easy to process.
 
 The second step in the compilation process is \emph{normalization}. This