1. SOP和EOP成对检查
always @(posedge clk, negdege rst_n)
if(!rst_n || eop)
pkt_tmp <= 1'b0;
else if(sop)
pkt_tmp <= 1'b1;
//******************************************************************************
// Assertion: sop correct
//******************************************************************************
property p_sop_correct;
@(posedge clk, negedge rst_n) disable iff (!rst_n) sop |-> !pkt_tmp;
endproperty
//******************************************************************************
// Assertion: eop correct
//******************************************************************************
property p_eop_correct;
@(posedge clk, negedge rst_n) disable iff (!rst_n) eop |-> pkt_tmp || sop;
endproperty
//******************************************************************************
// Assertion: no hole
//*********************************************************************