Hi,
In my regression , i run tests multiple times to get different random values. For example i have a random variable with 4 possible values. If i run the test for 4 times ( Even 8 times), there is no possibility that all 4 values get covered.
I am trying to do a smart regression, where with four runs i should be able to cover all values. Is there any way to do this ?
I tried the following
-
Include a text file and on each run add a constraint that it should not be covered next time ( example :constraint c_n { x!= 2;} )
With this approach we need to compile the bench again and when tests are running parallel, accessing same file is difficult. -
Include a ignore_list queue.
bit [2:0] x_ignore_lsit[$];
constraint x_c { !(x inside {x_ignore_lsit}); }
Write covered values in to a file.
Update the ignore list by reading from the file.With this we don’t need to compile again but accessing the file in regression is difficult.
-
Run a dummy regression initially. Make sure you randomise test variables in build phase and kill the test case in run phase. And analyse the coverage ( add embedded coverage in the class). Once we get the best seeds we run the actual regression with specific seeds.
Have to find a way to do this....