Here i want that output data should come after end_time -start_time , I read a paper on variable delays , but there is count which is integer and i want it in real_time as t1=14ps and delay is =175 in integer.
property del(exp_delay_time, t1);
realtime start_time,end_time;
@(posedge data_in) disable iff ( !gsrn || !por_n ) // 12.5 ps * mc1_delay_a (sequence)
(1,start_time= $realtime) |-> @(posedge data_out) ##0 (1,end_time=$realtime) ##0 (1,$display("end_time-start_time %t exp_timet1 %t",(end_time -start_time),(exp_delay_timet1)))##0 ((exp_delay_time*t1) == (end_time-start_time));
endproperty
DELAY_CHECK : assert property (del(delay,t1))
so how can i check output data after end_time-start_time should be equal to input data
In reply to Renganathan M:
// output data should come after end_time -start_time
// how can i check output data after (end_time-start_time) should be equal to input data
// [Ben] Your property is simplified to
property del(exp_delay_time, t1);
realtime start_time,end_time;
int vdata_in; // Added this
@(posedge data_in) disable iff ( !gsrn || !por_n ) // 12.5 ps * mc1_delay_a (sequence)
(1,start_time= $realtime) |->
@(posedge data_out)
(1,end_time=$realtime,
$display("end_time-start_time %t exp_time*t1 %t",
(end_time -start_time),(exp_delay_time*t1))),
##0 ((exp_delay_time*t1) == (end_time-start_time))
##0 data_out==vdata_in; // added this
endproperty
// You have 2 clocking events, both of which use data as the events; a bit odd.
// So essentially, you are doing this:
@(posedge data_in) // Here data_in ==1'b1 (or if an int, data_in !=0
(1,start_time= $realtime) |->
@(posedge data_out) // Here data_out ==1'b1 (or if an int, data_out !=0
(1,end_time=$realtime), ##0
((exp_delay_time*t1) == (end_time-start_time));
//so how can i check output data after end_time-start_time should be equal to input data
// [Ben] Add
##0 data_out==vdata_in;