How to disable the thread of unbounded delay in sequence if subsequent conditions are not met

Hi,

I want to trigger my coverage based upon some events.
Like when save_sig is true then I want to save signals and when cov_call is true want to trigger coverage .It works fine if save_sig is followed by cov_call sequence true.
But suppose save_sig comes to be true and then cov_call sequence doesn’t comes true as “sigc” signal is not rising but then again save_sig comes true followed by cov_call. In short if save_sig(first),save_sig(second),cov_call comes as true then I don’t want to save the signals for first save_sig but as there is unbounded delay in cov_call after save_sig becomes true so its makes coverage to be trigger even for save_sig(first) is not followed by cov_call true sequence. Is there any way, but I need to use $ delay also.

sequence save_sig
$rose(cond1);
endsequence :save_sig

sequence cov_call
save_sig ##[0:$] fell(sigb)##[0:] (!(sigb) throughout (##0:$); //after fall of sigb it should be low throughout till sigc doesn’t rise.
endsequence :cog_call

property cov_collection
logic ab;
logic cd;
@posedge(clk) (save_sig,
ab=design.x,
cd=design.y)
##0
(cov_call,cg_inst.sample(ab,cd))
endproperty

In reply to gagan_billing:

Can anybody comment on this.

Thanks,

In reply to gagan_billing:

Can anybody comment on this.

Thanks,