***********************************************************
Simulation Log
***********************************************************

/* +define+overlap
run -all
KERNEL:         10  clk=1 cstart=0 req=0 gnt=0
KERNEL:         30  clk=1 cstart=1 req=0 gnt=0
KERNEL:         30               test_overlap_nonoverlap FAIL

                Q: WHY DOES THE PROPERTY FAIL at 30?
		A: At time 30, cstart=1; so antecedent matches and implication eval starts 
		   At time 30, req is NOT equal to 1 as required by overlapping implication
		               and the consequent fails right away and the property FAILs.

KERNEL:         50  clk=1 cstart=1 req=1 gnt=0
KERNEL:         70  clk=1 cstart=0 req=0 gnt=0
KERNEL:         90  clk=1 cstart=0 req=0 gnt=1
KERNEL:         90               test_overlap_nonoverlap PASS

                Q: WHY DOES THE PROPERTY PASS at 90?
		A: At time 50, cstart=1; so antecedent matches and implication eval starts 
		   At time 50 (i.e, the same clock as required by overlapping implication), 
			      req=1; so consequent eval also starts
		   At time 50, req=1; so consequent eval also starts
		   At time 70, gnt=1 as required by the property and the consequent matches
		   	       and the property PASSes.

KERNEL:        110  clk=1 cstart=1 req=1 gnt=0
KERNEL:        130  clk=1 cstart=1 req=1 gnt=0
KERNEL:        150  clk=1 cstart=1 req=1 gnt=1
KERNEL:        150               test_overlap_nonoverlap PASS

                Q: WHY DOES THE PROPERTY PASS at 150?
		A: At time 110, cstart=1; so antecedent matches and implication eval starts 
		   At time 110 (i.e, the same clock as required by overlapping implication), 
			        req=1; so consequent eval also starts
		   At time 150 (i.e 2 clocks after 110), gnt=1 as required by the property
			       so the consequent matches and the property PASSes

KERNEL:        170  clk=1 cstart=0 req=1 gnt=0
KERNEL:        170               test_overlap_nonoverlap FAIL

                Q: WHY DOES THE PROPERTY FAIL at 170?
		A: At time 130, cstart=1; so antecedent matches and implication eval starts 
		   At time 130 (i.e, the same clock as required by overlapping implication), 
			        req=1; so consequent eval also starts
		   At time 170 (i.e 2 clocks after 130), gnt is NOT equal to 0 as required by the
			       property so the consequent does not match and the property FAILs

KERNEL:        190  clk=1 cstart=0 req=0 gnt=0
KERNEL:        190               test_overlap_nonoverlap FAIL

                Q: WHY DOES THE PROPERTY FAIL at 190?
		A: At time 150, cstart=1; so antecedent matches and implication eval starts 
		   At time 150 (i.e, the same clock as required by overlapping implication), 
			        req=1; so consequent eval also starts
		   At time 190 (i.e 2 clocks after 150), gnt is NOT equal 0 as required by the 
			       property so the consequent does not match and the property FAILs

KERNEL:        210  clk=1 cstart=0 req=0 gnt=1

*/

/* +define+nonoverlap

run -all
KERNEL:         10  clk=1 cstart=0 req=0 gnt=0
KERNEL:         30  clk=1 cstart=1 req=0 gnt=0
KERNEL:         50  clk=1 cstart=1 req=1 gnt=0
KERNEL:         70  clk=1 cstart=0 req=0 gnt=0
KERNEL:         70               test_overlap_nonoverlap FAIL

                Q: WHY DOES THE PROPERTY FAIL at 70?
		A: This failure is for the thread that started at time 50 (and not 30).
		   At time 50, cstart=1; so antecedent matches and implication eval starts 
		   At time 70 (i.e, one clock later as required by nonoverlapping implication), 
			      req is NOT EQUAL to 1; so consequent does not match and the 
                              property FAILs 

KERNEL:         90  clk=1 cstart=0 req=0 gnt=1
KERNEL:         90               test_overlap_nonoverlap PASS

                Q: WHY DOES THE PROPERTY PASS at 90?
		A: This pass is for the thread that started at time 30 (and not 50).
		   At time 30, cstart=1; so antecedent matches and implication eval starts 
		   At time 50 (i.e, one clock later as required by nonoverlapping implication), 
			      req == 1; so consequent eval starts 
		   At time 90 (i.e, two clocks later as required by the property), 
			      gnt == 1; so consequent matches and the property PASSes. 

KERNEL:        110  clk=1 cstart=1 req=1 gnt=0
KERNEL:        130  clk=1 cstart=1 req=1 gnt=0
KERNEL:        150  clk=1 cstart=1 req=1 gnt=1
KERNEL:        170  clk=1 cstart=0 req=1 gnt=0
KERNEL:        170               test_overlap_nonoverlap FAIL

                Q: WHY DOES THE PROPERTY FAIL at 170?
		A: This failure is for the thread that started at time 110
		   At time 110, cstart=1; so antecedent matches and implication eval starts 
		   At time 130 (i.e, one clock later as required by nonoverlapping implication), 
			      req is EQUAL to 1; so consequent eval starts. 
		   At time 170 (i.e, two clocks later as required by the property),
			      gnt is NOT EQUAL to 1; so consequent does NOT match and 
                              the property FAILs. 

KERNEL:        190  clk=1 cstart=0 req=0 gnt=0
KERNEL:        190               test_overlap_nonoverlap FAIL

                Q: WHY DOES THE PROPERTY FAIL at 190?
		A: This failure is for the thread that started at time 130
		   At time 110, cstart=1; so antecedent matches and implication eval starts 
		   At time 150 (i.e, one clock later as required by nonoverlapping implication), 
			      req is EQUAL to 1; so consequent eval starts. 
		   At time 190 (i.e, two clocks later as required by the property),
			      gnt is NOT EQUAL to 1; so consequent does NOT match and 
                              the property FAILs. 

KERNEL:        210  clk=1 cstart=0 req=0 gnt=1
KERNEL:        210               test_overlap_nonoverlap PASS

                Q: WHY DOES THE PROPERTY PASS at 210?
		A: This pass is for the thread that started at time 150
		   At time 150, cstart=1; so antecedent matches and implication eval starts 
		   At time 170 (i.e, one clock later as required by nonoverlapping implication), 
			      req is EQUAL to 1; so consequent eval starts. 
		   At time 210 (i.e, two clocks later as required by the property),
			      gnt is EQUAL to 1; so consequent matches and the property PASSes. 

*/
