Module Definition
dashboard | hierarchy | modlist | groups | tests | asserts



Module Instance : tb.dut.u_sm1_28

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
95.96 100.00 87.88 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
93.61 98.68 85.92 92.73 97.10


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 94.95 100.00 92.31 100.00 87.50
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[2].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 92.21 97.50 82.14 89.19 100.00



Module Instance : tb.dut.u_sm1_29

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
95.96 100.00 87.88 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
93.00 98.68 85.07 92.59 95.65


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[2].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_31

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
95.96 100.00 87.88 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
93.00 98.68 85.07 92.59 95.65


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[2].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_33

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_34

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_36

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
97.06 100.00 93.62 100.00 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 100.00 100.00 100.00 100.00 100.00



Module Instance : tb.dut.u_sm1_38

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
97.06 100.00 93.62 100.00 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 100.00 100.00 100.00 100.00 100.00



Module Instance : tb.dut.u_sm1_40

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
97.06 100.00 93.62 100.00 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 100.00 100.00 100.00 100.00 100.00



Module Instance : tb.dut.u_sm1_42

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
97.06 100.00 93.62 100.00 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 100.00 100.00 100.00 100.00 100.00



Module Instance : tb.dut.u_sm1_43

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_44

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_45

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_46

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_47

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_48

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_49

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_50

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_51

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_52

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_53

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_54

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_55

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_56

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 90.91 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.59 98.54 84.87 92.31 94.64


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 93.39 100.00 92.31 100.00 81.25
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 91.66 97.50 80.26 88.89 100.00



Module Instance : tb.dut.u_sm1_30

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.87 100.00 98.39 100.00 97.10


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
100.00 100.00 100.00 100.00 100.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_arb_ppc.u_reqarb 94.95 100.00 92.31 100.00 87.50
gen_host_fifo[0].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[1].u_hostfifo 100.00 100.00 100.00 100.00 100.00
gen_host_fifo[2].u_hostfifo 100.00 100.00 100.00 100.00 100.00
u_devicefifo 100.00 100.00 100.00 100.00 100.00

Line Coverage for Module : tlul_socket_m1 ( parameter M=3,HReqPass=7,HRspPass=7,HReqDepth=0,HRspDepth=0,DReqPass=1,DRspPass=0,DReqDepth=1,DRspDepth=1,IDW=8,STIDW=2 + M=3,HReqPass=7,HRspPass=7,HReqDepth=0,HRspDepth=0,DReqPass=0,DRspPass=0,DReqDepth=1,DRspDepth=1,IDW=8,STIDW=2 + M=3,HReqPass=7,HRspPass=7,HReqDepth=0,HRspDepth=0,DReqPass=1,DRspPass=1,DReqDepth=0,DRspDepth=0,IDW=8,STIDW=2 )
Line Coverage for Module self-instances :
SCORELINE
95.96 100.00
tb.dut.u_sm1_28

SCORELINE
95.96 100.00
tb.dut.u_sm1_29

SCORELINE
100.00 100.00
tb.dut.u_sm1_30

SCORELINE
95.96 100.00
tb.dut.u_sm1_31

Line No.TotalCoveredPercent
TOTAL2525100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 3/3 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 3/3 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 3/3 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 3/3 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 3/3 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 3/3 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 3/3 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3 

Line Coverage for Module : tlul_socket_m1 ( parameter M=2,HReqPass=3,HRspPass=3,HReqDepth=0,HRspDepth=0,DReqPass=0,DRspPass=0,DReqDepth=1,DRspDepth=1,IDW=8,STIDW=1 + M=2,HReqPass=3,HRspPass=3,HReqDepth=0,HRspDepth=0,DReqPass=1,DRspPass=1,DReqDepth=0,DRspDepth=0,IDW=8,STIDW=1 )
Line Coverage for Module self-instances :
SCORELINE
96.97 100.00
tb.dut.u_sm1_33

SCORELINE
96.97 100.00
tb.dut.u_sm1_34

SCORELINE
96.97 100.00
tb.dut.u_sm1_36

SCORELINE
96.97 100.00
tb.dut.u_sm1_38

SCORELINE
96.97 100.00
tb.dut.u_sm1_40

SCORELINE
96.97 100.00
tb.dut.u_sm1_42

SCORELINE
96.97 100.00
tb.dut.u_sm1_43

SCORELINE
96.97 100.00
tb.dut.u_sm1_44

SCORELINE
96.97 100.00
tb.dut.u_sm1_45

SCORELINE
96.97 100.00
tb.dut.u_sm1_46

SCORELINE
96.97 100.00
tb.dut.u_sm1_47

SCORELINE
96.97 100.00
tb.dut.u_sm1_48

SCORELINE
96.97 100.00
tb.dut.u_sm1_49

SCORELINE
96.97 100.00
tb.dut.u_sm1_50

SCORELINE
96.97 100.00
tb.dut.u_sm1_51

SCORELINE
96.97 100.00
tb.dut.u_sm1_52

SCORELINE
96.97 100.00
tb.dut.u_sm1_53

SCORELINE
96.97 100.00
tb.dut.u_sm1_54

SCORELINE
96.97 100.00
tb.dut.u_sm1_55

SCORELINE
96.97 100.00
tb.dut.u_sm1_56

Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Module : tlul_socket_m1 ( parameter M=3,HReqPass=7,HRspPass=7,HReqDepth=0,HRspDepth=0,DReqPass=1,DRspPass=0,DReqDepth=1,DRspDepth=1,IDW=8,STIDW=2 + M=3,HReqPass=7,HRspPass=7,HReqDepth=0,HRspDepth=0,DReqPass=0,DRspPass=0,DReqDepth=1,DRspDepth=1,IDW=8,STIDW=2 + M=3,HReqPass=7,HRspPass=7,HReqDepth=0,HRspDepth=0,DReqPass=1,DRspPass=1,DReqDepth=0,DRspDepth=0,IDW=8,STIDW=2 )
Cond Coverage for Module self-instances :
SCORECOND
95.96 87.88
tb.dut.u_sm1_28

SCORECOND
95.96 87.88
tb.dut.u_sm1_29

SCORECOND
95.96 87.88
tb.dut.u_sm1_31

