Hello,
Does anyone know a smart way to turn off functional coverage reactively? What I want to do is to turn off coverage checking on each covergroup in my design as soon as it has reached 100% coverage, in order to speed up simulation. The reason I want to do this is that most of my covergroups reach 100% coverage almost immediately, while others needs quite some simulation time to reach full coverage. When all covergroups are finally covered, the easily covered ones have a coverage of 10000%, which seems a bit unneccesary...
So, my first question would be: will turning off coverage checks (e.g. using the stop() method) improve simulation speed? Otherwise there is no need for me to turn them off.
One way to achieve what I want is to check the coverage in every group regularly (see pseudo code below), but
that sort of polling mechanism may consume quite some CPU power in itself. Is there a smarter / more
effective way to do this?:
always @ (posedge clk)
foreach (my_covergroups[i])
if (my_covergroups[i].get_coverage() > 99.0)
my_covergroups[i].stop();
|