Add vim modelines.
[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: State & pattern matches
50 TODO: Separate compilation / Prelude
51 TODO: Add case binder removal transformation
52 TODO: Remove all "statement"s
53 TODO: User-defined type classes (future work?)
54 TODO: Entity / Architecture / Component vs Function?
55 TODO: Expand on "representable"
56 TODO: Register
57 TODO: Variable vs binder
58 TODO: simplification -> Normalisation?