997276de107bf518d6e4d4e561396f5f84398984
[matthijs/master-project/report.git] / Outline
1 Introduction
2 *       Goals
3 *       Outline
4
5 *Context
6 *       Other FHDLs (short, Christiaan has details)
7 *       Advantages of clash / why clash?
8
9 Haskell as hardware
10 *       Simple function -> component interpretation (Model: Structure)
11 *       Choice / Case
12 *       Types
13 *       Partial application
14 *       Model: State
15 *         Explicit vs implicit passing of state (e.g, delay)
16 *         Explicit vs implicit marking
17 *       Interpret: Polymorphism
18 *       Interpret: Higher order
19 *       Recursion
20
21 Prototype
22 *       Choice of Haskell
23 *       VHDL / Verilog / EDIF etc. Why VHDL?
24 *       Stages (-> Core, Normalization, -> VHDL)
25 .       Core - description of the language
26 *         Expressions
27           Typing
28         Implementation issues -- Which?
29         State annotations
30
31 Normalization
32 *       Normal form
33 *       Rules used
34 .       Properties / Proofs (termination, soundness, completeness, determinism)
35
36 Future work
37 *       Boilerplate reduction (State distribution & pipelining)
38 *       Recursion
39 *       Multiple time domains (Events) -- Also, clock line optimization /
40                                        -- write enable
41 *       Multiple cycle descriptions
42 *       Higher order state
43 *       New language
44         Don't care
45
46 TODO: Define user / developer
47 TODO: Comiler vs translator
48 TODO: Hardware description / model vs program
49 TODO: Separate compilation / Prelude
50 TODO: Add case binder removal transformation
51 TODO: User-defined type classes (future work?)
52 TODO: Entity / Architecture / Component vs Function?
53 TODO: Expand on "representable"
54 TODO: Register
55 TODO: Variable vs binder
56 TODO: simplification -> Normalisation?
57 TODO: Use saturated (application) instead of complete (application)?
58 TODO: core => Core
59 TODO: \defref{beta-reduction} -> \defref{β-reduction}
60 TODO: Make interaction links not bold
61 TODO: Say something about implementation differences with transformation specs
62 TODO: Say something about the builtin functions somewhere (ref: christiaan)
63 TODO: Reorder future work.
64 TODO: Future work: Use Cλash
65 TODO: Abstract
66 TODO: Preface
67 TOOD: Footnote font has not lambda