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.51 98.68 85.92 92.73 96.72


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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
92.86 98.68 85.07 92.59 95.08


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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
92.86 98.68 85.07 92.59 95.08


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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
96.90 100.00 93.62 100.00 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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
96.90 100.00 93.62 100.00 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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
96.90 100.00 93.62 100.00 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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
96.90 100.00 93.62 100.00 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.43 98.54 84.87 92.31 94.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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.78 100.00 98.39 100.00 96.72


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.70 100.00 100.00 98.80 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
01CoveredT13,T14,T25
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
01CoveredT13,T14,T25
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,T2,T3
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
011CoveredT2,T3,T7
101CoveredT1,T2,T3
110CoveredT13,T14,T25
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
110CoveredT13,T14,T25
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
011CoveredT2,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
011CoveredT2,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 21152258 0 0
gen_host_fifo[1].idInRange 2147483647 11566131 0 0
gen_host_fifo[2].idInRange 1704844872 3435321 0 0
maxM 21600 21600 0 0
rspIdInRange 2147483647 162265352 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 2147483647 21152258 0 0
T1 40296 343 0 0
T2 113256 688 0 0
T3 246720 637 0 0
T7 86016 335 0 0
T8 300984 6012 0 0
T9 422040 3673 0 0
T10 268488 12225 0 0
T11 73464 908 0 0
T12 1222824 8769 0 0
T13 9084432 11236 0 0
T14 0 119 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 2147483647 11566131 0 0
T1 40296 122 0 0
T2 113256 328 0 0
T3 246720 286 0 0
T7 86016 112 0 0
T8 300984 2831 0 0
T9 422040 1970 0 0
T10 268488 8279 0 0
T11 73464 484 0 0
T12 1222824 3722 0 0
T13 9084432 5938 0 0
T14 0 105 0 0
T24 0 2 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 1704844872 3435321 0 0
T1 6716 21 0 0
T2 18876 77 0 0
T3 41120 65 0 0
T7 14336 57 0 0
T8 50164 453 0 0
T9 70340 327 0 0
T10 44748 0 0 0
T11 12244 52 0 0
T12 203804 1310 0 0
T13 1514072 1883 0 0
T14 0 10 0 0
T24 0 14 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 162265352 0 0
T1 40296 445 0 0
T2 113256 1741 0 0
T3 246720 1457 0 0
T7 86016 1112 0 0
T8 300984 8021 0 0
T9 422040 5698 0 0
T10 268488 6069 0 0
T11 73464 1300 0 0
T12 1222824 13960 0 0
T13 9084432 49454 0 0
T14 0 182 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,T2,T3
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
011CoveredT2,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,T12,T21
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 426211218 1540982 0 0
gen_host_fifo[1].idInRange 426211218 358993 0 0
gen_host_fifo[2].idInRange 426211218 487690 0 0
maxM 900 900 0 0
rspIdInRange 426211218 19880333 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 1540982 0 0
T1 1679 49 0 0
T2 4719 37 0 0
T3 10280 80 0 0
T7 3584 29 0 0
T8 12541 719 0 0
T9 17585 471 0 0
T10 11187 472 0 0
T11 3061 126 0 0
T12 50951 799 0 0
T13 378518 891 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 358993 0 0
T1 1679 5 0 0
T2 4719 5 0 0
T3 10280 4 0 0
T7 3584 3 0 0
T8 12541 97 0 0
T9 17585 96 0 0
T10 11187 0 0 0
T11 3061 19 0 0
T12 50951 128 0 0
T13 378518 6 0 0
T14 0 7 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 487690 0 0
T1 1679 3 0 0
T2 4719 5 0 0
T3 10280 19 0 0
T7 3584 3 0 0
T8 12541 98 0 0
T9 17585 70 0 0
T10 11187 0 0 0
T11 3061 14 0 0
T12 50951 147 0 0
T13 378518 382 0 0
T14 0 5 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 426211218 19880333 0 0
T1 1679 57 0 0
T2 4719 258 0 0
T3 10280 167 0 0
T7 3584 101 0 0
T8 12541 895 0 0
T9 17585 634 0 0
T10 11187 472 0 0
T11 3061 159 0 0
T12 50951 1705 0 0
T13 378518 8407 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,T2,T3
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

 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
