-
Notifications
You must be signed in to change notification settings - Fork 263
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
Add axi master #1017
base: master
Are you sure you want to change the base?
Add axi master #1017
Conversation
Thanks for getting this started. I'm aware of several implementations over the years but non of them made it to open source. It so happens that I have my eyes on yet another implementation in progress that may or not make it to the public. Even if that doesn't become open source, I can keep track of what features it requires such that the VC released by VUnit can meet those as well. I will get back when I have more info. |
As you might figured out already this implementation is not yet finished. I am still working on it. Basically I am now adding the functionallity to each single signal. At the moment I have deticated reserved time to implement this specific VC. It would be nice to know if the work will get obsolete some day or be replaced by another implementation. Otherwise I will keep going with the implementation. Hopefully with your early review / support. @LarsAsplund |
Since you've started and the other implementation may not make it to open source, I think we should continue on what you have. What I hope is to align on the required feature set such that you both can work on the open implementation in the end. I will come back and review a bit later, |
Thank you for the answer! I am currently working on the read burst behaviour. It is not finished yet but I think you could get an idea where the journey should go. |
@LarsAsplund |
I have yet to review it. The other implementation I'm keeping my eyes on is settling now so I think I will be in a position to review shortly and then make sure that the one you have is "feature compatible". With that I don't mean that it has to have all features but rather that the API is such that it can evolve and eventually cover all the things the other project is requiring. That way there is a chance that the two efforts can be merged in the end. |
@LarsAsplund |
So let's review this in a number of iterations, starting with the public interface. Since the first implementation won't implement all of AXI, it is important that we have a public API that can be extended in the future without breaking backward compatibility. There are two references to consider:
The VUnit VC standard comes with a support package that you will need but I need to modify it slightly to take the identity package into account. I will start with that and push it to a branch that you can rebase on. To get a feel for the new VC standard you can read this but be aware that there will be some changes. Regardless of those changes you can start by looking at rule 13 (and rule 11): Rule 13 Rationale: Representing a VC with a single object makes it easier to handle in code. Since all fields of the handle are private future updates have less risk of breaking backward compatibility. Rather than a With respect to the AXI standard, I also see two things that you can start with:
Let's start with that and create a new iteration when I pushed that VC standard support package. |
@LarsAsplund I already added the axi_master_t single generic for the axi master VC. Did you already have the time to prepare the branch for the new VC standard? Then I would continue with the rebase. |
@LarsAsplund Hi, my branch is now synced with the latest master branch. What are the next steps? Is there something what I can do to keep up the progress? |
@DavidMartinPhios The next step I want to do with the respect to the VC standard is something I will need to do on my own. It is second on my priority list and can be started once I've got some progress with improved support for vopt in Modelsim/Questa |
@LarsAsplund Ok. The reset functionality is also included right now. Let me know when I can continue. |
@LarsAsplund Hi, do you have any progress updates? |
@DavidMartinPhios I'm just in the process of developing a new VC for a client of mine which has allowed me to think in terms of the updated VC standard. I will be able to present that shortly. |
@DavidMartinPhios Please have a look at the updated standard rules. Rule 7 and 12 will make more sense when I have pushed supporting code but if you follow the rest of them you will have most of the work done. Compared to the previous draft standard, the rules have been updated to make better use of the identity package, VUnit events and packages. |
Added axi master with equally powerful implementation as axi lite master has