summaryrefslogtreecommitdiff
path: root/PLAN
diff options
context:
space:
mode:
authorJulian Blake Kongslie2022-07-24 14:59:03 -0700
committerJulian Blake Kongslie2022-07-24 14:59:03 -0700
commit1aeb760d093189486efbf5adf3292881eda94eb0 (patch)
tree2cdd822ad198816875eb70a5783f59ee61908982 /PLAN
parentRename memory message types for more clarity. (diff)
downloadmultipdp8-main.tar.xz
Writeback cache using explicit altsyncram instead of inferred memory.HEADmain
Diffstat (limited to 'PLAN')
-rw-r--r--PLAN24
1 files changed, 24 insertions, 0 deletions
diff --git a/PLAN b/PLAN
index e083e8e..60adf5f 100644
--- a/PLAN
+++ b/PLAN
@@ -1,4 +1,28 @@
10. writeback cache 10. writeback cache
2 [✔️] Cache dirty bits
3 [✔️] Cache evicting dirty data on fills that would replace
4 [✔️] Cache not immediately forwarding writes
5 [✔️] Fix mem_cache to actually instantiate memory correctly
6 [✔️] Run Quartus in Windows to generate a Verilog template for manual instantiation of RAM blocks
7 [X] Try to use asynchronous clears for reset instead of occupying a port for SETS cycles NOPE
8 [✔️] Need at least one port capable of read-before-write
9 [✔️] Maybe don't need a second port if the first port can make write optional
10 [✔️] We might need to split our accesses across two cycles
11 [X] If so, can we infer the correct logic without explicit instantiation of the megafunction? NOPE
12 [X] Can we do asynchronous clear without explicit instantiation of the megafunction? NOPE
13 [✔️] Copy from said template into mem_cache.sv instead of trying to use inference
14 ---
15 [ ] Arbiter sending snoops to caches in response to CLI writes
16 [ ] Cache updating itself to clean state for write snoops
17 ---
18 [ ] Arbiter sending snoops to caches in response to CLI reads
19 [ ] Arbiter waiting for snoop responses from caches for CLI reads
20 [ ] Arbiter sending correct data for CLI reads (snoop responses in preference over RAM response)
21 [ ] Cache sending snoop responses for read snoops
22 ---
23 [ ] Cache forwarding snoops upstream
24 [ ] Core updating itself for write snoops (no-op)
25 [ ] Core sending snoop responses for read snoops (always no data)
21. pipelining that works with SMC / start working on minhdl version of the core 261. pipelining that works with SMC / start working on minhdl version of the core
32. write an SPI or I2C master on the FPGA to sample analog inputs 272. write an SPI or I2C master on the FPGA to sample analog inputs
43. support wider-than-single-word cache lines 283. support wider-than-single-word cache lines