allo again paul,<div><br></div><div>for reference here is dcache.py:</div><div><a href="https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/experiment/dcache.py;hb=HEAD">https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/experiment/dcache.py;hb=HEAD</a><br></div><div><br></div><div>pretty much near-identical to dcache.vhdl, one major difference: the bottom 3 LSBs of the address are *not* copied onto the WB bus (as previously discussed, a 32 bit address @ 64 bits wide data must put *29* MSBs onto the WB Bus, *not* the full 32)</div><div><br></div><div>appreciated the input yesterday about dcache.vhdl, the 3 cycles:</div><div><br></div><div>* AGEN (address generation)</div><div>* ST data drop</div><div>* actual fetch.</div><div><br></div><div>so this is where it gets interesting: we also have an AGEN Phase in Libre-SOC, but because the intent is to be an Out-of-Order design plus also to allow single regfile read port thru triple read ports as a config option, we have *no idea* if the two RA / RB regs for AGEN will come before *or after* the RS from a STORE operation!</div><div><br></div><div>therefore i had to stall the introduction of the AGEN assertion into dcache.py until the ST reg has been read (many cycles later, at present).</div><div><br></div><div>c&#39;est la vie :)</div><div><br></div><div>my question to you is about the cache sram reading (not writing)</div><div><br></div><div><a href="https://github.com/antonblanchard/microwatt/blob/master/cache_ram.vhdl#L70">https://github.com/antonblanchard/microwatt/blob/master/cache_ram.vhdl#L70</a><br></div><div><br></div><div>here you can see ADR_BUF=true, and it is set in dcache.py</div><div><br></div><div>a normal SRAM you would expect a 1 clock cycle delay, all good.  except here, an *extra* cycle of delay is added.  after assertion of the read it is *two* cycles before the data appears on the read data output.</div><div><br></div><div>i have no idea why, and i&#39;m not skilled enough at VHDL to work out how to remove it.</div><div><br></div><div>any chance of making that a config-selectable option in dcache.vhdl?  i can then see how that was done and make corresponding edits.</div><div><br></div><div>it is not a high priority, the code is &quot;functional&quot; as-is.</div><div><br></div><div>best,</div><div><br></div><div>l.</div><div><br></div><br><br>-- <br>---<br>crowd-funded eco-conscious hardware: <a href="https://www.crowdsupply.com/eoma68" target="_blank">https://www.crowdsupply.com/eoma68</a><br><br>