From: Matthijs Kooijman Date: Tue, 8 Dec 2009 17:00:41 +0000 (+0100) Subject: Put CaseInv and PatternInv in the same float. X-Git-Tag: final-thesis~28 X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=9837f3f1ea121b3116a8c3cded0e8846cc363abd;p=matthijs%2Fmaster-project%2Freport.git Put CaseInv and PatternInv in the same float. --- diff --git a/Chapters/HardwareDescription.tex b/Chapters/HardwareDescription.tex index 479dd40..cac03ed 100644 --- a/Chapters/HardwareDescription.tex +++ b/Chapters/HardwareDescription.tex @@ -253,7 +253,13 @@ and3 a b c = and (and a b) c False -> True \stopbuffer - \startuseMPgraphic{CaseInv} + \startbuffer[PatternInv] + inv :: Bool -> Bool + inv True = False + inv False = True + \stopbuffer + + \startuseMPgraphic{Inv} save in, truecmp, falseout, trueout, out, cmp, mux; % I/O ports @@ -287,7 +293,7 @@ and3 a b c = and (and a b) c ncline(mux)(out) "posA(out)"; \stopuseMPgraphic - \startbuffer[CaseInvVHDL] + \startbuffer[InvVHDL] entity invComponent_0 is port (\xzAMo2\ : in boolean; \reszAMuzAMu2\ : out boolean; @@ -303,25 +309,34 @@ and3 a b c = and (and a b) c end architecture structural; \stopbuffer - \placeexample[][ex:CaseInv]{Simple inverter.} - \startcombination[2*1] - {\typebufferhs{CaseInv}}{Haskell description using a Case expression.} - {\boxedgraphic{CaseInv}}{The architecture described by the Haskell description.} - \stopcombination - - \placeexample[][ex:CaseInvVHDL]{\VHDL\ generated for \hs{inv} from - \in{example}[ex:CaseInv] and \in{example}[ex:PatternInv]} - {\typebuffervhdl{CaseInvVHDL}} - - \startbuffer[PatternInv] - inv :: Bool -> Bool - inv True = False - inv False = True - \stopbuffer + \placeexample[][ex:Inv]{Simple inverter.}{ + % Use placesidebyside, since nesting combinations doesn't seem to work + % here. This does break centering, but well... + \placesidebyside + % Use 2*2 instead of 1*2 to insert some extra space (\placesidebyside + % places stuff very close together) + {\startcombination[2*2] + {\typebufferhs{CaseInv}}{Haskell description using a Case expression.} + {}{} + {\typebufferhs{PatternInv}}{Haskell description using Pattern matching expression.} + {}{} + \stopcombination} + % Use a 1*1 combination to add a caption + {\startcombination[1*1] + {\boxedgraphic{Inv}}{The architecture described by the Haskell descriptions.} + \stopcombination} + } - \placeexample[][ex:PatternInv]{Simple inverter using pattern matching. - Describes the same architecture as \in{example}[ex:CaseInv].} - {\typebufferhs{PatternInv}} +% \placeexample[][ex:Inv]{Simple inverter.}{ +% \startcombination[2*2] +% {\typebufferhs{CaseInv}}{Haskell description using a Case expression.} +% {}{} +% {\typebufferhs{PatternInv}}{Haskell description using Pattern matching expression.} +% {\boxedgraphic{Inv}}{The architecture described by the Haskell description.} +% \stopcombination +% } + \placeexample[][ex:InvVHDL]{\VHDL\ generated for \hs{inv} from \in{example}[ex:Inv]} + {\typebuffervhdl{InvVHDL}} \section{Types} Translation of two most basic functional concepts has been