SCORECOND
100.00 100.00
tb.dut.u_sm1_30

TotalCoveredPercent
Conditions3333100.00
Logical3333100.00
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT3,T8,T12
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 2))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT3,T8,T12
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T9
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT3,T8,T12
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[2].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 2) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT3,T8,T12
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Cond Coverage for Module : tlul_socket_m1 ( parameter M=2,HReqPass=3,HRspPass=3,HReqDepth=0,HRspDepth=0,DReqPass=0,DRspPass=0,DReqDepth=1,DRspDepth=1,IDW=8,STIDW=1 + M=2,HReqPass=3,HRspPass=3,HReqDepth=0,HRspDepth=0,DReqPass=1,DRspPass=1,DReqDepth=0,DRspDepth=0,IDW=8,STIDW=1 )
Cond Coverage for Module self-instances :
SCORECOND
96.97 90.91
tb.dut.u_sm1_33

SCORECOND
96.97 90.91
tb.dut.u_sm1_34

SCORECOND
96.97 90.91
tb.dut.u_sm1_43

SCORECOND
96.97 90.91
tb.dut.u_sm1_44

SCORECOND
96.97 90.91
tb.dut.u_sm1_45

SCORECOND
96.97 90.91
tb.dut.u_sm1_46

SCORECOND
96.97 90.91
tb.dut.u_sm1_47

SCORECOND
96.97 90.91
tb.dut.u_sm1_48

SCORECOND
96.97 90.91
tb.dut.u_sm1_49

SCORECOND
96.97 90.91
tb.dut.u_sm1_50

SCORECOND
96.97 90.91
tb.dut.u_sm1_51

SCORECOND
96.97 90.91
tb.dut.u_sm1_52

SCORECOND
96.97 90.91
tb.dut.u_sm1_53

SCORECOND
96.97 90.91
tb.dut.u_sm1_54

SCORECOND
96.97 90.91
tb.dut.u_sm1_55

SCORECOND
96.97 90.91
tb.dut.u_sm1_56

SCORECOND
96.97 90.91
tb.dut.u_sm1_36

SCORECOND
96.97 90.91
tb.dut.u_sm1_38

SCORECOND
96.97 90.91
tb.dut.u_sm1_40

SCORECOND
96.97 90.91
tb.dut.u_sm1_42

TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Module : tlul_socket_m1
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 5 5 100.00 5 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 5 5 100.00 5 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 2147483647 19360755 0 0
gen_host_fifo[1].idInRange 2147483647 11523431 0 0
gen_host_fifo[2].idInRange 1043501080 3009557 0 0
maxM 21600 21600 0 0
rspIdInRange 2147483647 98672956 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 2147483647 19360755 0 0
T1 257370 689 0 0
T2 50952 331 0 0
T3 420336 2566 0 0
T7 458832 2773 0 0
T8 105648 1928 0 0
T9 111768 1196 0 0
T10 239208 573 0 0
T11 59928 413 0 0
T12 1021560 3580 0 0
T13 842256 3289 0 0
T25 274309 10 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 2147483647 11523431 0 0
T1 268560 220 0 0
T2 50952 195 0 0
T3 420336 1003 0 0
T7 458832 1157 0 0
T8 105648 998 0 0
T9 111768 607 0 0
T10 239208 267 0 0
T11 59928 180 0 0
T12 1021560 1751 0 0
T13 842256 1209 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 1043501080 3009557 0 0
T1 44760 108 0 0
T2 8492 29 0 0
T3 70056 301 0 0
T7 76472 400 0 0
T8 17608 172 0 0
T9 18628 114 0 0
T10 39868 98 0 0
T11 9988 23 0 0
T12 170260 650 0 0
T13 140376 480 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 21600 21600 0 0
T1 24 24 0 0
T2 24 24 0 0
T3 24 24 0 0
T7 24 24 0 0
T8 24 24 0 0
T9 24 24 0 0
T10 24 24 0 0
T11 24 24 0 0
T12 24 24 0 0
T13 24 24 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 2147483647 98672956 0 0
T1 268560 1749 0 0
T2 50952 494 0 0
T3 420336 6551 0 0
T7 458832 10320 0 0
T8 105648 2672 0 0
T9 111768 1863 0 0
T10 239208 2234 0 0
T11 59928 528 0 0
T12 1021560 14634 0 0
T13 842256 5393 0 0

Line Coverage for Instance : tb.dut.u_sm1_28
Line No.TotalCoveredPercent
TOTAL2525100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 3/3 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 3/3 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 3/3 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 3/3 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 3/3 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 3/3 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 3/3 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_28
TotalCoveredPercent
Conditions332987.88
Logical332987.88
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 2))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[2].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 2) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_28
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 5 5 100.00 5 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 5 5 100.00 5 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 1480002 0 0
gen_host_fifo[1].idInRange 260875270 413763 0 0
gen_host_fifo[2].idInRange 260875270 525154 0 0
maxM 900 900 0 0
rspIdInRange 260875270 12895639 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 1480002 0 0
T1 11190 73 0 0
T2 2123 42 0 0
T3 17514 247 0 0
T7 19118 306 0 0
T8 4402 224 0 0
T9 4657 150 0 0
T10 9967 57 0 0
T11 2497 45 0 0
T12 42565 313 0 0
T13 35094 265 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 413763 0 0
T1 11190 8 0 0
T2 2123 4 0 0
T3 17514 50 0 0
T7 19118 70 0 0
T8 4402 36 0 0
T9 4657 26 0 0
T10 9967 5 0 0
T11 2497 9 0 0
T12 42565 35 0 0
T13 35094 24 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 525154 0 0
T1 11190 5 0 0
T2 2123 7 0 0
T3 17514 56 0 0
T7 19118 63 0 0
T8 4402 35 0 0
T9 4657 24 0 0
T10 9967 7 0 0
T11 2497 8 0 0
T12 42565 64 0 0
T13 35094 43 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 12895639 0 0
T1 11190 335 0 0
T2 2123 53 0 0
T3 17514 1021 0 0
T7 19118 1722 0 0
T8 4402 286 0 0
T9 4657 197 0 0
T10 9967 369 0 0
T11 2497 62 0 0
T12 42565 2139 0 0
T13 35094 838 0 0