011CoveredT12,T26,T27
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 426211218 1716142 0 0
gen_host_fifo[1].idInRange 426211218 464334 0 0
gen_host_fifo[2].idInRange 426211218 553734 0 0
maxM 900 900 0 0
rspIdInRange 426211218 18499253 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 1716142 0 0
T1 1679 38 0 0
T2 4719 89 0 0
T3 10280 101 0 0
T7 3584 15 0 0
T8 12541 966 0 0
T9 17585 531 0 0
T10 11187 628 0 0
T11 3061 132 0 0
T12 50951 814 0 0
T13 378518 502 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 464334 0 0
T1 1679 4 0 0
T2 4719 7 0 0
T3 10280 4 0 0
T7 3584 2 0 0
T8 12541 141 0 0
T9 17585 91 0 0
T10 11187 0 0 0
T11 3061 22 0 0
T12 50951 126 0 0
T13 378518 3 0 0
T14 0 1 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 553734 0 0
T1 1679 6 0 0
T2 4719 25 0 0
T3 10280 3 0 0
T7 3584 2 0 0
T8 12541 123 0 0
T9 17585 97 0 0
T10 11187 0 0 0
T11 3061 14 0 0
T12 50951 152 0 0
T13 378518 1 0 0
T24 0 5 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 426211218 18499253 0 0
T1 1679 44 0 0
T2 4719 376 0 0
T3 10280 160 0 0
T7 3584 124 0 0
T8 12541 938 0 0
T9 17585 690 0 0
T10 11187 489 0 0
T11 3061 143 0 0
T12 50951 1729 0 0
T13 378518 9786 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,T2,T3
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
011CoveredT2,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
011CoveredT2,T12,T28
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 426211218 1680999 0 0
gen_host_fifo[1].idInRange 426211218 431287 0 0
gen_host_fifo[2].idInRange 426211218 554348 0 0
maxM 900 900 0 0
rspIdInRange 426211218 20270074 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 1680999 0 0
T1 1679 68 0 0
T2 4719 79 0 0
T3 10280 35 0 0
T7 3584 33 0 0
T8 12541 906 0 0
T9 17585 505 0 0
T10 11187 637 0 0
T11 3061 144 0 0
T12 50951 948 0 0
T13 378518 535 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 431287 0 0
T1 1679 16 0 0
T2 4719 2 0 0
T3 10280 5 0 0
T7 3584 2 0 0
T8 12541 153 0 0
T9 17585 75 0 0
T10 11187 0 0 0
T11 3061 28 0 0
T12 50951 162 0 0
T13 378518 10 0 0
T14 0 11 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 554348 0 0
T1 1679 9 0 0
T2 4719 13 0 0
T3 10280 4 0 0
T7 3584 5 0 0
T8 12541 107 0 0
T9 17585 83 0 0
T10 11187 0 0 0
T11 3061 16 0 0
T12 50951 236 0 0
T13 378518 275 0 0
T24 0 9 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 426211218 20270074 0 0
T1 1679 75 0 0
T2 4719 322 0 0
T3 10280 136 0 0
T7 3584 116 0 0
T8 12541 895 0 0
T9 17585 643 0 0
T10 11187 488 0 0
T11 3061 153 0 0
T12 50951 1808 0 0
T13 378518 12502 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
011CoveredT2,T3,T7
101CoveredT1,T2,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
011CoveredT2,T12,T26
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 426211218 265786 0 0
gen_host_fifo[1].idInRange 426211218 364486 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4005990 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 265786 0 0
T1 1679 4 0 0
T2 4719 4 0 0
T3 10280 6 0 0
T7 3584 2 0 0
T8 12541 118 0 0
T9 17585 90 0 0
T10 11187 0 0 0
T11 3061 26 0 0
T12 50951 128 0 0
T13 378518 8 0 0
T14 0 7 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 364486 0 0
T1 1679 2 0 0
T2 4719 23 0 0
T3 10280 3 0 0
T7 3584 6 0 0
T8 12541 120 0 0
T9 17585 79 0 0
T10 11187 0 0 0
T11 3061 19 0 0
T12 50951 139 0 0
T13 378518 2 0 0
T14 0 6 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 426211218 4005990 0 0
T1 1679 6 0 0
T2 4719 12 0 0
T3 10280 30 0 0
T7 3584 19 0 0
T8 12541 221 0 0
T9 17585 166 0 0
T10 11187 0 0 0
T11 3061 43 0 0
T12 50951 372 0 0
T13 378518 1408 0 0
T14 0 13 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
011CoveredT2,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
011CoveredT12,T26,T29
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 426211218 282788 0 0
gen_host_fifo[1].idInRange 426211218 375917 0 0
maxM 900 900 0 0
rspIdInRange 426211218 3637541 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 282788 0 0
T1 1679 9 0 0
T2 4719 11 0 0
T3 10280 11 0 0
T7 3584 6 0 0
T8 12541 109 0 0
T9 17585 65 0 0
T10 11187 853 0 0
T11 3061 17 0 0
T12 50951 88 0 0
T13 378518 4 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 375917 0 0
T1 1679 5 0 0
T2 4719 6 0 0
T3 10280 28 0 0
T7 3584 4 0 0
T8 12541 128 0 0
T9 17585 76 0 0
T10 11187 709 0 0
T11 3061 20 0 0
T12 50951 148 0 0
T13 378518 4 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 426211218 3637541 0 0
T1 1679 13 0 0
T2 4719 25 0 0
T3 10280 49 0 0
T7 3584 55 0 0
T8 12541 219 0 0
T9 17585 141 0 0
T10 11187 496 0 0
T11 3061 36 0 0
T12 50951 305 0 0
T13 378518 8 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
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
011CoveredT2,T12,T21
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 426211218 526875 0 0
gen_host_fifo[1].idInRange 426211218 652623 0 0
maxM 900 900 0 0
rspIdInRange 426211218 3906687 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 526875 0 0
T1 1679 8 0 0
T2 4719 4 0 0
T3 10280 3 0 0
T7 3584 2 0 0
T8 12541 168 0 0
T9 17585 92 0 0
T10 11187 0 0 0
T11 3061 25 0 0
T12 50951 129 0 0
T13 378518 7 0 0
T14 0 5 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 652623 0 0
T1 1679 4 0 0
T2 4719 24 0 0
T3 10280 27 0 0
T7 3584 4 0 0
T8 12541 141 0 0
T9 17585 87 0 0
T10 11187 0 0 0
T11 3061 32 0 0
T12 50951 144 0 0
T13 378518 6 0 0
T14 0 6 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 426211218 3906687 0 0
T1 1679 12 0 0
T2 4719 18 0 0
T3 10280 36 0 0
T7 3584 8 0 0
T8 12541 210 0 0
T9 17585 156 0 0
T10 11187 0 0 0
T11 3061 39 0 0
T12 50951 388 0 0
T13 378518 160 0 0
T14 0 11 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
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
011CoveredT2,T27,T30
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 426211218 662206 0 0
gen_host_fifo[1].idInRange 426211218 805280 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4381181 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 662206 0 0
T1 1679 4 0 0
T2 4719 14 0 0
T3 10280 26 0 0
T7 3584 1 0 0
T8 12541 162 0 0
T9 17585 96 0 0
T10 11187 0 0 0
T11 3061 12 0 0
T12 50951 263 0 0
T13 378518 7 0 0
T14 0 6 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 805280 0 0
T1 1679 5 0 0
T2 4719 2 0 0
T3 10280 9 0 0
T7 3584 1 0 0
T8 12541 133 0 0
T9 17585 110 0 0
T10 11187 0 0 0
T11 3061 18 0 0
T12 50951 234 0 0
T13 378518 90 0 0
T14 0 6 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 426211218 4381181 0 0
T1 1679 9 0 0
T2 4719 13 0 0
T3 10280 90 0 0
T7 3584 2 0 0
T8 12541 197 0 0
T9 17585 155 0 0
T10 11187 0 0 0
T11 3061 25 0 0
T12 50951 288 0 0
T13 378518 773 0 0
T14 0 12 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
011CoveredT2,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
011CoveredT2,T12,T26
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 426211218 550384 0 0
gen_host_fifo[1].idInRange 426211218 646122 0 0
maxM 900 900 0 0
rspIdInRange 426211218 3578690 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 550384 0 0
T1 1679 4 0 0
T2 4719 5 0 0
T3 10280 5 0 0
T7 3584 22 0 0
T8 12541 142 0 0
T9 17585 120 0 0
T10 11187 0 0 0
T11 3061 7 0 0
T12 50951 86 0 0
T13 378518 8 0 0
T14 0 3 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 646122 0 0
T1 1679 4 0 0
T2 4719 19 0 0
T3 10280 4 0 0
T7 3584 4 0 0
T8 12541 153 0 0
T9 17585 135 0 0
T10 11187 0 0 0
T11 3061 32 0 0
T12 50951 102 0 0
T13 378518 2 0 0
T14 0 8 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 426211218 3578690 0 0
T1 1679 8 0 0
T2 4719 21 0 0
T3 10280 24 0 0
T7 3584 48 0 0
T8 12541 214 0 0
T9 17585 175 0 0
T10 11187 0 0 0
T11 3061 29 0 0
T12 50951 434 0 0
T13 378518 422 0 0
T14 0 11 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: 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_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
011CoveredT3,T7,T12
101CoveredT1,T2,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
011CoveredT12,T28,T27
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_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 426211218 613635 0 0
gen_host_fifo[1].idInRange 426211218 739454 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4807775 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 613635 0 0
T1 1679 20 0 0
T2 4719 4 0 0
T3 10280 3 0 0
T7 3584 6 0 0
T8 12541 252 0 0
T9 17585 102 0 0
T10 11187 2919 0 0
T11 3061 29 0 0
T12 50951 108 0 0
T13 378518 4 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 739454 0 0
T1 1679 2 0 0
T2 4719 9 0 0
T3 10280 4 0 0
T7 3584 2 0 0
T8 12541 129 0 0
T9 17585 93 0 0
T10 11187 2947 0 0
T11 3061 29 0 0
T12 50951 106 0 0
T13 378518 5 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 426211218 4807775 0 0
T1 1679 13 0 0
T2 4719 13 0 0
T3 10280 14 0 0
T7 3584 20 0 0
T8 12541 221 0 0
T9 17585 160 0 0
T10 11187 448 0 0
T11 3061 41 0 0
T12 50951 278 0 0
T13 378518 31 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
011CoveredT2,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
011CoveredT12,T26,T21
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 426211218 284816 0 0
gen_host_fifo[1].idInRange 426211218 367582 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4711609 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 284816 0 0
T1 1679 9 0 0
T2 4719 6 0 0
T3 10280 1 0 0
T7 3584 2 0 0
T8 12541 141 0 0
T9 17585 91 0 0
T10 11187 0 0 0
T11 3061 11 0 0
T12 50951 146 0 0
T13 378518 3 0 0
T14 0 5 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 367582 0 0
T1 1679 2 0 0
T2 4719 5 0 0
T3 10280 24 0 0
T7 3584 5 0 0
T8 12541 95 0 0
T9 17585 80 0 0
T10 11187 0 0 0
T11 3061 24 0 0
T12 50951 125 0 0
T13 378518 510 0 0
T14 0 5 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 426211218 4711609 0 0
T1 1679 11 0 0
T2 4719 12 0 0
T3 10280 16 0 0
T7 3584 17 0 0
T8 12541 222 0 0
T9 17585 169 0 0
T10 11187 0 0 0
T11 3061 35 0 0
T12 50951 423 0 0
T13 378518 43 0 0
T14 0 10 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
011CoveredT2,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
011CoveredT2,T3,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_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 426211218 265996 0 0
gen_host_fifo[1].idInRange 426211218 352223 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4206714 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 265996 0 0
T1 1679 8 0 0
T2 4719 3 0 0
T3 10280 9 0 0
T7 3584 2 0 0
T8 12541 98 0 0
T9 17585 83 0 0
T10 11187 0 0 0
T11 3061 19 0 0
T12 50951 123 0 0
T13 378518 7 0 0
T14 0 7 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 352223 0 0
T1 1679 7 0 0
T2 4719 16 0 0
T3 10280 21 0 0
T7 3584 1 0 0
T8 12541 115 0 0
T9 17585 90 0 0
T10 11187 0 0 0
T11 3061 12 0 0
T12 50951 184 0 0
T13 378518 69 0 0
T14 0 3 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 426211218 4206714 0 0
T1 1679 14 0 0
T2 4719 18 0 0
T3 10280 28 0 0
T7 3584 20 0 0
T8 12541 198 0 0
T9 17585 171 0 0
T10 11187 0 0 0
T11 3061 27 0 0
T12 50951 357 0 0
T13 378518 35 0 0
T14 0 10 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
011CoveredT3,T7,T12
101CoveredT1,T2,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,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_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 426211218 262066 0 0
gen_host_fifo[1].idInRange 426211218 351080 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4530493 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 262066 0 0
T1 1679 5 0 0
T2 4719 5 0 0
T3 10280 6 0 0
T7 3584 6 0 0
T8 12541 102 0 0
T9 17585 73 0 0
T10 11187 0 0 0
T11 3061 18 0 0
T12 50951 141 0 0
T13 378518 7 0 0
T14 0 2 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 351080 0 0
T1 1679 3 0 0
T2 4719 5 0 0
T3 10280 24 0 0
T7 3584 5 0 0
T8 12541 87 0 0
T9 17585 66 0 0
T10 11187 0 0 0
T11 3061 14 0 0
T12 50951 124 0 0
T13 378518 89 0 0
T14 0 6 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 426211218 4530493 0 0
T1 1679 7 0 0
T2 4719 10 0 0
T3 10280 36 0 0
T7 3584 59 0 0
T8 12541 182 0 0
T9 17585 137 0 0
T10 11187 0 0 0
T11 3061 31 0 0
T12 50951 322 0 0
T13 378518 396 0 0
T14 0 8 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
011CoveredT3,T7,T12
101CoveredT1,T2,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
011CoveredT12,T21,T27
101CoveredT1,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_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 426211218 265481 0 0
gen_host_fifo[1].idInRange 426211218 349828 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4213849 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 265481 0 0
T1 1679 10 0 0
T2 4719 1 0 0
T3 10280 5 0 0
T7 3584 5 0 0
T8 12541 127 0 0
T9 17585 78 0 0
T10 11187 2112 0 0
T11 3061 21 0 0
T12 50951 106 0 0
T13 378518 11 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 349828 0 0
T1 1679 3 0 0
T2 4719 2 0 0
T3 10280 2 0 0
T7 3584 0 0 0
T8 12541 146 0 0
T9 17585 79 0 0
T10 11187 1449 0 0
T11 3061 12 0 0
T12 50951 144 0 0
T13 378518 3 0 0
T14 0 7 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 426211218 4213849 0 0
T1 1679 12 0 0
T2 4719 3 0 0
T3 10280 46 0 0
T7 3584 32 0 0
T8 12541 264 0 0
T9 17585 156 0 0
T10 11187 1061 0 0
T11 3061 32 0 0
T12 50951 376 0 0
T13 378518 647 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
011CoveredT2,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
011CoveredT12,T26,T21
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 426211218 300541 0 0
gen_host_fifo[1].idInRange 426211218 392272 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4390612 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 300541 0 0
T1 1679 12 0 0
T2 4719 3 0 0
T3 10280 5 0 0
T7 3584 2 0 0
T8 12541 127 0 0
T9 17585 59 0 0
T10 11187 0 0 0
T11 3061 32 0 0
T12 50951 122 0 0
T13 378518 4 0 0
T14 0 7 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 392272 0 0
T1 1679 6 0 0
T2 4719 44 0 0
T3 10280 5 0 0
T7 3584 0 0 0
T8 12541 102 0 0
T9 17585 76 0 0
T10 11187 0 0 0
T11 3061 15 0 0
T12 50951 70 0 0
T13 378518 4 0 0
T14 0 2 0 0
T24 0 2 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 426211218 4390612 0 0
T1 1679 15 0 0
T2 4719 14 0 0
T3 10280 42 0 0
T7 3584 14 0 0
T8 12541 214 0 0
T9 17585 131 0 0
T10 11187 0 0 0
T11 3061 44 0 0
T12 50951 314 0 0
T13 378518 8 0 0
T14 0 9 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
011CoveredT2,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
011CoveredT2,T12,T26
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 426211218 295793 0 0
gen_host_fifo[1].idInRange 426211218 394023 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4848327 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 295793 0 0
T1 1679 5 0 0
T2 4719 4 0 0
T3 10280 7 0 0
T7 3584 7 0 0
T8 12541 110 0 0
T9 17585 78 0 0
T10 11187 0 0 0
T11 3061 20 0 0
T12 50951 82 0 0
T13 378518 163 0 0
T14 0 15 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 394023 0 0
T1 1679 5 0 0
T2 4719 6 0 0
T3 10280 6 0 0
T7 3584 3 0 0
T8 12541 107 0 0
T9 17585 58 0 0
T10 11187 0 0 0
T11 3061 20 0 0
T12 50951 139 0 0
T13 378518 2 0 0
T14 0 5 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 426211218 4848327 0 0
T1 1679 10 0 0
T2 4719 15 0 0
T3 10280 35 0 0
T7 3584 37 0 0
T8 12541 206 0 0
T9 17585 136 0 0
T10 11187 0 0 0
T11 3061 39 0 0
T12 50951 336 0 0
T13 378518 880 0 0
T14 0 17 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
011CoveredT2,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
011CoveredT12,T26,T27
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 426211218 230895 0 0
gen_host_fifo[1].idInRange 426211218 300744 0 0
maxM 900 900 0 0
rspIdInRange 426211218 3430120 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 230895 0 0
T1 1679 4 0 0
T2 4719 5 0 0
T3 10280 7 0 0
T7 3584 4 0 0
T8 12541 134 0 0
T9 17585 81 0 0
T10 11187 0 0 0
T11 3061 21 0 0
T12 50951 101 0 0
T13 378518 6 0 0
T14 0 5 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 300744 0 0
T1 1679 6 0 0
T2 4719 3 0 0
T3 10280 19 0 0
T7 3584 2 0 0
T8 12541 91 0 0
T9 17585 85 0 0
T10 11187 0 0 0
T11 3061 16 0 0
T12 50951 142 0 0
T13 378518 3 0 0
T14 0 4 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 426211218 3430120 0 0
T1 1679 10 0 0
T2 4719 28 0 0
T3 10280 86 0 0
T7 3584 27 0 0
T8 12541 210 0 0
T9 17585 165 0 0
T10 11187 0 0 0
T11 3061 34 0 0
T12 50951 333 0 0
T13 378518 282 0 0
T14 0 9 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
011CoveredT2,T3,T7
101CoveredT1,T2,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
011CoveredT12,T26,T29
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 426211218 246009 0 0
gen_host_fifo[1].idInRange 426211218 340430 0 0
maxM 900 900 0 0
rspIdInRange 426211218 3937452 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 246009 0 0
T1 1679 6 0 0
T2 4719 5 0 0
T3 10280 2 0 0
T7 3584 1 0 0
T8 12541 125 0 0
T9 17585 80 0 0
T10 11187 0 0 0
T11 3061 19 0 0
T12 50951 83 0 0
T13 378518 9 0 0
T14 0 21 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 340430 0 0
T1 1679 6 0 0
T2 4719 3 0 0
T3 10280 6 0 0
T7 3584 3 0 0
T8 12541 80 0 0
T9 17585 62 0 0
T10 11187 0 0 0
T11 3061 18 0 0
T12 50951 130 0 0
T13 378518 4 0 0
T14 0 4 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 426211218 3937452 0 0
T1 1679 12 0 0
T2 4719 12 0 0
T3 10280 15 0 0
T7 3584 14 0 0
T8 12541 188 0 0
T9 17585 140 0 0
T10 11187 0 0 0
T11 3061 37 0 0
T12 50951 265 0 0
T13 378518 13 0 0
T14 0 20 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
011CoveredT2,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
011CoveredT7,T12,T27
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 426211218 304436 0 0
gen_host_fifo[1].idInRange 426211218 401854 0 0
maxM 900 900 0 0
rspIdInRange 426211218 5510748 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 304436 0 0
T1 1679 4 0 0
T2 4719 7 0 0
T3 10280 3 0 0
T7 3584 5 0 0
T8 12541 120 0 0
T9 17585 88 0 0
T10 11187 4135 0 0
T11 3061 29 0 0
T12 50951 122 0 0
T13 378518 8 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 401854 0 0
T1 1679 1 0 0
T2 4719 5 0 0
T3 10280 11 0 0
T7 3584 22 0 0
T8 12541 112 0 0
T9 17585 81 0 0
T10 11187 3174 0 0
T11 3061 28 0 0
T12 50951 106 0 0
T13 378518 4 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 426211218 5510748 0 0
T1 1679 5 0 0
T2 4719 35 0 0
T3 10280 16 0 0
T7 3584 54 0 0
T8 12541 218 0 0
T9 17585 168 0 0
T10 11187 2146 0 0
T11 3061 53 0 0
T12 50951 322 0 0
T13 378518 74 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
011CoveredT2,T7,T12
101CoveredT1,T2,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
011CoveredT12,T13,T26
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 426211218 267519 0 0
gen_host_fifo[1].idInRange 426211218 351509 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4654550 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 267519 0 0
T1 1679 6 0 0
T2 4719 3 0 0
T3 10280 1 0 0
T7 3584 6 0 0
T8 12541 127 0 0
T9 17585 87 0 0
T10 11187 0 0 0
T11 3061 23 0 0
T12 50951 77 0 0
T13 378518 10 0 0
T14 0 7 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 351509 0 0
T1 1679 4 0 0
T2 4719 2 0 0
T3 10280 17 0 0
T7 3584 1 0 0
T8 12541 137 0 0
T9 17585 72 0 0
T10 11187 0 0 0
T11 3061 24 0 0
T12 50951 132 0 0
T13 378518 3 0 0
T14 0 5 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 426211218 4654550 0 0
T1 1679 9 0 0
T2 4719 11 0 0
T3 10280 11 0 0
T7 3584 43 0 0
T8 12541 246 0 0
T9 17585 158 0 0
T10 11187 0 0 0
T11 3061 43 0 0
T12 50951 312 0 0
T13 378518 1027 0 0
T14 0 11 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
011CoveredT2,T3,T7
101CoveredT1,T2,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
011CoveredT27,T31,T32
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 426211218 254095 0 0
gen_host_fifo[1].idInRange 426211218 345074 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4068714 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 254095 0 0
T1 1679 6 0 0
T2 4719 9 0 0
T3 10280 3 0 0
T7 3584 2 0 0
T8 12541 123 0 0
T9 17585 93 0 0
T10 11187 0 0 0
T11 3061 23 0 0
T12 50951 114 0 0
T13 378518 11 0 0
T14 0 9 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 345074 0 0
T1 1679 6 0 0
T2 4719 8 0 0
T3 10280 2 0 0
T7 3584 1 0 0
T8 12541 110 0 0
T9 17585 77 0 0
T10 11187 0 0 0
T11 3061 14 0 0
T12 50951 93 0 0
T13 378518 8 0 0
T14 0 2 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 426211218 4068714 0 0
T1 1679 12 0 0
T2 4719 19 0 0
T3 10280 30 0 0
T7 3584 6 0 0
T8 12541 216 0 0
T9 17585 169 0 0
T10 11187 0 0 0
T11 3061 32 0 0
T12 50951 299 0 0
T13 378518 195 0 0
T14 0 10 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
011CoveredT2,T3,T7
101CoveredT1,T2,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
011CoveredT12,T27,T33
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 426211218 226874 0 0
gen_host_fifo[1].idInRange 426211218 304579 0 0
maxM 900 900 0 0
rspIdInRange 426211218 3887684 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 226874 0 0
T1 1679 7 0 0
T2 4719 23 0 0
T3 10280 6 0 0
T7 3584 4 0 0
T8 12541 135 0 0
T9 17585 77 0 0
T10 11187 0 0 0
T11 3061 31 0 0
T12 50951 102 0 0
T13 378518 6 0 0
T14 0 7 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 304579 0 0
T1 1679 8 0 0
T2 4719 4 0 0
T3 10280 5 0 0
T7 3584 3 0 0
T8 12541 114 0 0
T9 17585 92 0 0
T10 11187 0 0 0
T11 3061 19 0 0
T12 50951 144 0 0
T13 378518 782 0 0
T14 0 7 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 426211218 3887684 0 0
T1 1679 15 0 0
T2 4719 14 0 0
T3 10280 58 0 0
T7 3584 46 0 0
T8 12541 232 0 0
T9 17585 169 0 0
T10 11187 0 0 0
T11 3061 47 0 0
T12 50951 322 0 0
T13 378518 913 0 0
T14 0 12 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
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
011CoveredT2,T12,T26
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 426211218 251969 0 0
gen_host_fifo[1].idInRange 426211218 345465 0 0
maxM 900 900 0 0
rspIdInRange 426211218 4133758 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 251969 0 0
T1 1679 9 0 0
T2 4719 5 0 0
T3 10280 4 0 0
T7 3584 2 0 0
T8 12541 125 0 0
T9 17585 84 0 0
T10 11187 0 0 0
T11 3061 16 0 0
T12 50951 145 0 0
T13 378518 11 0 0
T14 0 8 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 345465 0 0
T1 1679 1 0 0
T2 4719 18 0 0
T3 10280 8 0 0
T7 3584 2 0 0
T8 12541 113 0 0
T9 17585 49 0 0
T10 11187 0 0 0
T11 3061 25 0 0
T12 50951 153 0 0
T13 378518 3 0 0
T14 0 3 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 426211218 4133758 0 0
T1 1679 10 0 0
T2 4719 22 0 0
T3 10280 48 0 0
T7 3584 12 0 0
T8 12541 225 0 0
T9 17585 133 0 0
T10 11187 0 0 0
T11 3061 40 0 0
T12 50951 397 0 0
T13 378518 1252 0 0
T14 0 10 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
011CoveredT2,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
011CoveredT2,T12,T26
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 426211218 263240 0 0
gen_host_fifo[1].idInRange 426211218 342412 0 0
maxM 900 900 0 0
rspIdInRange 426211218 3552241 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 263240 0 0
T1 1679 10 0 0
T2 4719 1 0 0
T3 10280 8 0 0
T7 3584 2 0 0
T8 12541 156 0 0
T9 17585 94 0 0
T10 11187 0 0 0
T11 3061 14 0 0
T12 50951 101 0 0
T13 378518 6 0 0
T14 0 5 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 342412 0 0
T1 1679 8 0 0
T2 4719 6 0 0
T3 10280 8 0 0
T7 3584 19 0 0
T8 12541 118 0 0
T9 17585 69 0 0
T10 11187 0 0 0
T11 3061 12 0 0
T12 50951 113 0 0
T13 378518 3 0 0
T14 0 4 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 426211218 3552241 0 0
T1 1679 16 0 0
T2 4719 15 0 0
T3 10280 50 0 0
T7 3584 14 0 0
T8 12541 250 0 0
T9 17585 161 0 0
T10 11187 0 0 0
T11 3061 26 0 0
T12 50951 279 0 0
T13 378518 9 0 0
T14 0 9 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
01CoveredT13,T14,T25
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
01CoveredT13,T14,T25
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
01CoveredT13,T14,T25
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,T2,T3
101CoveredT1,T2,T3
110CoveredT13,T14,T25
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
011CoveredT2,T3,T7
101CoveredT1,T2,T3
110CoveredT13,T14,T25
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
110CoveredT13,T14,T25
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 426211218 9592731 0 0
gen_host_fifo[1].idInRange 426211218 1788560 0 0
gen_host_fifo[2].idInRange 426211218 1839549 0 0
maxM 900 900 0 0
rspIdInRange 426211218 19220957 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 9592731 0 0
T1 1679 38 0 0
T2 4719 361 0 0
T3 10280 300 0 0
T7 3584 169 0 0
T8 12541 720 0 0
T9 17585 455 0 0
T10 11187 469 0 0
T11 3061 93 0 0
T12 50951 3841 0 0
T13 378518 9008 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 1788560 0 0
T1 1679 9 0 0
T2 4719 104 0 0
T3 10280 40 0 0
T7 3584 17 0 0
T8 12541 109 0 0
T9 17585 92 0 0
T10 11187 0 0 0
T11 3061 12 0 0
T12 50951 634 0 0
T13 378518 4323 0 0
T14 0 3 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 426211218 1839549 0 0
T1 1679 3 0 0
T2 4719 34 0 0
T3 10280 39 0 0
T7 3584 47 0 0
T8 12541 125 0 0
T9 17585 77 0 0
T10 11187 0 0 0
T11 3061 8 0 0
T12 50951 775 0 0
T13 378518 1225 0 0
T14 0 5 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 426211218 19220957 0 0
T1 1679 50 0 0
T2 4719 455 0 0
T3 10280 234 0 0
T7 3584 224 0 0
T8 12541 940 0 0
T9 17585 615 0 0
T10 11187 469 0 0
T11 3061 112 0 0
T12 50951 1996 0 0
T13 378518 10183 0 0

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