X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=Chapters%2FState.tex;fp=Chapters%2FState.tex;h=eab42c4460de6f7744517a78aef5ff2431275fc2;hp=0000000000000000000000000000000000000000;hb=43d50fb84915e330993e9ef04c1c380709b903e0;hpb=32d52cda513c45334ab256c9f42d41ed6938fc48 diff --git a/Chapters/State.tex b/Chapters/State.tex new file mode 100644 index 0000000..eab42c4 --- /dev/null +++ b/Chapters/State.tex @@ -0,0 +1,35 @@ +\chapter{State} + \section{Introduction} + Provide some examples + + \section{Approaches to state} + Explain impact of state (or rather, temporal behaviour) on function signature. + \subsection{Stream arguments and results} + \subsection{Explicit state arguments and results} + \section{Explicit state specification} + Note about semantic correctness of top level state. + + Note about automatic ``down-pushing'' of state. + + Note about explicit state specification as the best solution. + + Note about substates + + Note about conditions on state variables and checking them. + + \section{Explicit state implementation} + Note about ignoring (sub)state components. + + Note about extracting the state value from the return value. + + \section{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 + call (unless you add an explicit, synchronous reset port). + + External init state is natural for simulation. + + External init state works for hardware generation as well. + + Implementation issues: state splitting, linking input to output state, + checking usage constraints on state variables.