Line Coverage for Instance : tb.dut.u_sm1_29
Line No.TotalCoveredPercent
TOTAL2525100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 3/3 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 3/3 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 3/3 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 3/3 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 3/3 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 3/3 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 3/3 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_29
TotalCoveredPercent
Conditions332987.88
Logical332987.88
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 2))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T8,T7
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[2].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 2) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT7,T12,T13
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_29
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 5 5 100.00 5 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 5 5 100.00 5 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 1633183 0 0
gen_host_fifo[1].idInRange 260875270 475293 0 0
gen_host_fifo[2].idInRange 260875270 564481 0 0
maxM 900 900 0 0
rspIdInRange 260875270 12558818 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 1633183 0 0
T1 11190 53 0 0
T2 2123 56 0 0
T3 17514 227 0 0
T7 19118 263 0 0
T8 4402 308 0 0
T9 4657 183 0 0
T10 9967 28 0 0
T11 2497 84 0 0
T12 42565 332 0 0
T13 35094 245 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 475293 0 0
T1 11190 2 0 0
T2 2123 6 0 0
T3 17514 14 0 0
T7 19118 42 0 0
T8 4402 46 0 0
T9 4657 25 0 0
T10 9967 9 0 0
T11 2497 13 0 0
T12 42565 39 0 0
T13 35094 45 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 564481 0 0
T1 11190 19 0 0
T2 2123 5 0 0
T3 17514 64 0 0
T7 19118 61 0 0
T8 4402 51 0 0
T9 4657 35 0 0
T10 9967 4 0 0
T11 2497 5 0 0
T12 42565 93 0 0
T13 35094 36 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 12558818 0 0
T1 11190 259 0 0
T2 2123 57 0 0
T3 17514 980 0 0
T7 19118 1570 0 0
T8 4402 315 0 0
T9 4657 226 0 0
T10 9967 299 0 0
T11 2497 77 0 0
T12 42565 1999 0 0
T13 35094 539 0 0

Line Coverage for Instance : tb.dut.u_sm1_31
Line No.TotalCoveredPercent
TOTAL2525100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 3/3 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 3/3 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 3/3 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 3/3 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 3/3 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 3/3 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 3/3 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_31
TotalCoveredPercent
Conditions332987.88
Logical332987.88
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 2))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[2].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 2) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T7,T10
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_31
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 5 5 100.00 5 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 5 5 100.00 5 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 1616376 0 0
gen_host_fifo[1].idInRange 260875270 459365 0 0
gen_host_fifo[2].idInRange 260875270 550676 0 0
maxM 900 900 0 0
rspIdInRange 260875270 11410971 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 1616376 0 0
T1 11190 69 0 0
T2 2123 64 0 0
T3 17514 239 0 0
T7 19118 318 0 0
T8 4402 328 0 0
T9 4657 153 0 0
T10 9967 32 0 0
T11 2497 68 0 0
T12 42565 405 0 0
T13 35094 333 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 459365 0 0
T1 11190 2 0 0
T2 2123 1 0 0
T3 17514 50 0 0
T7 19118 42 0 0
T8 4402 44 0 0
T9 4657 25 0 0
T10 9967 4 0 0
T11 2497 6 0 0
T12 42565 89 0 0
T13 35094 34 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 550676 0 0
T1 11190 5 0 0
T2 2123 9 0 0
T3 17514 23 0 0
T7 19118 48 0 0
T8 4402 49 0 0
T9 4657 26 0 0
T10 9967 11 0 0
T11 2497 4 0 0
T12 42565 104 0 0
T13 35094 34 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 11410971 0 0
T1 11190 339 0 0
T2 2123 60 0 0
T3 17514 1027 0 0
T7 19118 1570 0 0
T8 4402 325 0 0
T9 4657 196 0 0
T10 9967 294 0 0
T11 2497 59 0 0
T12 42565 2170 0 0
T13 35094 693 0 0

Line Coverage for Instance : tb.dut.u_sm1_33
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_33
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T10
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_33
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 247915 0 0
gen_host_fifo[1].idInRange 260875270 310920 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2487664 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 247915 0 0
T1 11190 6 0 0
T2 2123 2 0 0
T3 17514 14 0 0
T7 19118 24 0 0
T8 4402 54 0 0
T9 4657 31 0 0
T10 9967 6 0 0
T11 2497 6 0 0
T12 42565 33 0 0
T13 35094 41 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 310920 0 0
T1 11190 7 0 0
T2 2123 13 0 0
T3 17514 11 0 0
T7 19118 41 0 0
T8 4402 31 0 0
T9 4657 24 0 0
T10 9967 5 0 0
T11 2497 6 0 0
T12 42565 82 0 0
T13 35094 20 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2487664 0 0
T1 11190 33 0 0
T2 2123 15 0 0
T3 17514 88 0 0
T7 19118 250 0 0
T8 4402 80 0 0
T9 4657 55 0 0
T10 9967 55 0 0
T11 2497 12 0 0
T12 42565 285 0 0
T13 35094 112 0 0

Line Coverage for Instance : tb.dut.u_sm1_34
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_34
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T12
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_34
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 300123 0 0
gen_host_fifo[1].idInRange 260875270 360371 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2354636 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 300123 0 0
T1 11190 2 0 0
T2 2123 3 0 0
T3 17514 14 0 0
T7 19118 29 0 0
T8 4402 32 0 0
T9 4657 24 0 0
T10 9967 0 0 0
T11 2497 6 0 0
T12 42565 51 0 0
T13 35094 33 0 0
T25 0 4 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 360371 0 0
T1 11190 11 0 0
T2 2123 15 0 0
T3 17514 38 0 0
T7 19118 47 0 0
T8 4402 31 0 0
T9 4657 25 0 0
T10 9967 13 0 0
T11 2497 11 0 0
T12 42565 45 0 0
T13 35094 53 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2354636 0 0
T1 11190 25 0 0
T2 2123 18 0 0
T3 17514 134 0 0
T7 19118 290 0 0
T8 4402 62 0 0
T9 4657 49 0 0
T10 9967 7 0 0
T11 2497 16 0 0
T12 42565 413 0 0
T13 35094 113 0 0

