2 * Once a sufficient testing structure is in place, start replacing the
3 pipeline with a high performance one. [DONE]
4 * Fix the arrays that can't be inferred as RAM. Notably the register
6 * Restart the pipeline instead of stalling [DONE]
7 * Forward results instead of restarting [DONE]
8 * Move configuration parameters (such as cache size, etc) to a global
9 configuration file. [DONE]
10 * Wizzard generated RAM blocks (to know exactly what I get) [DONE]
11 * Extend the forwarding in DE and use dual-port memory w/o bypassing
13 * Handle uncached loads (uncached stores works as a side effect of the
16 1. Move the x_res mux up to just after the data cache out and make
17 sure that x_res falls through the shifter network when not
20 2. Add another memory event (uncached_load), make sure it doesn't
21 accidentally writes to the data cache array or tags.
23 3. Make uncached loads kill the pipe and set up the uncached_load
26 4. When the data for uncached_load comes in, thread it through the
27 shifter network and restart the next instruction.
29 5. Test by making all loads uncachable.
31 * Restart on load-use hazards. [DONE]
32 * Restart branches whose delay slots gets delayed (ie. due to cache
35 * Fix the current strange behavior of tinymon. Fault points to a
36 serial port problem. Prefer a software workaround, as the
37 peripherals are going to get an overhaul later anyway. [DONE - it
38 was two actual bugs in the pipeline]
39 * Found a new home: git://repo.or.cz/yari.git
44 * Matching IO behaviour like I do now is unsustainable. As a general
45 principle, while cosimulating, higher level models could take the IO
46 events from the lower levels (which can ultimately be the running