Determining What Needs To Be Crossed

I have a problem with what datas do I need to do a cross coverage.
I know that these datas should be inter-dependent with each one. But what I’m troubling with is to understand what this inter-dependency of data actually means.

For example. I have an SPI frame with fields cmd, addr, and data. Should I cross them? I don’t see any inter-dependency with them. I mean addr and data should not be dependent with the cmd here, right? And cmd should also be independent with the addr and data. Any commands can happen with any address and any data.

So, do you think it’s right that I should not cross these infos?

Thanks.

Regards,
Reuben

In reply to Reuben:

There is no golden answer here. Deciding what to cover is a process that is intimately tied to the design you are verifying. It’s more of an art or a science. As a guideline, you typically don’t cover data values (except I guess for the fact that each bit toggled), mostly control information (read/write, command, etc.). Addresses are kind of like control information so you generally cover them too in more detail.

With regard to your SPI question, without knowing your design, I would probably cross cmd with address (that I covered as different ranges) to make sure that each command could be sent to each address range.