litedram: Add an L2 cache with store queue
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 27 May 2020 01:06:51 +0000 (11:06 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 5 Jun 2020 00:33:27 +0000 (10:33 +1000)
commita3857aac940437c18a46d518929ea7e78ac7e61e
treea254f982723dd50b1e51010dbb41f4de279f2c8f
parentbf1b98b95813b0ef89f5857c3ab05c9ad79f8f34
litedram: Add an L2 cache with store queue

This adds a cache between the wishbone and litedram with the following
features (at this point, it's still evolving)

  - 128 bytes line width in order to have a reasonable amount of
litedram pipelining on the 128-bit wide data port.

  - Configurable geometry otherwise

  - Stores are acked immediately on wishbone whether hit or miss
(minus a 2 cycles delay if there's a previous load response in the
way) and sent to LiteDRAM via 8 entries (configurable) store queue

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
13 files changed:
Makefile
litedram/extras/wave.gtkw [new file with mode: 0644]
litedram/extras/wave.opt [new file with mode: 0644]
litedram/extras/wrapper-mw-init.vhdl
litedram/gen-src/sdram_init/include/system.h
litedram/generated/arty/litedram_core.init
litedram/generated/arty/litedram_core.v
litedram/generated/nexys-video/litedram_core.init
litedram/generated/nexys-video/litedram_core.v
litedram/generated/sim/litedram_core.init
litedram/generated/sim/litedram_core.v
microwatt.core
sync_fifo.vhdl [new file with mode: 0644]