<br><br>On Friday, May 7, 2021, Paul Mackerras &lt;<a href="mailto:paulus@ozlabs.org">paulus@ozlabs.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
When you talk about a two clock delay, I don&#39;t know whether you are<br>
rounding up or rounding down.  In other words, do you mean 2 cycles<br>
plus setup plus clock-to-output, or are you considering 1 cycle plus<br>
setup plus clock-to-output to be two cycles?</blockquote><div><br></div><div>clk             rise  fall  rise fall  rise  fall</div><div>rd_in:          1      0      0     0     0      0</div><div>rd0_data:   00  00     NN  00  00  00</div><div>rd_data:     00  00    00    00  NN 00</div><div><br></div><div>the 1st process i understand to be a 1 clock delay from rd_in to rd_data0 being set.<br></div><div><br></div><div>the 2nd process, by also being a rising edge and by taking its output from rd_data0 and placing it into rd_data, introduces a 2nd clock delay.</div><div><br></div><div>thus the total time taken is 2 clock cycles from when rd_in went high to when rd_data is valid.</div><div><br></div><div>essentially, i am questioning why ADD_BUF was added.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">of output signals from<br>
&gt; dcache.vhdl is clear?<br>
<br>
No, I think I would need to see a patch to understand what you&#39;re<br>
driving at;</blockquote><div><br></div><div>i can do a couple of partial ones, as you&#39;ve probably gathered i am not a VHDL &quot;writer&quot; expert yet.  another 6-8 months and i may be.  what i send you will need checking and completing is what i mean.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> but from what I gather, you&#39;re worried about the path<br>
through the cache data RAM - but that&#39;s not the critical path.</blockquote><div><br></div><div>not &quot;worried&quot;, just questioning why ADD_BUF has been added to the code.</div><div><br></div><div>to see what i am getting at, try setting ADD_BUF=false then cascading through the code changes needed to get the rd_data to be valid within dcache.vhdl itself - on the *real* path, not the virt path.</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>