AMD VIP agent abstractization #171
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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