Line Coverage for Instance : tb.dut.u_sm1_36
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_36
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT2,T3,T8
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT25,T27,T28
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_36
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 790758 0 0
gen_host_fifo[1].idInRange 260875270 943204 0 0
maxM 900 900 0 0
rspIdInRange 260875270 3228155 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 790758 0 0
T1 11190 12 0 0
T2 2123 5 0 0
T3 17514 11 0 0
T7 19118 49 0 0
T8 4402 57 0 0
T9 4657 36 0 0
T10 9967 3 0 0
T11 2497 37 0 0
T12 42565 108 0 0
T13 35094 34 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 943204 0 0
T1 11190 10 0 0
T2 2123 21 0 0
T3 17514 19 0 0
T7 19118 69 0 0
T8 4402 77 0 0
T9 4657 25 0 0
T10 9967 22 0 0
T11 2497 5 0 0
T12 42565 136 0 0
T13 35094 58 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 3228155 0 0
T1 11190 24 0 0
T2 2123 12 0 0
T3 17514 102 0 0
T7 19118 173 0 0
T8 4402 59 0 0
T9 4657 51 0 0
T10 9967 29 0 0
T11 2497 18 0 0
T12 42565 311 0 0
T13 35094 106 0 0

Line Coverage for Instance : tb.dut.u_sm1_38
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_38
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_38
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 673679 0 0
gen_host_fifo[1].idInRange 260875270 804605 0 0
maxM 900 900 0 0
rspIdInRange 260875270 3163492 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 673679 0 0
T1 11190 6 0 0
T2 2123 16 0 0
T3 17514 244 0 0
T7 19118 54 0 0
T8 4402 67 0 0
T9 4657 27 0 0
T10 9967 8 0 0
T11 2497 14 0 0
T12 42565 42 0 0
T13 35094 65 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 804605 0 0
T1 11190 6 0 0
T2 2123 4 0 0
T3 17514 233 0 0
T7 19118 47 0 0
T8 4402 61 0 0
T9 4657 36 0 0
T10 9967 11 0 0
T11 2497 5 0 0
T12 42565 48 0 0
T13 35094 50 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 3163492 0 0
T1 11190 25 0 0
T2 2123 10 0 0
T3 17514 102 0 0
T7 19118 151 0 0
T8 4402 78 0 0
T9 4657 63 0 0
T10 9967 84 0 0
T11 2497 14 0 0
T12 42565 204 0 0
T13 35094 124 0 0

Line Coverage for Instance : tb.dut.u_sm1_40
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_40
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT2,T3,T8
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT7,T12,T25
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_40
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 597984 0 0
gen_host_fifo[1].idInRange 260875270 687154 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2091652 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 597984 0 0
T1 11190 7 0 0
T2 2123 5 0 0
T3 17514 16 0 0
T7 19118 15 0 0
T8 4402 51 0 0
T9 4657 29 0 0
T10 9967 3 0 0
T11 2497 10 0 0
T12 42565 27 0 0
T13 35094 28 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 687154 0 0
T1 11190 4 0 0
T2 2123 15 0 0
T3 17514 46 0 0
T7 19118 33 0 0
T8 4402 41 0 0
T9 4657 26 0 0
T10 9967 36 0 0
T11 2497 12 0 0
T12 42565 59 0 0
T13 35094 43 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2091652 0 0
T1 11190 17 0 0
T2 2123 17 0 0
T3 17514 86 0 0
T7 19118 147 0 0
T8 4402 70 0 0
T9 4657 46 0 0
T10 9967 34 0 0
T11 2497 15 0 0
T12 42565 189 0 0
T13 35094 80 0 0

Line Coverage for Instance : tb.dut.u_sm1_42
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T2 T3 T8  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_42
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT2,T3,T8

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT2,T3,T8
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T10
101CoveredT2,T3,T8
110CoveredT1,T2,T3
111CoveredT2,T3,T8

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T10
101CoveredT2,T3,T8
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_42
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 679068 0 0
gen_host_fifo[1].idInRange 260875270 737366 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2716360 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 679068 0 0
T2 2123 2 0 0
T3 17514 33 0 0
T7 19118 25 0 0
T8 4402 42 0 0
T9 4657 21 0 0
T10 9967 24 0 0
T11 2497 6 0 0
T12 42565 70 0 0
T13 35094 193 0 0
T25 274309 6 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 737366 0 0
T1 11190 5 0 0
T2 2123 8 0 0
T3 17514 61 0 0
T7 19118 29 0 0
T8 4402 46 0 0
T9 4657 21 0 0
T10 9967 3 0 0
T11 2497 5 0 0
T12 42565 70 0 0
T13 35094 96 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2716360 0 0
T1 11190 5 0 0
T2 2123 10 0 0
T3 17514 93 0 0
T7 19118 228 0 0
T8 4402 70 0 0
T9 4657 42 0 0
T10 9967 107 0 0
T11 2497 11 0 0
T12 42565 365 0 0
T13 35094 155 0 0

Line Coverage for Instance : tb.dut.u_sm1_43
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_43
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_43
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 249452 0 0
gen_host_fifo[1].idInRange 260875270 316075 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2183483 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 249452 0 0
T1 11190 9 0 0
T2 2123 9 0 0
T3 17514 33 0 0
T7 19118 20 0 0
T8 4402 36 0 0
T9 4657 33 0 0
T10 9967 2 0 0
T11 2497 11 0 0
T12 42565 40 0 0
T13 35094 37 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 316075 0 0
T1 11190 9 0 0
T2 2123 10 0 0
T3 17514 18 0 0
T7 19118 41 0 0
T8 4402 35 0 0
T9 4657 26 0 0
T10 9967 6 0 0
T11 2497 9 0 0
T12 42565 67 0 0
T13 35094 56 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2183483 0 0
T1 11190 46 0 0
T2 2123 18 0 0
T3 17514 135 0 0
T7 19118 174 0 0
T8 4402 67 0 0
T9 4657 59 0 0
T10 9967 17 0 0
T11 2497 19 0 0
T12 42565 330 0 0
T13 35094 121 0 0

