Todo List
Features
- [X] Make
current_state
value accessible.
- [X] Call / return ~~using the stack~~ using generic variables.
- [X] Support for include files / packages/ modules.
- [ ] Multiple instantiations of included files.
- [X] Make it possible to access state (block) encodings directly for better
call / return support.
- [ ] Inlineable blocks rather than callable blocks.
Parsing
- [ ] Proper parsing of instruction statements, rather than simply expecting
correct Verilog syntax as at the moment.
Translation
- [X] Detect multiple writes to the same variable in a single state.
- [X] Detect reading from and writing to the same variable in a single state.
- [X] Infrastructure to break up blocks into sequences of atomic operations.
- [ ] Marking of parallelisable statements
Optimisation
- [X] Infrastructure to coalesce atomised blocks based on tunable parameters.
- [ ] Be able to specify a cost for each operator, and coalesce blocks until
they contain the maximum allowable cost per block (per cycle)
- [ ] Detecting and unrolling loops
Examples
- [ ] Stack example
- [X] Finish the AXI example
- [X] Mini RISCV registers and instructions. RV32UI Only.