-
Notifications
You must be signed in to change notification settings - Fork 613
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Async API #1724
base: main
Are you sure you want to change the base?
Async API #1724
Conversation
This is really cool! I recently wanted an AsyncQueue for one of my designs. Is this the exact implementation used in RocketChip? Are there any unittests you could copy? |
For reference/inspiration:
|
This one is a rewrite based on my own understanding to rocket-chip |
I think before we land a CDC and SVA in FIRRTL, I have no idea on how to test this(and so did in RC).
--next PR--
--next PR--
--future PR--
|
Chiseltest seems to have multi-clock support. So while you cannot exhaustively verify it at the moment, you could try to write some concrete unittests that ensure basic functionality. |
Yes I'm going to do it this week to do some basic functionality verification.
IIRC, ChiselTest doesn't support delta-cycle simulation, need confirm from @ducky64 |
As an idea on how to verify the AsyncQueue: You could try to add an assertion that at most on bit in the gray code encoded counter changes at a time. |
What do you mean precisely by delta-cycle simulation? ChiselTest propagates combinational operations immediately (well, actually on read), but there isn't a dedicated concept of a delta cycle. Multiclock on ChiselTest is limited, but things might work if everything is derived (integer divisor) of a main clock. |
806e4ac
to
2ea8b23
Compare
e33bf4f
to
da45acb
Compare
da45acb
to
46e9872
Compare
Any progress? I am currently copying the whole rocket chip utils package to my own project, but I hope this can be builtin. |
I'd like to continue working on this. |
Sorry, but I am currently busy and to get the multi-clock support to a usable state will take 2-3 weeks of full focus. |
* Define 'same clock' in a syntactic sense Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Contributor Checklist
docs/src
?Type of Improvement
API Impact
new API addition in
chisel3.util.experimental.crossing
Desired Merge Strategy
Release Notes
Add Async API
Reviewer Checklist (only modified by reviewer)
Please Merge
?