Line Coverage for Instance : tb.dut.u_sm1_44
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_44
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT7,T12,T13
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_44
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 286493 0 0
gen_host_fifo[1].idInRange 260875270 356343 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2195237 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 286493 0 0
T1 11190 5 0 0
T2 2123 4 0 0
T3 17514 28 0 0
T7 19118 18 0 0
T8 4402 45 0 0
T9 4657 25 0 0
T10 9967 10 0 0
T11 2497 2 0 0
T12 42565 30 0 0
T13 35094 25 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 356343 0 0
T1 11190 5 0 0
T2 2123 3 0 0
T3 17514 13 0 0
T7 19118 66 0 0
T8 4402 48 0 0
T9 4657 22 0 0
T10 9967 17 0 0
T11 2497 5 0 0
T12 42565 46 0 0
T13 35094 35 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2195237 0 0
T1 11190 23 0 0
T2 2123 7 0 0
T3 17514 173 0 0
T7 19118 193 0 0
T8 4402 86 0 0
T9 4657 47 0 0
T10 9967 23 0 0
T11 2497 7 0 0
T12 42565 238 0 0
T13 35094 89 0 0

Line Coverage for Instance : tb.dut.u_sm1_45
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_45
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_45
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 291246 0 0
gen_host_fifo[1].idInRange 260875270 364357 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2674224 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 291246 0 0
T1 11190 6 0 0
T2 2123 6 0 0
T3 17514 18 0 0
T7 19118 39 0 0
T8 4402 36 0 0
T9 4657 30 0 0
T10 9967 4 0 0
T11 2497 9 0 0
T12 42565 54 0 0
T13 35094 32 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 364357 0 0
T1 11190 4 0 0
T2 2123 4 0 0
T3 17514 16 0 0
T7 19118 33 0 0
T8 4402 47 0 0
T9 4657 25 0 0
T10 9967 13 0 0
T11 2497 12 0 0
T12 42565 57 0 0
T13 35094 31 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2674224 0 0
T1 11190 33 0 0
T2 2123 9 0 0
T3 17514 123 0 0
T7 19118 230 0 0
T8 4402 78 0 0
T9 4657 55 0 0
T10 9967 43 0 0
T11 2497 20 0 0
T12 42565 420 0 0
T13 35094 86 0 0

Line Coverage for Instance : tb.dut.u_sm1_46
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_46
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_46
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 264515 0 0
gen_host_fifo[1].idInRange 260875270 328286 0 0
maxM 900 900 0 0
rspIdInRange 260875270 1879014 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 264515 0 0
T1 11190 4 0 0
T2 2123 6 0 0
T3 17514 25 0 0
T7 19118 41 0 0
T8 4402 52 0 0
T9 4657 35 0 0
T10 9967 4 0 0
T11 2497 3 0 0
T12 42565 33 0 0
T13 35094 39 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 328286 0 0
T1 11190 3 0 0
T2 2123 6 0 0
T3 17514 31 0 0
T7 19118 27 0 0
T8 4402 37 0 0
T9 4657 22 0 0
T10 9967 6 0 0
T11 2497 10 0 0
T12 42565 79 0 0
T13 35094 30 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 1879014 0 0
T1 11190 13 0 0
T2 2123 11 0 0
T3 17514 161 0 0
T7 19118 216 0 0
T8 4402 82 0 0
T9 4657 56 0 0
T10 9967 44 0 0
T11 2497 13 0 0
T12 42565 336 0 0
T13 35094 135 0 0

Line Coverage for Instance : tb.dut.u_sm1_47
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_47
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_47
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 292334 0 0
gen_host_fifo[1].idInRange 260875270 366674 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2530191 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 292334 0 0
T1 11190 7 0 0
T2 2123 3 0 0
T3 17514 28 0 0
T7 19118 43 0 0
T8 4402 44 0 0
T9 4657 25 0 0
T10 9967 6 0 0
T11 2497 4 0 0
T12 42565 32 0 0
T13 35094 51 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 366674 0 0
T1 11190 6 0 0
T2 2123 11 0 0
T3 17514 54 0 0
T7 19118 53 0 0
T8 4402 29 0 0
T9 4657 22 0 0
T10 9967 4 0 0
T11 2497 13 0 0
T12 42565 49 0 0
T13 35094 30 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2530191 0 0
T1 11190 19 0 0
T2 2123 14 0 0
T3 17514 160 0 0
T7 19118 206 0 0
T8 4402 69 0 0
T9 4657 47 0 0
T10 9967 37 0 0
T11 2497 17 0 0
T12 42565 265 0 0
T13 35094 165 0 0

Line Coverage for Instance : tb.dut.u_sm1_48
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_48
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT2,T3,T8
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_48
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 299986 0 0
gen_host_fifo[1].idInRange 260875270 368679 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2228747 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 299986 0 0
T1 11190 5 0 0
T2 2123 7 0 0
T3 17514 19 0 0
T7 19118 49 0 0
T8 4402 38 0 0
T9 4657 31 0 0
T10 9967 6 0 0
T11 2497 8 0 0
T12 42565 38 0 0
T13 35094 30 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 368679 0 0
T1 11190 6 0 0
T2 2123 14 0 0
T3 17514 25 0 0
T7 19118 38 0 0
T8 4402 40 0 0
T9 4657 30 0 0
T10 9967 6 0 0
T11 2497 5 0 0
T12 42565 69 0 0
T13 35094 40 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2228747 0 0
T1 11190 24 0 0
T2 2123 20 0 0
T3 17514 176 0 0
T7 19118 234 0 0
T8 4402 76 0 0
T9 4657 59 0 0
T10 9967 75 0 0
T11 2497 13 0 0
T12 42565 310 0 0
T13 35094 119 0 0

