Adding ability to define the actor on new_axi_slave function by rftafas · Pull Request #709 · VUnit/vunit

@rftafas

This change should not affect any current usage, but adds possibility to define the actor for the axi_slave being created. For some reason on a test needing several AXI Slave VCIs, modelsim put all of them under the same "id" and things got awkward.

This has solved it.

@LarsAsplund

There is work being done to standardize some parts of VCs and VCIs to improve interoperability. One of the rules of that standard is to have the ability you're looking for. All present VCs have been modified to comply with this standard but that work hasn't been merged yet. It's been on hold for a while but is number two on my prio list and I will get to it shortly.

We can do this before that as it doesn't break any backward compatibility but please have a look at

actor : actor_t := null_actor;
and modify such that your default value is null_actor to better match that standard.

@rftafas

I made the changes, but It is still having trouble on some seemingly unrelated checks.

@eine

@rftafas the linter errors are unrelated to your changes. However, I think that acceptance and vcomponents failures are related to this PR. Precisely, the AXI DMA example is failing in acceptance tests, and AXI Slave tests are failing in vcomponents.

@rftafas

It seems that the change from 'new_actor' to 'null_actor' caused this. Most probably, the examples will have to be adapted to include an actor now, as it does not do that anymore.

LarsAsplund

logger : logger_t := axi_slave_logger) return axi_slave_t is
begin
return (p_actor => new_actor,
return (p_actor => actor,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I was a bit unclear here. You still need to call new_actor. p_actor has to be set to

actor when actor /= null_actor else new_actor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once you've fixed that you can also rebase on master and then, hopefully, the remaining lint issues will disappear.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought of that at first, but got worried that it would not be the acceptable way. Will do it.

Ricardo Tafas added 2 commits

March 16, 2021 10:27