Add some initial structure for the final report.
[matthijs/master-project/report.git] / Chapters / State.tex
diff --git a/Chapters/State.tex b/Chapters/State.tex
new file mode 100644 (file)
index 0000000..eab42c4
--- /dev/null
@@ -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.