Line Coverage for Instance : tb.dut.u_sm1_49
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_49
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T8,T7
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT7,T10,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_49
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 317337 0 0
gen_host_fifo[1].idInRange 260875270 389548 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2697880 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 317337 0 0
T1 11190 1 0 0
T2 2123 11 0 0
T3 17514 23 0 0
T7 19118 21 0 0
T8 4402 48 0 0
T9 4657 24 0 0
T10 9967 3 0 0
T11 2497 5 0 0
T12 42565 52 0 0
T13 35094 43 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 389548 0 0
T1 11190 7 0 0
T2 2123 8 0 0
T3 17514 11 0 0
T7 19118 26 0 0
T8 4402 36 0 0
T9 4657 24 0 0
T10 9967 13 0 0
T11 2497 7 0 0
T12 42565 50 0 0
T13 35094 32 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2697880 0 0
T1 11190 8 0 0
T2 2123 18 0 0
T3 17514 126 0 0
T7 19118 142 0 0
T8 4402 79 0 0
T9 4657 48 0 0
T10 9967 29 0 0
T11 2497 12 0 0
T12 42565 298 0 0
T13 35094 158 0 0

Line Coverage for Instance : tb.dut.u_sm1_50
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_50
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T8,T7
101CoveredT2,T3,T8
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_50
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 278024 0 0
gen_host_fifo[1].idInRange 260875270 339386 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2422791 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 278024 0 0
T1 11190 4 0 0
T2 2123 7 0 0
T3 17514 23 0 0
T7 19118 30 0 0
T8 4402 51 0 0
T9 4657 33 0 0
T10 9967 3 0 0
T11 2497 12 0 0
T12 42565 40 0 0
T13 35094 39 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 339386 0 0
T1 11190 3 0 0
T2 2123 9 0 0
T3 17514 21 0 0
T7 19118 38 0 0
T8 4402 49 0 0
T9 4657 25 0 0
T10 9967 2 0 0
T11 2497 5 0 0
T12 42565 66 0 0
T13 35094 31 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2422791 0 0
T1 11190 7 0 0
T2 2123 15 0 0
T3 17514 171 0 0
T7 19118 205 0 0
T8 4402 94 0 0
T9 4657 58 0 0
T10 9967 14 0 0
T11 2497 16 0 0
T12 42565 359 0 0
T13 35094 154 0 0

Line Coverage for Instance : tb.dut.u_sm1_51
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_51
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_51
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 269814 0 0
gen_host_fifo[1].idInRange 260875270 335402 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2647601 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 269814 0 0
T1 11190 2 0 0
T2 2123 11 0 0
T3 17514 31 0 0
T7 19118 25 0 0
T8 4402 32 0 0
T9 4657 29 0 0
T10 9967 5 0 0
T11 2497 3 0 0
T12 42565 78 0 0
T13 35094 66 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 335402 0 0
T1 11190 27 0 0
T2 2123 3 0 0
T3 17514 42 0 0
T7 19118 27 0 0
T8 4402 36 0 0
T9 4657 17 0 0
T10 9967 8 0 0
T11 2497 8 0 0
T12 42565 115 0 0
T13 35094 88 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2647601 0 0
T1 11190 12 0 0
T2 2123 12 0 0
T3 17514 185 0 0
T7 19118 211 0 0
T8 4402 65 0 0
T9 4657 46 0 0
T10 9967 61 0 0
T11 2497 11 0 0
T12 42565 464 0 0
T13 35094 193 0 0

Line Coverage for Instance : tb.dut.u_sm1_52
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_52
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT2,T3,T8
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT7,T12,T14
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_52
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 271066 0 0
gen_host_fifo[1].idInRange 260875270 345274 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2454230 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 271066 0 0
T1 11190 6 0 0
T2 2123 5 0 0
T3 17514 44 0 0
T7 19118 19 0 0
T8 4402 36 0 0
T9 4657 27 0 0
T10 9967 21 0 0
T11 2497 5 0 0
T12 42565 28 0 0
T13 35094 42 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 345274 0 0
T1 11190 3 0 0
T2 2123 10 0 0
T3 17514 15 0 0
T7 19118 21 0 0
T8 4402 39 0 0
T9 4657 28 0 0
T10 9967 3 0 0
T11 2497 7 0 0
T12 42565 44 0 0
T13 35094 64 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2454230 0 0
T1 11190 29 0 0
T2 2123 14 0 0
T3 17514 131 0 0
T7 19118 127 0 0
T8 4402 70 0 0
T9 4657 53 0 0
T10 9967 85 0 0
T11 2497 11 0 0
T12 42565 221 0 0
T13 35094 84 0 0

Line Coverage for Instance : tb.dut.u_sm1_53
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_53
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_53
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 316592 0 0
gen_host_fifo[1].idInRange 260875270 395584 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2183632 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 316592 0 0
T1 11190 5 0 0
T2 2123 4 0 0
T3 17514 12 0 0
T7 19118 24 0 0
T8 4402 21 0 0
T9 4657 29 0 0
T10 9967 4 0 0
T11 2497 9 0 0
T12 42565 58 0 0
T13 35094 43 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 395584 0 0
T1 11190 31 0 0
T2 2123 11 0 0
T3 17514 24 0 0
T7 19118 39 0 0
T8 4402 42 0 0
T9 4657 24 0 0
T10 9967 8 0 0
T11 2497 3 0 0
T12 42565 38 0 0
T13 35094 29 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2183632 0 0
T1 11190 19 0 0
T2 2123 15 0 0
T3 17514 136 0 0
T7 19118 167 0 0
T8 4402 63 0 0
T9 4657 53 0 0
T10 9967 37 0 0
T11 2497 11 0 0
T12 42565 412 0 0
T13 35094 119 0 0

Line Coverage for Instance : tb.dut.u_sm1_54
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_54
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T8,T7
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T7,T12
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_54
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 281860 0 0
gen_host_fifo[1].idInRange 260875270 348108 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2952910 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 281860 0 0
T1 11190 3 0 0
T2 2123 3 0 0
T3 17514 12 0 0
T7 19118 51 0 0
T8 4402 46 0 0
T9 4657 22 0 0
T10 9967 6 0 0
T11 2497 3 0 0
T12 42565 38 0 0
T13 35094 45 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 348108 0 0
T1 11190 9 0 0
T2 2123 9 0 0
T3 17514 18 0 0
T7 19118 22 0 0
T8 4402 37 0 0
T9 4657 30 0 0
T10 9967 7 0 0
T11 2497 6 0 0
T12 42565 59 0 0
T13 35094 38 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2952910 0 0
T1 11190 24 0 0
T2 2123 12 0 0
T3 17514 95 0 0
T7 19118 231 0 0
T8 4402 78 0 0
T9 4657 52 0 0
T10 9967 61 0 0
T11 2497 9 0 0
T12 42565 361 0 0
T13 35094 100 0 0

