-
Notifications
You must be signed in to change notification settings - Fork 8
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
[Design] Various AXI4 suggestions #57
Comments
For the record, the |
@martijnbastiaan, what is your long-term vision for the AXI4 implementation in In particular, the type-level record change is IMHO a significant improvement in usability. Currently the type signatures required to use AXI with Naturally, I would be happy to keep the |
Thanks for the ping! First off all,
Agreed. Pragmatism beats purism in this case.
I'm assuming this is in context of Vivado Block Design? If the strobe signal rework is necessary for your project to work, then that's a good argument for doing so. I'm also interested in the
I did look it up in your fork, but I'm not sure what its purpose is. Could you elaborate?
Makes sense! I'll invite you as a collaborator on |
Thanks, @martijnbastiaan !
This is good to know; I was worried that introducing refactorings like those suggested here might cause undue pain on existing users. It sounds like that isn't much of a concern, thankfully.
Correct; with
I was hoping this would be the case but have been hesitant to suggest it while the documentation remains so dire. I willl try to to rectify this today.
The point here is merely to capture more information in the types and to avoid "BitVector blindness". However, I don't have a strong opinion here. In my recent rewrite of
Thanks; I have accepted although I will continue to go through the usual MR process in all but the most trivial of patches. |
@martijnbastiaan , I have pushed a |
While attempting to use
clash-protocols
in a project, I found that the separate type-level records used to represent each of the sub-busses of AXI4 made the library very painful to use. In my fork I have merged these into a single type-level record; while this is perhaps slightly less principled than the status quo, it is quite a bit less bothersome in practice. Moreover, I think it is quite defensible as one does tend to use at very least all of the read or all of the write sub-busses in conjunction.Other changes in my fork include:
HasPortRep
instances for myclash-port-name
package, allowing convenient naming of top-level entity ports. With these instances, Vivado's port type inference works without any user intervention.Address
andTransactionId
newtypes as these are very frequently needed and have clear semanticsAxi4Lite
type synonym and a few smart constructorsclash-testbench
packageThe text was updated successfully, but these errors were encountered: