From: Matthijs Kooijman Date: Mon, 7 Dec 2009 20:05:56 +0000 (+0100) Subject: Add a VHDL typing style (and some other fixes). X-Git-Tag: final-thesis~45 X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=commitdiff_plain;h=cf0bb91410c4d6fa5869ecfbb7508c1560173ac2 Add a VHDL typing style (and some other fixes). This was an attempt to get line numbering on the VHDL files, but apparently line numbering is broken in MkIV. Oh well, at least it added a nice box around the VHDL. --- diff --git a/Chapters/Prototype.tex b/Chapters/Prototype.tex index 101594b..7c4d209 100644 --- a/Chapters/Prototype.tex +++ b/Chapters/Prototype.tex @@ -825,9 +825,8 @@ \stopdesc Using this set of types, all types in basic Haskell can be represented. - \todo{Overview of polymorphism with more examples (or move examples - here)}. + here)} \section[sec:prototype:statetype]{State annotations in Haskell} As noted in \in{section}[sec:description:stateann], Cλash needs some @@ -1063,6 +1062,10 @@ (state) variables} and \emph{substate variables}, which will be defined in the rules themselves. + These rules describe everything that can be done with state + variables and state-containing variables. Everything else is + invalid. + \startdesc{State variables can appear as an argument.} \startlambda avg = λi.λspacked. ... @@ -1393,9 +1396,9 @@ \stopbuffer \placeexample[][ex:AccStateVHDL]{\VHDL\ generated for acc from \in{example}[ex:AvgState]} - {\typebuffer[AccStateVHDL]} + {\typebuffervhdl{AccStateVHDL}} \placeexample[][ex:AvgStateVHDL]{\VHDL\ generated for avg from \in{example}[ex:AvgState]} - {\typebuffer[AvgStateVHDL]} + {\typebuffervhdl{AvgStateVHDL}} % \subsection{Initial state} % How to specify the initial state? Cannot be done inside a hardware % function, since the initial state is its own state argument for the first diff --git a/Utils/Lambda.tex b/Utils/Lambda.tex index da38e3a..23b17d1 100644 --- a/Utils/Lambda.tex +++ b/Utils/Lambda.tex @@ -79,6 +79,9 @@ draw b; % Define \hs \definetype[hs][option=HASKELL,style=mono] +% Define \startvhdl \stopvhdl +\definetyping[vhdl][numbering=line,before={\startboxed},after={\stopboxed}] + % Type the given buffer with the lambda typing style. % e.g., \typebufferlam{buffname} \define[1]\typebufferlam{ @@ -105,6 +108,19 @@ draw b; \setuptyping[option=none,style=\tttf,strip=auto] } +% Type the given buffer with the vhdl typing style. +% e.g., \typebuffervhdl{buffname} +\define[1]\typebuffervhdl{ + % We can't use \startvhdl here defined by definetyping[vhdl] above when + % typing buffers, so instead we'll redefine the options here. + \setuptyping[style=mono,strip=auto,numbering=line] + \startboxed + \typebuffer[#1] + \stopboxed + % Reset the typing options + \setuptyping[option=none,style=\tttf,strip=auto] +} + % Display a useMPgraphic in a pretty box \define[1]\boxedgraphic{ \startboxed