[Libre-soc-dev] hunting around to connect up the dcache / mmu

Luke Kenneth Casson Leighton lkcl at lkcl.net
Fri Apr 30 00:48:40 BST 2021


On Thursday, April 29, 2021, Luke Kenneth Casson Leighton <lkcl at lkcl.net>
wrote:

>
> https://libre-soc.org/3d_gpu/mmu_dcache_links.jpg
>
> for the Minerva case, ConfigMemoryPortInterface actually establishes
> (instantiates) the entire actual instance.  it *should* be
> instantiating Loadtore1 (because that is derived from
> PortInterfaceBase).


so.  what i've done is move dcache instantiation into Loadstore1.

 now, Loadstore1, being derived from PortInterfaceBase, can go into
ConfigMemoryPortInterface, and a bit more trickery, Loadstore1 can return a
wishbone interface.

then, the MMU FSM can be set up *without* itself instantiating Loadstore1,
it can be added to it after ConfigMemoryPortInterface is created.

and that is here, in TstL0CacheBuffer:
https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/experiment/l0_cache.py;h=e4f02513f8449c464f43acf63d47bc5887582262;hb=HEAD#l314

which is instantiated here:
https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/simple/core.py;h=f4cf959de60f9605e1f3175b1ba3a29e20c262d8;hb=HEAD#l82

HA! and that's also (next line) where the FUs incl. MMU are instantiated.

excellent.

so, a function can be added to MMU, "set_loadstore", which is called in
core.

l.




-- 
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68


More information about the Libre-soc-dev mailing list