Line Coverage for Instance : tb.dut.u_sm1_55
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_55
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T7
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T7,T10
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_55
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 263834 0 0
gen_host_fifo[1].idInRange 260875270 325259 0 0
maxM 900 900 0 0
rspIdInRange 260875270 2567106 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 263834 0 0
T1 11190 13 0 0
T2 2123 4 0 0
T3 17514 19 0 0
T7 19118 26 0 0
T8 4402 28 0 0
T9 4657 26 0 0
T10 9967 2 0 0
T11 2497 9 0 0
T12 42565 52 0 0
T13 35094 34 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 325259 0 0
T1 11190 8 0 0
T2 2123 4 0 0
T3 17514 30 0 0
T7 19118 52 0 0
T8 4402 36 0 0
T9 4657 27 0 0
T10 9967 16 0 0
T11 2497 7 0 0
T12 42565 41 0 0
T13 35094 20 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 2567106 0 0
T1 11190 48 0 0
T2 2123 8 0 0
T3 17514 143 0 0
T7 19118 250 0 0
T8 4402 63 0 0
T9 4657 53 0 0
T10 9967 29 0 0
T11 2497 15 0 0
T12 42565 344 0 0
T13 35094 79 0 0

Line Coverage for Instance : tb.dut.u_sm1_56
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 2/2 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 2/2 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 2/2 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 2/2 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 2/2 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 2/2 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 2/2 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_56
TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT1,T2,T3
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT7,T12,T13
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_56
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 305076 0 0
gen_host_fifo[1].idInRange 260875270 384681 0 0
maxM 900 900 0 0
rspIdInRange 260875270 1972496 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 305076 0 0
T1 11190 2 0 0
T2 2123 6 0 0
T3 17514 28 0 0
T7 19118 27 0 0
T8 4402 34 0 0
T9 4657 25 0 0
T10 9967 4 0 0
T11 2497 10 0 0
T12 42565 42 0 0
T13 35094 42 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 384681 0 0
T1 11190 4 0 0
T2 2123 5 0 0
T3 17514 33 0 0
T7 19118 40 0 0
T8 4402 38 0 0
T9 4657 28 0 0
T10 9967 28 0 0
T11 2497 5 0 0
T12 42565 86 0 0
T13 35094 35 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 1972496 0 0
T1 11190 14 0 0
T2 2123 10 0 0
T3 17514 126 0 0
T7 19118 214 0 0
T8 4402 67 0 0
T9 4657 51 0 0
T10 9967 45 0 0
T11 2497 14 0 0
T12 42565 337 0 0
T13 35094 170 0 0

Line Coverage for Instance : tb.dut.u_sm1_30
Line No.TotalCoveredPercent
TOTAL2525100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN9611100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10511100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN10811100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16311100.00
CONT_ASSIGN16611100.00
CONT_ASSIGN21211100.00
CONT_ASSIGN21311100.00
CONT_ASSIGN23111100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN23811100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN24211100.00

