-
Notifications
You must be signed in to change notification settings - Fork 22
AMD VIP agent abstractization #171
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
Conversation
85d89c1 to
2ae07ff
Compare
ce8c693 to
1824259
Compare
|
Ran a CI build on the branch, fixed issues that are related to these changes. |
94332ff to
444f34e
Compare
70ec494 to
dd73d64
Compare
|
Re-ran the CI build on the branch, everything works the same way it currently does on main. |
a26c3ec to
3407cba
Compare
3407cba to
a86c276
Compare
a86c276 to
c9df666
Compare
LBFFilho
left a comment
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.
A bit of cosmetics with the .this usage.
This is a bit nitpicky, so feel free to ignore.
I've illustrated it with m_axis_sequencer.sv, but it also applies to other classes on the PR
This is something that became apparent to me as well, while working on some other features. It's not just these files that are affected, but many others. I would propose to postpone this to a future development branch, where we go over all and update everything in one go. |
Signed-off-by: Istvan-Zsolt Szekely <istvan.szekely@analog.com>
0cb2fef to
dcc59b8
Compare
PR Description
VIP agents AMD are parameterized are all parameterized agents and they don't have an abstract parent class. This forces us to use Environments which are also parameterized, so the AMD agents can be instantiated inside the environment.
The ADI VIP classes encapsulate the AMD VIPs, which allows us to create VIP agents in a cleaner way, including our own sequencers and monitors, but these are also parameterized. Our VIP classes have an abstract parent class, which means polymorphism works on them.
This PR adds a workaround for this issue to have an abstract, polymorphic environment, that can use VIPs in multiple modes without the need of redefining the entire environment multiple times with different modes. This polymorphic attribute is set at environment creation, which gives a seamless plug-and-play feature when multiple environments need to be connected for a more comprehensive system level testbenches.
To be reviewed after #165
PR Type
PR Checklist