Hi forum members,
I have a question about .triggered and .matched of SVA sequence.
In my understanding, the following properties are equivalent. At rising edge of s1, a sequence that s2 is kept high for 3 cycle’s and goes down low ends. Each of s1 and s2 is driven by different clock.
//----             _.__________
//s1 :  ________._|@             (clocked by clk1)
//----        _._._            
//s2 :  ___._|1 2 3|_._________  (clocked by clk2)
//----      >-------^   
property prop_1;
  @(posedge clk1) $rose(s1) |=>
  @(posedge clk2) ( !$past(s2,4) && $past(s2,3) && $past(s2,2) &&  $past(s2,1) && $fell(s2) );
endproperty
sequence seq_3high();
  @(posedge clk2) $rose(s2) ##0 s2[*3] ##1 $fell(s2);
endsequence
property prop_2;
  @(posedge clk1) $rose(s1) |=>
  @(posedge clk2) seq_3high().triggered;
endproperty
property prop_3;
  @(posedge clk1) $rose(s1) |->
  @(posedge clk2) seq_3high().matched;
endproperty
.matched implies synchronization between source clock and destination clock. So, I think it is same as synchronization by using |=> for .triggered and $past().
However, the property with .matched gives different results from others when they are examined by the followings tests.
===================================================
TEST 0 : FAIL is expected.
----             _.__________
s1 :    ______._|@           
----    _._._                
s2 :  _|1 2 3|_._____________
----  >-------^              
===================================================
TEST 1 : FAIL is expected.
----             _.__________
s1 :  ________._|@           
----      _._._              
s2 :  _._|1 2 3|_.___________
----    >-------^            
===================================================
TEST 2 : PASS is expected.
----             _.__________
s1 :  ________._|@           
----        _._._            
s2 :  ___._|1 2 3|_._________
----      >-------^          
===================================================
TEST 3 : FAIL is expected.
----             _.__________
s1 :  ______._._|@           
----          _._._          
s2 :  _____._|1 2 3|_._______
----        >-------^        
===================================================
prop_1, prop_2
TEST 0 : FAIL
TEST 1 : FAIL
TEST 2 : PASS
TEST 3 : FAIL
prop_3
TEST 0 : FAIL
TEST 1 : PASS
TEST 2 : FAIL
TEST 3 : FAIL
Here is a link to EDA Playground triggered and matched.
The results of prop_3(ast_3) are unexpected. Why are they different? Is my understanding wrong? Or, is this a tool issue?
Other simulators than QuestaSim give different results regarding prop_3(ast_3) and they are also unexpected. But I don’t mean to discuss it here.

