vunit icon indicating copy to clipboard operation
vunit copied to clipboard

Drive invalid in AXI VCs

Open LukasVik opened this issue 3 years ago • 6 comments

When the 'valid' signal is low for an AXI (-Lite) channel, the signals of the channel should be driven with 'X'. They should not keep their value from the last time the channel was valid. This can hide errors in the DUT if the DUT samples values in the wrong clock cycle.

This change is largely inspired by the AXI-Stream VCs.

LukasVik avatar Feb 18 '22 07:02 LukasVik

Note that this changes the default behavior of the three VCs, so in some sense it is a breaking change. This could be changed by setting the default value drive_invalid generic to false. Though having it set to true is symmetric with the AXI-Stream VCs. And in my personal opinion it should be enabled in pretty much all cases, to get a stronger test.

LukasVik avatar Feb 18 '22 07:02 LukasVik

Looks good to me! Added a small comment on an unused constant.

LudvigVidlid avatar Feb 24 '22 12:02 LudvigVidlid

@LarsAsplund Sorry to ping you like this, but would it be possible to merge this? It has been reviewed by Ludvig.

LukasVik avatar Mar 18 '22 08:03 LukasVik

LGTM too. I would even say that this should not be a generic settings as it should be the default behaviour. Maybe for v5.0? But for the next minor release, yeah we need that generic.

std-max avatar May 31 '22 16:05 std-max

@LukasVik Sorry for the delay. It's in the pipe but unfortunately I haven't had time to work on that pipe. Been more of that lately so I will deal with shortly... I hope

LarsAsplund avatar May 31 '22 19:05 LarsAsplund

@LarsAsplund No problem at all, I know how it is.

@std-max Well with the default value true of the drive_invalid generic it is the default behavior. Which is a breaking change since the ports used to keep their value before. The generic configuration, and the default behavior, is now symmetric with the AXI-Stream verification components.

With that said, I agree with you in the sense that I personally will always leave the drive_invalid generic as true. Off the top of my head I can not think of a scenario where I would not. But perhaps I am missing something.

LukasVik avatar Jun 02 '22 13:06 LukasVik

I rebased the source branch upon upstream master in order to solve a merge conflict. No functional changes apart from that. Is ready for review/merge.

LukasVik avatar Oct 10 '23 08:10 LukasVik