-
Notifications
You must be signed in to change notification settings - Fork 0
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
AXI-Stream Formal Properties #3
base: main
Are you sure you want to change the base?
Conversation
These do not fully consider rules about connecting mismatched interfaces Perhaps we may need more property sets for a "passthrough" component that asserts additional rules
(cherry picked from commit 9211c4e)
Removed WIP designator for now: these properties do not correctly handle cores with an asynchronous reset, but this can be added later. |
Back to draft again: the current reset handling is probably broken so I'll want to fix this and address #4 at the same time. |
#4 has been fixed but all this needs review before merging. |
…ability When width is 0 then the range becomes [-1:0], which is actually a valid upto bus with 2 bits in it
Block comment of commit describes remaining issues
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks really good. Some global comments:
- We don't have anything in here for interconnect, which we probably should at some point.
- We should include "AXI4" and "Version 1.0 Revision A" somehow, for tracking purposes.
- We should actually verify some IP with this, and correspondingly, we should have another state in our README state machine for "we wrote properties but haven't verified anything with them yet" (and then this PR should update the README to put AXI-Stream in that state).
One more thing - per this convo with Strike we could use default values for optional signals in places where it makes sense (not sure where that might be tho). I did verify this works in Yosys. |
It's very unlikely that ARM will release a new version of this spec (given what AXI-Stream is), but add trackability anyway
@awygle Addressing your global comments:
|
This reverts commit 8579c5c.
…d less frequently)
Reset handling needs to be fixed (here and elsewhere) so reference diff is not going to be updated yet
Even if this is meant for use in combinational properties, not_in_reset depends on past state
Prefixed a is very strange IMO but going with the standards document
Comments from Echo on the Discord (@dicta):
|
As stated on one of the code reviews earlier, I plan to focus on isolated interfaces first and then create a combined property set in a separate PR that includes stuff like the second bullet point. The first bullet point is something I'll need to recheck and to add to the property set if it's missing. |
These are bare-bones
assume
s andassert
s for verifying protocol compliance. Output signals such as transfer/byte counts may be added later.Async reset handling is tracked in #4 and is handled correctly (outside of multiclock environments).