X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Chapters%2FFuture.tex;h=4eb297d7e9c3d2b357942bfec82359017a263699;hp=852d14fe179308df40ffed123e3b5979d674ced9;hb=a4cfdaa1ccacc0dcf9a374bb202b247b8f28dccb;hpb=627861d0a5c3dfeb94b75f0f09c3e45906e46ea0 diff --git a/Chapters/Future.tex b/Chapters/Future.tex index 852d14f..4eb297d 100644 --- a/Chapters/Future.tex +++ b/Chapters/Future.tex @@ -126,7 +126,7 @@ Note that the \hs{FooState} type has changed (so indirectly the type of stateful functions at a time, the final state consists of nested two-tuples. The final \hs{()} in the state originates from the fact that the \hs{return} function has no real state, but is part of the composition. We could have left -out the return statement (and the \hs{outb <-} part) to make \hs{foo}'s return +out the return expression (and the \hs{outb <-} part) to make \hs{foo}'s return value equal to \hs{funcb}'s, but this approach makes it clearer what is happening. @@ -356,7 +356,7 @@ Note that in the above example the \hs{suba} and \hs{subb} functions are is calculated as well, but only saved when the right clock has an up transition. -As you can see, there is some code duplication in the case statement that +As you can see, there is some code duplication in the case expression that selects the right clock. One of the advantages of an explicit approach like this, is that some of this duplication can be extracted away into helper functions. For example, we could imagine a \hs{select_clock} function, which @@ -391,8 +391,8 @@ behaviour is not needed. The main cost of this approach will probably be extra complexity in the compiler: The paths (state) data can take become very non-trivial, and it -is probably hard to properly analyze these paths and produce the intended VHDL -description. +is probably hard to properly analyze these paths and produce the +intended \VHDL description. \section{Multiple cycle descriptions} In the current Cλash prototype, every description is a single-cycle @@ -573,7 +573,7 @@ lightly. This is of course a very intrusive solution. Every type must become member of this typeclass, and there is now some member in every type that is a special don't care value. Guaranteeing the obvious don't care semantics - also becomes harder, since every pattern match or case statement must now + also becomes harder, since every pattern match or case expressions must now also take care of the don't care value (this might actually be an advantage, since it forces designers to specify how to handle don't care for different operations).