Wait for variable cycles number before triggering property

Hi, I have a requirement for my assertion: I need to wait for ‘x’ cycles before firing up the assertion.

FYI: ‘x’ is calculated at run-time and it’s not a constant, it’s evaluated using some equation. for eg: assign x = $ceil(a)4 + (bc)/d;
All a,b,c,d are registers in RAL

Now the property is something like:

$rose(active)->##[0:x] (z, clk, rst)

Looking for alternative options to write an assertion or property like this, thank you

Check these links
(1) sva-package-for-dynamic-and-range-delays-and-repeats
(2) unexpected-results-for-dynamic-delay-range

I am sorry, I don’t understand, where do I do this?

import package sva_delay_repeat_range_pkg::*;

The package from the link 1 is to be imported in the module/interface where you intend to write your property ( assuming you have defined the same package with all the sequences )

Without importing the entire package, you could simply define sequence ‘dynamic_delay_lohi_sq’ (use the same sequence code from link1) in your interface/module and instantiate it.