Comments (7)
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.
from iob-cache.
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.
from iob-cache.
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.
from iob-cache.
documentation can now be generated on branch build-dir
from iob-cache.
TY! :) 👍 🥇
from iob-cache.
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.
https://forallsecure.com/blog/running-iob-cache-in-mayhem
from iob-cache.
Hi David, Thanks, I saw your blog post -- very interesting
In fact, you may find vulnerabilities :-) ...
from iob-cache.
Related Issues (20)
- Open gtkwave only if needed HOT 2
- Do not close an open gtkwave automatically HOT 6
- Flow control on the user side?
- Latest iob-cache does not compile due to warning being taken as error HOT 3
- Possibility to perform Unit / functional tests on the verilated source files HOT 14
- Understanding the flow of iob-cache HOT 4
- 'x' data read from cache HOT 11
- rename sources HOT 1
- m_axi_rready_int assigned into always @* processes HOT 2
- Add driver documentation support
- 64-bit back-end interface fails HOT 5
- [WRITE BACK MODE] Not write to backend memory (flushing cache line) when read miss and dirty data exists in that line. HOT 3
- BACKEND WIDTH 64 and N_WAY 2 in WRITE_BACK mode ERROR
- setup fails
- WRITE Operations hand shake old and new [is the new iteration of Cache-iob fully functional]? HOT 4
- Can't find .vh files in the new version HOT 1
- Cant configure WORD_OFFSET_W to be 0 HOT 1
- Cant configure Write Policy (and maybe also Replacement Policy) HOT 1
- why the "replace_req" should depend on (buffer_empty & write_ack_i)? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iob-cache.