Do we need to put all possible scenarios on the functional coverage?
For example, I have the following scenarios:
- Mode 0 write → reset → issue_any_cmd
- Mode 0 read → reset → issue_any_cmd
- Mode 1 write → reset → issue_any_cmd
- Mode 1 write → reset → issue_any_cmd
…
… - Mode 5 write …
- Mode 5 read …
Now, in order for me to ensure that each of these scenarios has been tested, then I can do 2 things. First, I can put all of these in a functional coverage and then create a single test that randomizes generation of each of these scenario, and then put large number of seeds so that each of these scenario will be generated… The second one is, I will not include this on the functional coverage but I will create testcases for each of this scenario. So that will be 10 testcases. Then I will add these 10 testcases on my regression test list and just run the regression. In this way, even though did not include these on the functional coverage, I am still sure that these scenarios have been exercised.
Which one do you think is the right way to do it? The first or the second?
I am thinking that the disadvantage of the 2nd way is that I am not basing it on the actual signals that came in to the DUT but only based it on running the testcase… Running the testcase and saying that I have covered that scenario is not reliable since the actual signals or information that entered to the DUT may be different due to a possible bug on the drivers or some part of the testbench…
Am I correct?
Thank you.
Regards,
Reuben