95 assign reqid_sub = i; // can cause conversion error? 96 3/3 assign shifted_id = { Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  97 tl_h_i[i].a_source[0+:(IDW-STIDW)], 98 reqid_sub 99 }; 100 101 `ASSERT(idInRange, tl_h_i[i].a_valid |-> tl_h_i[i].a_source[IDW-1 -:STIDW] == '0) 102 103 // assign not connected bits to nc_* signal to make lint happy 104 logic [IDW-1 : IDW-STIDW] unused_tl_h_source; 105 3/3 assign unused_tl_h_source = tl_h_i[i].a_source[IDW-1 -: STIDW]; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  106 107 // Put shifted ID 108 3/3 assign hreq_fifo_i = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  109 a_valid: tl_h_i[i].a_valid, 110 a_opcode: tl_h_i[i].a_opcode, 111 a_param: tl_h_i[i].a_param, 112 a_size: tl_h_i[i].a_size, 113 a_source: shifted_id, 114 a_address: tl_h_i[i].a_address, 115 a_mask: tl_h_i[i].a_mask, 116 a_data: tl_h_i[i].a_data, 117 a_user: tl_h_i[i].a_user, 118 d_ready: tl_h_i[i].d_ready 119 }; 120 121 tlul_fifo_sync #( 122 .ReqPass (HReqPass[i]), 123 .RspPass (HRspPass[i]), 124 .ReqDepth (HReqDepth[i*4+:4]), 125 .RspDepth (HRspDepth[i*4+:4]), 126 .SpareReqW (1) 127 ) u_hostfifo ( 128 .clk_i, 129 .rst_ni, 130 .tl_h_i (hreq_fifo_i), 131 .tl_h_o (tl_h_o[i]), 132 .tl_d_o (hreq_fifo_o[i]), 133 .tl_d_i (hrsp_fifo_i[i]), 134 .spare_req_i (1'b0), 135 .spare_req_o (), 136 .spare_rsp_i (1'b0), 137 .spare_rsp_o () 138 ); 139 end 140 141 // Device Req/Rsp FIFO 142 tlul_fifo_sync #( 143 .ReqPass (DReqPass), 144 .RspPass (DRspPass), 145 .ReqDepth (DReqDepth), 146 .RspDepth (DRspDepth), 147 .SpareReqW (1) 148 ) u_devicefifo ( 149 .clk_i, 150 .rst_ni, 151 .tl_h_i (dreq_fifo_i), 152 .tl_h_o (drsp_fifo_o), 153 .tl_d_o (tl_d_o), 154 .tl_d_i (tl_d_i), 155 .spare_req_i (1'b0), 156 .spare_req_o (), 157 .spare_rsp_i (1'b0), 158 .spare_rsp_o () 159 ); 160 161 // Request Arbiter 162 for (genvar i = 0 ; i < M ; i++) begin : gen_arbreqgnt 163 3/3 assign hrequest[i] = hreq_fifo_o[i].a_valid; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  164 end 165 166 1/1 assign arb_ready = drsp_fifo_o.a_ready; Tests: T1 T2 T3  167 168 if (tlul_pkg::ArbiterImpl == "PPC") begin : gen_arb_ppc 169 prim_arbiter_ppc #( 170 .N (M), 171 .DW ($bits(tlul_pkg::tl_h2d_t)) 172 ) u_reqarb ( 173 .clk_i, 174 .rst_ni, 175 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 176 .req_i ( hrequest ), 177 .data_i ( hreq_fifo_o ), 178 .gnt_o ( hgrant ), 179 .idx_o ( ), 180 .valid_o ( arb_valid ), 181 .data_o ( arb_data ), 182 .ready_i ( arb_ready ) 183 ); 184 end else if (tlul_pkg::ArbiterImpl == "BINTREE") begin : gen_tree_arb 185 prim_arbiter_tree #( 186 .N (M), 187 .DW ($bits(tlul_pkg::tl_h2d_t)) 188 ) u_reqarb ( 189 .clk_i, 190 .rst_ni, 191 .req_chk_i ( 1'b0 ), // TL-UL allows dropping valid without ready. See #3354. 192 .req_i ( hrequest ), 193 .data_i ( hreq_fifo_o ), 194 .gnt_o ( hgrant ), 195 .idx_o ( ), 196 .valid_o ( arb_valid ), 197 .data_o ( arb_data ), 198 .ready_i ( arb_ready ) 199 ); 200 end else begin : gen_unknown 201 `ASSERT_INIT(UnknownArbImpl_A, 0) 202 end 203 204 logic [ M-1:0] hfifo_rspvalid; 205 logic [ M-1:0] dfifo_rspready; 206 logic [IDW-1:0] hfifo_rspid; 207 logic dfifo_rspready_merged; 208 209 // arb_data --> dreq_fifo_i 210 // dreq_fifo_i.hd_rspready <= dfifo_rspready 211 212 1/1 assign dfifo_rspready_merged = |dfifo_rspready; Tests: T1 T2 T3  213 1/1 assign dreq_fifo_i = '{ Tests: T1 T2 T3  214 a_valid: arb_valid, 215 a_opcode: arb_data.a_opcode, 216 a_param: arb_data.a_param, 217 a_size: arb_data.a_size, 218 a_source: arb_data.a_source, 219 a_address: arb_data.a_address, 220 a_mask: arb_data.a_mask, 221 a_data: arb_data.a_data, 222 a_user: arb_data.a_user, 223 224 d_ready: dfifo_rspready_merged 225 }; 226 227 // Response ID steering 228 // drsp_fifo_o --> hrsp_fifo_i[i] 229 230 // Response ID shifting before put into host fifo 231 1/1 assign hfifo_rspid = { Tests: T1 T2 T3  232 {STIDW{1'b0}}, 233 drsp_fifo_o.d_source[IDW-1:STIDW] 234 }; 235 for (genvar i = 0 ; i < M ; i++) begin : gen_idrouting 236 3/3 assign hfifo_rspvalid[i] = drsp_fifo_o.d_valid & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  237 (drsp_fifo_o.d_source[0+:STIDW] == i); 238 3/3 assign dfifo_rspready[i] = hreq_fifo_o[i].d_ready & Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  239 (drsp_fifo_o.d_source[0+:STIDW] == i) & 240 drsp_fifo_o.d_valid; 241 242 3/3 assign hrsp_fifo_i[i] = '{ Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_sm1_30
TotalCoveredPercent
Conditions3333100.00
Logical3333100.00
Non-Logical00
Event00

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 0))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT3,T8,T12
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 1))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT3,T8,T12
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       236
 EXPRESSION (drsp_fifo_o.d_valid & (drsp_fifo_o.d_source[0+:STIDW] == 2))
             ---------1---------   ------------------2------------------
-1--2-StatusTests
01CoveredT3,T8,T12
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       236
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T9
101CoveredT1,T2,T3
110CoveredT3,T8,T12
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 0)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T3,T8
101CoveredT1,T2,T3
110CoveredT3,T8,T12
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 1)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       238
 EXPRESSION (hreq_fifo_o[2].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 2) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110CoveredT3,T8,T12
111CoveredT1,T2,T3

 LINE       238
 SUB-EXPRESSION (drsp_fifo_o.d_source[0+:STIDW] == 2)
                ------------------1------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Assert Coverage for Instance : tb.dut.u_sm1_30
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 5 5 100.00 5 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 5 5 100.00 5 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 260875270 7354038 0 0
gen_host_fifo[1].idInRange 260875270 1367734 0 0
gen_host_fifo[2].idInRange 260875270 1369246 0 0
maxM 900 900 0 0
rspIdInRange 260875270 12176027 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 7354038 0 0
T1 11190 389 0 0
T2 2123 50 0 0
T3 17514 1178 0 0
T7 19118 1257 0 0
T8 4402 218 0 0
T9 4657 148 0 0
T10 9967 332 0 0
T11 2497 44 0 0
T12 42565 1584 0 0
T13 35094 1484 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 1367734 0 0
T1 11190 40 0 0
T2 2123 1 0 0
T3 17514 130 0 0
T7 19118 214 0 0
T8 4402 36 0 0
T9 4657 24 0 0
T10 9967 22 0 0
T11 2497 6 0 0
T12 42565 282 0 0
T13 35094 227 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 1369246 0 0
T1 11190 79 0 0
T2 2123 8 0 0
T3 17514 158 0 0
T7 19118 228 0 0
T8 4402 37 0 0
T9 4657 29 0 0
T10 9967 76 0 0
T11 2497 6 0 0
T12 42565 389 0 0
T13 35094 367 0 0

maxM
NameAttemptsReal SuccessesFailuresIncomplete
Total 900 900 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T7 1 1 0 0
T8 1 1 0 0
T9 1 1 0 0
T10 1 1 0 0
T11 1 1 0 0
T12 1 1 0 0
T13 1 1 0 0

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 260875270 12176027 0 0
T1 11190 368 0 0
T2 2123 59 0 0
T3 17514 877 0 0
T7 19118 1419 0 0
T8 4402 290 0 0
T9 4657 201 0 0
T10 9967 356 0 0
T11 2497 56 0 0
T12 42565 1864 0 0
T13 35094 861 0 0

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%