Assertion for the delay implementation , the input data will be coming after delay12.5ps
so I wanted to check that data , here delay is randomize and it is 9 bits i.e. [8:0]delay
so while implementation
property input_mode_idel;
realtime t1=12.5
@(posedge clk ) disable iff (disable || !gsrn || !por_n)
(indel_a) |-> ##[delayt1] (data==inff);
endproperty
It is giving an error , as delay cannot take variables , is their any other way . Can you please suggest some other way to implement this ?
Delays and repeats have to be static multiple of the clocking event.
Thus, ##1.2 b is illegal; there is NO 1.2 clock periods; at least clocked registers don’t work that way.
By using this package import sva_delay_repeat_range_pkg::;
delay is randomize at that particular when indel is 1 that value of delay should be multiplied by 12.5 ps in the interface class and after that data should be compared
(indel_a) |-> ##[delayt1] (data==inff);
I don’t understand your requirements. indel is 1 that value of delay should be multiplied by 12.5 ps in the interface class and after that data should be compared
(indel_a) |-> ##[delayt1] (data==inff);* What does this 12.5ps have to do with the clocking event ? a new clocking event 12.ps later? If no, you need to create that event outside SVA with support logic and use multiclocking in SVA. If you are going to do all of that, you might as well use the fork/join_none approach to do verification; this is described in my paper Understanding the SVA Engine, Verification Horizons - July 2020 | Verification Academy
On ERROR :- package could not be bound, please show code