Updating the README
[MUSB.git] / musb.todo
blobcd442d8fad8443e5a7e6c5f7310a5c6292d3bbca
1 MUSB:
2     **WARNING**: Internal use.
4     Release 1:
5     Task list for **Release 1**  @created(15-05-05 22:23)
6         MIPS core:
7             Nothing to be done.
8         SoC:
9             Nothing to be done.
10         Tesbenchs:
11             Nothing to be done.
12         Software and library:
13             Nothing to be done.
14         Documentation:
15             Nothing to be done.
17 --- ✄ -----------------------
18     Release 1.1:
19     Tast list for **Release 1.1** @created(15-05-21 23:14)
20         MIPS core:
21             [ ] Optimization (reduce area).
22         SoC:
23             [ ] GPIO: separar el manejo del puerto del manejo de los pines. Crear un IO_cell (tomado de **OpenMSP430**).
24                 For easy simulation.
25             [ ] UART/FIFO/RAM: Use async ram (distibuted). Check performance (up to 256 bytes buffer. Maybe 128).
26         Synthesys:
27             [ ] Populate UCF file: use all pins and set unused to GND (using iobuf).
28         Tesbenchs:
29             [ ] Update make help.
30             [ ] Basic wave settings.
31             [ ] Check if the test is OK.
32             [ ] Make C tests. Buscar forma de probar que el test ejecutó en forma correcta.
33         Software and library:
34             [ ] Make library.
35         Utils:
36             [ ] Make loader: python + Tk
37         Documentation:
38             [ ] Update READMEs.
39             [ ] Update manual.
41 --- ✄ -----------------------
42     Release 2:
43     Task list for **Release 2** @created(15-05-11 21:34)
44         MIPS core:
45             [ ] Wishbone bus.
46             [ ] User space vs Kernel space. (Address translation).
47         SoC:
48             [ ] Wishbone bus.
49             [ ] Define external memories.
50                 Search for simulation models.
51             [ ] External memory controller for the Spartan 3 (Digilent). @low
52                 SRAM controller.
53             [ ] External memory controller for the Spartan 6 (XuLA 2). @low
54                 SDRAM controller.
55             [ ] Flash controller. @low
56         Tesbenchs:
57             [ ] Implement a debug monitor (Hardware).
58             [ ] Verilog VPI: GDB + Icarus Verilog.
59                 Check **OpenRISC**
60         Software and library:
61             Nothing to be done.
62         Documentation:
63             [ ] Update READMEs.
64             [ ] Update manual.
65             [ ] Write wiki (export manual).
66 ___________________
67 Archive:
68  [x] Create board for the Spartan 3E board. @done (15-05-31 18:25) @project(Release 1.1 / SoC)
69   Depends previous task.
70  [x] Update testbench. @done (15-05-31 18:25) @project(Release 1.1 / Tesbenchs)
71  [x] New IDE: Eclipse plugin?. Intellij based IDE? Intellij Plugin? Makefile FTW? @done (15-05-29 13:51) @project(Release 2 / Software and library)
72  [x] Implement a debug monitor (testbench). @done (15-05-29 13:51) @project(Release 2 / Tesbenchs)
73   Check **OpenMSP430** y el **OpenRISC**.
74  [x] Create makefile (Generic. Reuse/Copy to each board folder). @done (15-05-28 10:43) @project(Release 1.1 / Synthesys)
75  [x] Parámetros de simulación por consola (MAX_SIMULATION_TIME, por ejemplo): Verilog. @done (15-05-27 16:42) @project(Release 1.1 / Tesbenchs)
76   Check **OpenRISC**
77  [x] Separate the reference model from the SoC implementation. Separate for each different board, do not share code. @done (15-05-26 20:22) @project(Release 1.1 / SoC)
78   Folder for the XuLA 2, Spartan 3 & Spartan 3E boards. Different clock generators (the only thing that is board dependent). Check ORPSoC implementation (reference).
79  [x] Write software utils in C, python or Tcl. @done (15-05-26 20:21) @project(Release 1.1 / Utils)
80  [-] Implementar scripts en python para automatización del sistema de simulación (alternativa a los makefiles/Tcl). @cancelled (15-05-26 20:21) @project(Release 1.1 / Tesbenchs)
81   Check **OpenMSP430** (Tcl scripts).
82  [x] Remove the MIPS IDE. @done (15-05-26 20:20) @project(Release 1.1 / Software and library)
83  [-] Move **asm** tests to the Software folder. @cancelled (15-05-26 20:20) @project(Release 1.1 / Software and library)
84  [-] La definición de periféricos debe ser configurable según punto anterior. @cancelled (15-05-21 23:10) @project(Release 2 (o simplemente post 1) / Software and library)
85   System configuration? Handle with scripts? automatization? Wizard?
86  [-] Implementar opción en el IDE para realizar la configuración de la "librería" según el diseño del SoC (es decir, implementar una ventana para la configuración de los periféricos mapeados a memoria). @cancelled (15-05-21 23:10) @project(Release 2 (o simplemente post 1) / Software and library)
87   Include in the makefile the toolchain's include path?
88  [x] Write manual. @done (15-05-21 23:08) @project(MUSB / Release 1 / Documentation)
89  [x] Internal documentation. @done (15-05-20 09:00) @project(MUSB / Release 1 / Documentation)
90   Describe each module inside the manual.
91  [x] User manual index. @done (15-05-14 22:20) @project(MUSB / Release 1 / Documentation)
92  [x] Connexion diagram. @done (15-05-13 09:11) @project(MUSB / Release 1 / Documentation)
93   Pipeline.
94  [x] Check testbench. @done (15-05-12 00:06) @project(MUSB / Tesbenchs)
95   Improve structure
96  [-] Las direcciones de los perifericos, y las máscaras deben ser habilitadas para configurar desde el tope (evitar tener que reconfigurar el SoC internamente, salvo que sea necesario modificar las conexiones). @cancelled (15-05-11 21:33)
97  [-] Averiguar posibilidad de realizar la simulación en **Icarus Verilog** usando una interfaz gráfica a la que se pueda cambiar los pasos (continue, pause, step). @cancelled (15-05-11 21:33)
98  [x] Wiki en markdown. Submodulo del repo principal. Castellano? Inglés? @done (15-05-10 13:51)
99  [x] Manual en texinfo. Crear makefile (template). Castellano? Inglés? Ambos? @done (15-05-10 13:51)
100  [x] Verificar funcionamiento de las instrucciones MOVN y MOVZ. @done (15-05-09 23:19)
101  [x] Verificar funcionamiento de las instrucciones CLO y CLZ. @done (15-05-09 23:19)
102  [x] Documentar en **Markdown**, **texinfo**? Si es en markdown, exportar a la wiki de github?. -> Actualizar instrucciones en los **README.md**. @done (15-05-09 23:19)
103  [x] Check: IFID mantiene el valor del PC en caso de un salto (BSD). No debería, ya que con saber que el error es en el BDS, en el código de excepćión debería hacer PC - 4 para compensar el problema. @done (15-05-09 23:19)
104  [x] Logo del proyecto. @done (15-05-09 17:18)
105  [x] verificar funcionamiento de las instrucciones LL & SC. **Bug** @critical @done (15-05-09 15:11)
106  [x] Bug: stall para saltos incondicionales. Esto no debe ser. WTF was this? @critical @done (15-05-08 00:22)
107  [x] Bug: en caso de bus error, y stall en el pipeline, (IF error), el error se pierde. @critical @done (15-05-08 00:21)
108  [x] Bug: salto dependiente de un valor de memoria. El hazard unit tiene error en la determinación. @done (15-05-07 23:22)
109  [-] Arbiter/Mux: implementar versión con registros? (1-clock delay). Ambos? Arbiter? Mux? @cancelled (15-05-07 13:36)
110  [x] Eliminar el aliasing de dirección en los perifericos. Implementar con la mascara de verificación. Posibles problemas: zonas de memoria no implementadas que aún generen aliasing. @done (15-05-07 13:35)
111  [x] Revisar la implementación del **watchdog**. Funciona. El problema de aliasing no afecta al watchdog, pues esto debe ser corrgido usando las mascaras de verificación de direcciones. @done (15-05-07 10:36)
112  [x] Revisar implementación del bus error. @done (15-05-07 00:35)
113  [x] Error al accesar zona de memoria no mapeada: re-escribe memoria @critical @done (15-05-07 00:35)
114  [x] Revisar nomenclatura de nombres. @high @done (15-05-06 21:58)
115  [x] Verificación del generador de reset. @done (15-05-06 21:43)
116  [x] Remove old bus (arbiter + crossbar) @done (15-05-06 20:59)
117  [x] Estudiar la posibilidad de renombrar el SoC: MUSBSoC vs MUSoC. @done (15-05-06 20:51)
118  [x] Revisar los parámetros utilizados para la configuración del core. @done (15-05-06 16:00)
119  [x] Revisar documentación de cada módulo. @done (15-05-06 15:39)
120  [x] Implementar nomenclatura de nombres. @high @done (15-05-06 15:37)
121  [x] Crear esqueleto de documentación. @done (15-05-06 00:13)