Closed dbrumley closed 2 years ago
We are working on it and should release it soon since the interest is rising. Sorry for the inconvenience and thanks for the interest. Meanwhile, if you have any specific questions to get you going, we'll be glad to answer. The code is stable and you should be able to use it once you understand its interface signals.
Thanks for the quick ack. I don't have a specific question. I'm trying to debug an issue for a client, and we're using verilator. I'm trying to figure out how rdata would ever be set given a sequence of wdata's. I hope that makes sense.
rdata is a front-end (facing the CPU) signal, meaning the CPU receives data from the cache using it.
wdata is another front-end for writing to the cache.
The CPU is either reading or writing, not both.
For reading one word from the cache, have the address ready and assert valid during one cycle.
If the ready signal is high in the next cycle, rdata has the requested word; you may immediately (combinatorially) de-assert the valid signal if you do not need to read another word. Or you can keep reading words in pipeline by keeping valid high and changing the address every cycle.
If the data is not in the cache, ready will not be asserted in the next cycle. Then hold the valid and address signals until ready is high; meanwhile, the word is read from the external memory (back-end) and placed in the cache.
To write, the process is similar. ready high in the next cycle means the word has been written to the cache; ready low means you need to wait with valid high and the same address until ready is high again; meanwhile, the data is written to the back-end.
As long as the data is in the cache, consecutive (pipelined) reads and writes are supported, one word per clock cycle.
I hope this helps.
documentation can now be generated on branch build-dir
TY! :) 👍 🥇
FYI: We have a blog post on fuzzing iob-cache to check coverage. Joint work with Micron. I've not seen much in fuzzing verilog, and it may be of interest. There is no expectation of finding vulnerabilities. However, it can radicallyi reduce the cost of building tests that cover nodes and edges in your design.
Hi David, Thanks, I saw your blog post -- very interesting
In fact, you may find vulnerabilities :-) ...
The README says to run
make doc-build-all
. I consistently get an error about a missingsettings64.sh
file.