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
01CoveredT2,T9,T12
10CoveredT1,T2,T3
11CoveredT1,T2,T3

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

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

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

 LINE       238
 EXPRESSION (hreq_fifo_o[0].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 0) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
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
110CoveredT2,T9,T12
111CoveredT1,T2,T3

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

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

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

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

SCORECOND
96.97 90.91
tb.dut.u_sm1_34

SCORECOND
96.97 90.91
tb.dut.u_sm1_43

SCORECOND
96.97 90.91
tb.dut.u_sm1_44

SCORECOND
96.97 90.91
tb.dut.u_sm1_45

SCORECOND
96.97 90.91
tb.dut.u_sm1_46

SCORECOND
96.97 90.91
tb.dut.u_sm1_47

SCORECOND
96.97 90.91
tb.dut.u_sm1_48

SCORECOND
96.97 90.91
tb.dut.u_sm1_49

SCORECOND
96.97 90.91
tb.dut.u_sm1_50

SCORECOND
96.97 90.91
tb.dut.u_sm1_51

SCORECOND
96.97 90.91
tb.dut.u_sm1_52

SCORECOND
96.97 90.91
tb.dut.u_sm1_53

SCORECOND
96.97 90.91
tb.dut.u_sm1_54

SCORECOND
96.97 90.91
tb.dut.u_sm1_55

SCORECOND
96.97 90.91
tb.dut.u_sm1_56

SCORECOND
96.97 90.91
tb.dut.u_sm1_36

SCORECOND
96.97 90.91
tb.dut.u_sm1_38

SCORECOND
96.97 90.91
tb.dut.u_sm1_40

SCORECOND
96.97 90.91
tb.dut.u_sm1_42

TotalCoveredPercent
Conditions222090.91
Logical222090.91
Non-Logical00
Event00

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

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

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

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

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

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

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
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 22958599 0 0
gen_host_fifo[1].idInRange 2147483647 12841202 0 0
gen_host_fifo[2].idInRange 1720871224 3784476 0 0
maxM 21600 21600 0 0
rspIdInRange 2147483647 163916995 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 2147483647 22958599 0 0
T1 49704 300 0 0
T2 316728 635 0 0
T3 84576 606 0 0
T7 320856 745 0 0
T8 94680 4081 0 0
T9 48144 287 0 0
T10 33864 279 0 0
T11 659880 4711 0 0
T12 434448 5652 0 0
T13 99504 381 0 0
T14 0 1482 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 2147483647 12841202 0 0
T1 49704 169 0 0
T2 316728 169 0 0
T3 84576 232 0 0
T7 320856 326 0 0
T8 94680 2998 0 0
T9 48144 176 0 0
T10 33864 138 0 0
T11 659880 2472 0 0
T12 434448 3384 0 0
T13 99504 201 0 0
T14 0 2640 0 0
T25 0 2 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 1720871224 3784476 0 0
T1 8284 32 0 0
T2 52788 72 0 0
T3 14096 66 0 0
T7 53476 68 0 0
T8 15780 1419 0 0
T9 8024 32 0 0
T10 5644 22 0 0
T11 109980 754 0 0
T12 72408 498 0 0
T13 16584 149 0 0
T14 0 760 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 163916995 0 0
T1 49704 445 0 0
T2 316728 1119 0 0
T3 84576 1348 0 0
T7 320856 2770 0 0
T8 94680 2318 0 0
T9 48144 440 0 0
T10 33864 395 0 0
T11 659880 7136 0 0
T12 434448 7488 0 0
T13 99504 1720 0 0
T14 0 9294 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
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,T7,T10
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

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

 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,T13,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_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 430217806 1673604 0 0
gen_host_fifo[1].idInRange 430217806 435108 0 0
gen_host_fifo[2].idInRange 430217806 559926 0 0
maxM 900 900 0 0
rspIdInRange 430217806 18969948 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 1673604 0 0
T1 2071 22 0 0
T2 13197 48 0 0
T3 3524 60 0 0
T7 13369 53 0 0
T8 3945 125 0 0
T9 2006 17 0 0
T10 1411 40 0 0
T11 27495 541 0 0
T12 18102 613 0 0
T13 4146 33 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 435108 0 0
T1 2071 8 0 0
T2 13197 6 0 0
T3 3524 17 0 0
T7 13369 20 0 0
T8 3945 0 0 0
T9 2006 8 0 0
T10 1411 9 0 0
T11 27495 73 0 0
T12 18102 105 0 0
T13 4146 6 0 0
T14 0 84 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 559926 0 0
T1 2071 16 0 0
T2 13197 2 0 0
T3 3524 6 0 0
T7 13369 3 0 0
T8 3945 0 0 0
T9 2006 6 0 0
T10 1411 6 0 0
T11 27495 160 0 0
T12 18102 123 0 0
T13 4146 13 0 0
T14 0 106 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 430217806 18969948 0 0
T1 2071 46 0 0
T2 13197 144 0 0
T3 3524 261 0 0
T7 13369 390 0 0
T8 3945 125 0 0
T9 2006 31 0 0
T10 1411 55 0 0
T11 27495 949 0 0
T12 18102 829 0 0
T13 4146 185 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
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

 LINE       238
 EXPRESSION (hreq_fifo_o[2].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 2) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT3,T7,T11
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 430217806 1940553 0 0
gen_host_fifo[1].idInRange 430217806 574711 0 0
gen_host_fifo[2].idInRange 430217806 693839 0 0
maxM 900 900 0 0
rspIdInRange 430217806 19004217 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 1940553 0 0
T1 2071 55 0 0
T2 13197 48 0 0
T3 3524 79 0 0
T7 13369 37 0 0
T8 3945 119 0 0
T9 2006 37 0 0
T10 1411 63 0 0
T11 27495 364 0 0
T12 18102 799 0 0
T13 4146 77 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 574711 0 0
T1 2071 10 0 0
T2 13197 10 0 0
T3 3524 5 0 0
T7 13369 3 0 0
T8 3945 0 0 0
T9 2006 9 0 0
T10 1411 10 0 0
T11 27495 106 0 0
T12 18102 100 0 0
T13 4146 7 0 0
T14 0 77 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 693839 0 0
T1 2071 6 0 0
T2 13197 5 0 0
T3 3524 9 0 0
T7 13369 14 0 0
T8 3945 0 0 0
T9 2006 4 0 0
T10 1411 4 0 0
T11 27495 138 0 0
T12 18102 139 0 0
T13 4146 78 0 0
T14 0 117 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 430217806 19004217 0 0
T1 2071 55 0 0
T2 13197 131 0 0
T3 3524 315 0 0
T7 13369 313 0 0
T8 3945 100 0 0
T9 2006 41 0 0
T10 1411 61 0 0
T11 27495 816 0 0
T12 18102 817 0 0
T13 4146 203 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
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

 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,T7,T29
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 430217806 1806676 0 0
gen_host_fifo[1].idInRange 430217806 451728 0 0
gen_host_fifo[2].idInRange 430217806 576577 0 0
maxM 900 900 0 0
rspIdInRange 430217806 18393395 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 1806676 0 0
T1 2071 42 0 0
T2 13197 37 0 0
T3 3524 52 0 0
T7 13369 56 0 0
T8 3945 1852 0 0
T9 2006 50 0 0
T10 1411 53 0 0
T11 27495 527 0 0
T12 18102 783 0 0
T13 4146 33 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 451728 0 0
T1 2071 6 0 0
T2 13197 10 0 0
T3 3524 5 0 0
T7 13369 2 0 0
T8 3945 1693 0 0
T9 2006 4 0 0
T10 1411 1 0 0
T11 27495 108 0 0
T12 18102 118 0 0
T13 4146 26 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 576577 0 0
T1 2071 8 0 0
T2 13197 3 0 0
T3 3524 10 0 0
T7 13369 7 0 0
T8 3945 1419 0 0
T9 2006 8 0 0
T10 1411 10 0 0
T11 27495 81 0 0
T12 18102 117 0 0
T13 4146 40 0 0

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

rspIdInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 18393395 0 0
T1 2071 44 0 0
T2 13197 94 0 0
T3 3524 281 0 0
T7 13369 385 0 0
T8 3945 987 0 0
T9 2006 48 0 0
T10 1411 53 0 0
T11 27495 849 0 0
T12 18102 811 0 0
T13 4146 264 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,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
011CoveredT16,T30,T31
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 430217806 281838 0 0
gen_host_fifo[1].idInRange 430217806 388112 0 0
maxM 900 900 0 0
rspIdInRange 430217806 3933502 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 281838 0 0
T1 2071 8 0 0
T2 13197 9 0 0
T3 3524 13 0 0
T7 13369 7 0 0
T8 3945 0 0 0
T9 2006 7 0 0
T10 1411 7 0 0
T11 27495 49 0 0
T12 18102 100 0 0
T13 4146 6 0 0
T14 0 101 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 388112 0 0
T1 2071 10 0 0
T2 13197 2 0 0
T3 3524 9 0 0
T7 13369 3 0 0
T8 3945 0 0 0
T9 2006 9 0 0
T10 1411 10 0 0
T11 27495 69 0 0
T12 18102 107 0 0
T13 4146 4 0 0
T14 0 79 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 430217806 3933502 0 0
T1 2071 18 0 0
T2 13197 19 0 0
T3 3524 22 0 0
T7 13369 65 0 0
T8 3945 0 0 0
T9 2006 15 0 0
T10 1411 16 0 0
T11 27495 109 0 0
T12 18102 196 0 0
T13 4146 34 0 0
T14 0 515 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
011CoveredT2,T7,T11
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 430217806 275197 0 0
gen_host_fifo[1].idInRange 430217806 366638 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4043862 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 275197 0 0
T1 2071 13 0 0
T2 13197 5 0 0
T3 3524 3 0 0
T7 13369 6 0 0
T8 3945 0 0 0
T9 2006 5 0 0
T10 1411 5 0 0
T11 27495 69 0 0
T12 18102 121 0 0
T13 4146 10 0 0
T14 0 60 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 366638 0 0
T1 2071 6 0 0
T2 13197 6 0 0
T3 3524 11 0 0
T7 13369 5 0 0
T8 3945 0 0 0
T9 2006 2 0 0
T10 1411 4 0 0
T11 27495 88 0 0
T12 18102 117 0 0
T13 4146 7 0 0
T14 0 85 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 430217806 4043862 0 0
T1 2071 17 0 0
T2 13197 20 0 0
T3 3524 15 0 0
T7 13369 51 0 0
T8 3945 0 0 0
T9 2006 7 0 0
T10 1411 9 0 0
T11 27495 142 0 0
T12 18102 218 0 0
T13 4146 85 0 0
T14 0 404 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
011CoveredT2,T3,T7
101CoveredT1,T3,T7
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,T28
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

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

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




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 430217806 497003 0 0
gen_host_fifo[1].idInRange 430217806 604496 0 0
maxM 900 900 0 0
rspIdInRange 430217806 3843233 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 497003 0 0
T1 2071 4 0 0
T2 13197 9 0 0
T3 3524 8 0 0
T7 13369 5 0 0
T8 3945 0 0 0
T9 2006 7 0 0
T10 1411 9 0 0
T11 27495 109 0 0
T12 18102 203 0 0
T13 4146 5 0 0
T14 0 68 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 604496 0 0
T1 2071 14 0 0
T2 13197 2 0 0
T3 3524 5 0 0
T7 13369 26 0 0
T8 3945 0 0 0
T9 2006 10 0 0
T10 1411 7 0 0
T11 27495 75 0 0
T12 18102 220 0 0
T13 4146 3 0 0
T14 0 129 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 430217806 3843233 0 0
T1 2071 13 0 0
T2 13197 11 0 0
T3 3524 28 0 0
T7 13369 62 0 0
T8 3945 0 0 0
T9 2006 14 0 0
T10 1411 9 0 0
T11 27495 194 0 0
T12 18102 190 0 0
T13 4146 39 0 0
T14 0 558 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
011CoveredT2,T7,T11
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
011CoveredT11,T14,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_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 430217806 726623 0 0
gen_host_fifo[1].idInRange 430217806 911346 0 0
maxM 900 900 0 0
rspIdInRange 430217806 5338155 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 726623 0 0
T1 2071 14 0 0
T2 13197 29 0 0
T3 3524 1 0 0
T7 13369 9 0 0
T8 3945 0 0 0
T9 2006 14 0 0
T10 1411 5 0 0
T11 27495 50 0 0
T12 18102 220 0 0
T13 4146 6 0 0
T14 0 78 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 911346 0 0
T1 2071 9 0 0
T2 13197 5 0 0
T3 3524 4 0 0
T7 13369 11 0 0
T8 3945 0 0 0
T9 2006 8 0 0
T10 1411 4 0 0
T11 27495 62 0 0
T12 18102 197 0 0
T13 4146 2 0 0
T14 0 61 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 430217806 5338155 0 0
T1 2071 15 0 0
T2 13197 26 0 0
T3 3524 5 0 0
T7 13369 72 0 0
T8 3945 0 0 0
T9 2006 18 0 0
T10 1411 9 0 0
T11 27495 203 0 0
T12 18102 214 0 0
T13 4146 23 0 0
T14 0 534 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
011CoveredT11,T31,T19
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 430217806 649966 0 0
gen_host_fifo[1].idInRange 430217806 746267 0 0
maxM 900 900 0 0
rspIdInRange 430217806 5354974 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 649966 0 0
T1 2071 8 0 0
T2 13197 8 0 0
T3 3524 38 0 0
T7 13369 8 0 0
T8 3945 0 0 0
T9 2006 4 0 0
T10 1411 3 0 0
T11 27495 46 0 0
T12 18102 621 0 0
T13 4146 4 0 0
T14 0 44 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 746267 0 0
T1 2071 5 0 0
T2 13197 8 0 0
T3 3524 41 0 0
T7 13369 4 0 0
T8 3945 0 0 0
T9 2006 20 0 0
T10 1411 13 0 0
T11 27495 45 0 0
T12 18102 443 0 0
T13 4146 1 0 0
T14 0 106 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 430217806 5354974 0 0
T1 2071 13 0 0
T2 13197 21 0 0
T3 3524 15 0 0
T7 13369 60 0 0
T8 3945 0 0 0
T9 2006 13 0 0
T10 1411 12 0 0
T11 27495 269 0 0
T12 18102 236 0 0
T13 4146 18 0 0
T14 0 382 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
011CoveredT2,T7,T11
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
011CoveredT11,T29,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_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 430217806 748947 0 0
gen_host_fifo[1].idInRange 430217806 826240 0 0
maxM 900 900 0 0
rspIdInRange 430217806 5183914 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 748947 0 0
T1 2071 4 0 0
T2 13197 8 0 0
T3 3524 4 0 0
T7 13369 72 0 0
T8 3945 0 0 0
T9 2006 3 0 0
T10 1411 1 0 0
T11 27495 47 0 0
T12 18102 160 0 0
T13 4146 5 0 0
T14 0 121 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 826240 0 0
T1 2071 8 0 0
T2 13197 3 0 0
T3 3524 6 0 0
T7 13369 25 0 0
T8 3945 0 0 0
T9 2006 4 0 0
T10 1411 2 0 0
T11 27495 75 0 0
T12 18102 201 0 0
T13 4146 32 0 0
T14 0 306 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 430217806 5183914 0 0
T1 2071 8 0 0
T2 13197 29 0 0
T3 3524 10 0 0
T7 13369 133 0 0
T8 3945 0 0 0
T9 2006 7 0 0
T10 1411 3 0 0
T11 27495 276 0 0
T12 18102 230 0 0
T13 4146 56 0 0
T14 0 485 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,T8
101CoveredT1,T3,T8
110CoveredT1,T2,T3
111CoveredT1,T2,T3

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

 LINE       238
 EXPRESSION (hreq_fifo_o[1].d_ready & (drsp_fifo_o.d_source[0+:STIDW] == 1) & drsp_fifo_o.d_valid)
             -----------1----------   ------------------2------------------   ---------3---------
-1--2--3-StatusTests
011CoveredT2,T7,T11
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 430217806 303990 0 0
gen_host_fifo[1].idInRange 430217806 397797 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4478853 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 303990 0 0
T1 2071 11 0 0
T2 13197 14 0 0
T3 3524 10 0 0
T7 13369 8 0 0
T8 3945 1848 0 0
T9 2006 4 0 0
T10 1411 5 0 0
T11 27495 61 0 0
T12 18102 79 0 0
T13 4146 0 0 0
T14 0 57 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 397797 0 0
T1 2071 2 0 0
T2 13197 4 0 0
T3 3524 9 0 0
T7 13369 5 0 0
T8 3945 1305 0 0
T9 2006 3 0 0
T10 1411 8 0 0
T11 27495 111 0 0
T12 18102 122 0 0
T13 4146 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 430217806 4478853 0 0
T1 2071 12 0 0
T2 13197 57 0 0
T3 3524 21 0 0
T7 13369 64 0 0
T8 3945 969 0 0
T9 2006 7 0 0
T10 1411 12 0 0
T11 27495 177 0 0
T12 18102 196 0 0
T13 4146 19 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
011CoveredT3,T7,T11
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 430217806 333049 0 0
gen_host_fifo[1].idInRange 430217806 434941 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4397990 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 333049 0 0
T1 2071 4 0 0
T2 13197 17 0 0
T3 3524 6 0 0
T7 13369 3 0 0
T8 3945 0 0 0
T9 2006 6 0 0
T10 1411 1 0 0
T11 27495 56 0 0
T12 18102 112 0 0
T13 4146 3 0 0
T14 0 105 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 434941 0 0
T1 2071 6 0 0
T2 13197 10 0 0
T3 3524 17 0 0
T7 13369 4 0 0
T8 3945 0 0 0
T9 2006 6 0 0
T10 1411 7 0 0
T11 27495 111 0 0
T12 18102 118 0 0
T13 4146 3 0 0
T14 0 70 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 430217806 4397990 0 0
T1 2071 10 0 0
T2 13197 18 0 0
T3 3524 22 0 0
T7 13369 27 0 0
T8 3945 0 0 0
T9 2006 10 0 0
T10 1411 8 0 0
T11 27495 129 0 0
T12 18102 218 0 0
T13 4146 27 0 0
T14 0 579 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
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,T11,T14
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

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

Assert Coverage for Instance : tb.dut.u_sm1_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 430217806 325652 0 0
gen_host_fifo[1].idInRange 430217806 446965 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4438622 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 325652 0 0
T1 2071 10 0 0
T2 13197 7 0 0
T3 3524 3 0 0
T7 13369 12 0 0
T8 3945 0 0 0
T9 2006 12 0 0
T10 1411 6 0 0
T11 27495 43 0 0
T12 18102 118 0 0
T13 4146 6 0 0
T14 0 90 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 446965 0 0
T1 2071 4 0 0
T2 13197 7 0 0
T3 3524 8 0 0
T7 13369 1 0 0
T8 3945 0 0 0
T9 2006 4 0 0
T10 1411 7 0 0
T11 27495 45 0 0
T12 18102 112 0 0
T13 4146 0 0 0
T14 0 91 0 0
T25 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 430217806 4438622 0 0
T1 2071 13 0 0
T2 13197 34 0 0
T3 3524 11 0 0
T7 13369 25 0 0
T8 3945 0 0 0
T9 2006 13 0 0
T10 1411 12 0 0
T11 27495 106 0 0
T12 18102 214 0 0
T13 4146 54 0 0
T14 0 462 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
011CoveredT2,T7,T11
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,T11,T14
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

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

Assert Coverage for Instance : tb.dut.u_sm1_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 430217806 292614 0 0
gen_host_fifo[1].idInRange 430217806 380338 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4576722 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 292614 0 0
T1 2071 5 0 0
T2 13197 6 0 0
T3 3524 5 0 0
T7 13369 6 0 0
T8 3945 0 0 0
T9 2006 9 0 0
T10 1411 9 0 0
T11 27495 45 0 0
T12 18102 92 0 0
T13 4146 4 0 0
T14 0 45 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 380338 0 0
T1 2071 6 0 0
T2 13197 3 0 0
T3 3524 2 0 0
T7 13369 4 0 0
T8 3945 0 0 0
T9 2006 6 0 0
T10 1411 5 0 0
T11 27495 92 0 0
T12 18102 141 0 0
T13 4146 3 0 0
T14 0 101 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 430217806 4576722 0 0
T1 2071 11 0 0
T2 13197 47 0 0
T3 3524 7 0 0
T7 13369 66 0 0
T8 3945 0 0 0
T9 2006 13 0 0
T10 1411 13 0 0
T11 27495 140 0 0
T12 18102 223 0 0
T13 4146 21 0 0
T14 0 382 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,T7,T11
101CoveredT1,T3,T7
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
011CoveredT14,T16,T28
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

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

Assert Coverage for Instance : tb.dut.u_sm1_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 430217806 300332 0 0
gen_host_fifo[1].idInRange 430217806 391774 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4127393 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 300332 0 0
T1 2071 6 0 0
T2 13197 7 0 0
T3 3524 10 0 0
T7 13369 10 0 0
T8 3945 0 0 0
T9 2006 9 0 0
T10 1411 3 0 0
T11 27495 49 0 0
T12 18102 126 0 0
T13 4146 6 0 0
T14 0 85 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 391774 0 0
T1 2071 5 0 0
T2 13197 3 0 0
T3 3524 5 0 0
T7 13369 12 0 0
T8 3945 0 0 0
T9 2006 8 0 0
T10 1411 4 0 0
T11 27495 91 0 0
T12 18102 132 0 0
T13 4146 3 0 0
T14 0 82 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 430217806 4127393 0 0
T1 2071 11 0 0
T2 13197 37 0 0
T3 3524 11 0 0
T7 13369 84 0 0
T8 3945 0 0 0
T9 2006 17 0 0
T10 1411 6 0 0
T11 27495 133 0 0
T12 18102 245 0 0
T13 4146 27 0 0
T14 0 569 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,T7,T11
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,T14,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_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 430217806 312999 0 0
gen_host_fifo[1].idInRange 430217806 415473 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4421860 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 312999 0 0
T1 2071 8 0 0
T2 13197 5 0 0
T3 3524 4 0 0
T7 13369 10 0 0
T8 3945 0 0 0
T9 2006 10 0 0
T10 1411 3 0 0
T11 27495 106 0 0
T12 18102 91 0 0
T13 4146 12 0 0
T14 0 80 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 415473 0 0
T1 2071 8 0 0
T2 13197 6 0 0
T3 3524 3 0 0
T7 13369 10 0 0
T8 3945 0 0 0
T9 2006 7 0 0
T10 1411 4 0 0
T11 27495 67 0 0
T12 18102 112 0 0
T13 4146 2 0 0
T14 0 62 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 430217806 4421860 0 0
T1 2071 15 0 0
T2 13197 31 0 0
T3 3524 7 0 0
T7 13369 58 0 0
T8 3945 0 0 0
T9 2006 17 0 0
T10 1411 7 0 0
T11 27495 197 0 0
T12 18102 195 0 0
T13 4146 30 0 0
T14 0 410 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,T7
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,T11,T16
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 430217806 291093 0 0
gen_host_fifo[1].idInRange 430217806 384580 0 0
maxM 900 900 0 0
rspIdInRange 430217806 3617114 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 291093 0 0
T1 2071 13 0 0
T2 13197 6 0 0
T3 3524 6 0 0
T7 13369 11 0 0
T8 3945 0 0 0
T9 2006 3 0 0
T10 1411 4 0 0
T11 27495 59 0 0
T12 18102 132 0 0
T13 4146 5 0 0
T14 0 56 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 384580 0 0
T1 2071 6 0 0
T2 13197 1 0 0
T3 3524 5 0 0
T7 13369 35 0 0
T8 3945 0 0 0
T9 2006 6 0 0
T10 1411 5 0 0
T11 27495 91 0 0
T12 18102 110 0 0
T13 4146 3 0 0
T14 0 79 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 430217806 3617114 0 0
T1 2071 17 0 0
T2 13197 9 0 0
T3 3524 14 0 0
T7 13369 108 0 0
T8 3945 0 0 0
T9 2006 9 0 0
T10 1411 9 0 0
T11 27495 168 0 0
T12 18102 224 0 0
T13 4146 52 0 0
T14 0 388 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,T7,T9
101CoveredT1,T3,T7
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
011CoveredT11,T14,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_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 430217806 273484 0 0
gen_host_fifo[1].idInRange 430217806 365249 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4296931 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 273484 0 0
T1 2071 5 0 0
T2 13197 6 0 0
T3 3524 4 0 0
T7 13369 11 0 0
T8 3945 0 0 0
T9 2006 10 0 0
T10 1411 1 0 0
T11 27495 46 0 0
T12 18102 113 0 0
T13 4146 4 0 0
T14 0 74 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 365249 0 0
T1 2071 8 0 0
T2 13197 2 0 0
T3 3524 1 0 0
T7 13369 20 0 0
T8 3945 0 0 0
T9 2006 7 0 0
T10 1411 9 0 0
T11 27495 60 0 0
T12 18102 144 0 0
T13 4146 6 0 0
T14 0 84 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 430217806 4296931 0 0
T1 2071 13 0 0
T2 13197 9 0 0
T3 3524 5 0 0
T7 13369 58 0 0
T8 3945 0 0 0
T9 2006 15 0 0
T10 1411 10 0 0
T11 27495 159 0 0
T12 18102 243 0 0
T13 4146 47 0 0
T14 0 521 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
011CoveredT11,T13,T14
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

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

Assert Coverage for Instance : tb.dut.u_sm1_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 430217806 280439 0 0
gen_host_fifo[1].idInRange 430217806 369318 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4678388 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 280439 0 0
T1 2071 15 0 0
T2 13197 15 0 0
T3 3524 4 0 0
T7 13369 11 0 0
T8 3945 0 0 0
T9 2006 4 0 0
T10 1411 4 0 0
T11 27495 51 0 0
T12 18102 95 0 0
T13 4146 9 0 0
T14 0 88 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 369318 0 0
T1 2071 12 0 0
T2 13197 10 0 0
T3 3524 20 0 0
T7 13369 4 0 0
T8 3945 0 0 0
T9 2006 4 0 0
T10 1411 4 0 0
T11 27495 63 0 0
T12 18102 107 0 0
T13 4146 14 0 0
T14 0 152 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 430217806 4678388 0 0
T1 2071 24 0 0
T2 13197 35 0 0
T3 3524 15 0 0
T7 13369 76 0 0
T8 3945 0 0 0
T9 2006 8 0 0
T10 1411 8 0 0
T11 27495 164 0 0
T12 18102 192 0 0
T13 4146 66 0 0
T14 0 727 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
011CoveredT3,T7,T10
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,T13,T14
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

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

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




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 430217806 305540 0 0
gen_host_fifo[1].idInRange 430217806 411341 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4308675 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 305540 0 0
T1 2071 3 0 0
T2 13197 8 0 0
T3 3524 3 0 0
T7 13369 6 0 0
T8 3945 0 0 0
T9 2006 7 0 0
T10 1411 2 0 0
T11 27495 46 0 0
T12 18102 95 0 0
T13 4146 3 0 0
T14 0 69 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 411341 0 0
T1 2071 4 0 0
T2 13197 15 0 0
T3 3524 10 0 0
T7 13369 4 0 0
T8 3945 0 0 0
T9 2006 5 0 0
T10 1411 3 0 0
T11 27495 88 0 0
T12 18102 120 0 0
T13 4146 4 0 0
T14 0 67 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 430217806 4308675 0 0
T1 2071 7 0 0
T2 13197 16 0 0
T3 3524 25 0 0
T7 13369 22 0 0
T8 3945 0 0 0
T9 2006 11 0 0
T10 1411 5 0 0
T11 27495 143 0 0
T12 18102 202 0 0
T13 4146 57 0 0
T14 0 518 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,T7,T11
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,T11,T16
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 430217806 304584 0 0
gen_host_fifo[1].idInRange 430217806 395378 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4192265 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 304584 0 0
T1 2071 1 0 0
T2 13197 15 0 0
T3 3524 12 0 0
T7 13369 14 0 0
T8 3945 0 0 0
T9 2006 7 0 0
T10 1411 5 0 0
T11 27495 42 0 0
T12 18102 100 0 0
T13 4146 2 0 0
T14 0 78 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 395378 0 0
T1 2071 6 0 0
T2 13197 4 0 0
T3 3524 24 0 0
T7 13369 31 0 0
T8 3945 0 0 0
T9 2006 9 0 0
T10 1411 4 0 0
T11 27495 125 0 0
T12 18102 109 0 0
T13 4146 3 0 0
T14 0 78 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 430217806 4192265 0 0
T1 2071 7 0 0
T2 13197 51 0 0
T3 3524 16 0 0
T7 13369 81 0 0
T8 3945 0 0 0
T9 2006 16 0 0
T10 1411 8 0 0
T11 27495 141 0 0
T12 18102 190 0 0
T13 4146 37 0 0
T14 0 549 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,T7,T11
101CoveredT1,T3,T7
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
011CoveredT11,T16,T28
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

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

Assert Coverage for Instance : tb.dut.u_sm1_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 430217806 332476 0 0
gen_host_fifo[1].idInRange 430217806 453310 0 0
maxM 900 900 0 0
rspIdInRange 430217806 3530195 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 332476 0 0
T1 2071 9 0 0
T2 13197 4 0 0
T3 3524 4 0 0
T7 13369 17 0 0
T8 3945 0 0 0
T9 2006 15 0 0
T10 1411 3 0 0
T11 27495 77 0 0
T12 18102 97 0 0
T13 4146 15 0 0
T14 0 41 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 453310 0 0
T1 2071 11 0 0
T2 13197 6 0 0
T3 3524 4 0 0
T7 13369 13 0 0
T8 3945 0 0 0
T9 2006 6 0 0
T10 1411 4 0 0
T11 27495 78 0 0
T12 18102 122 0 0
T13 4146 4 0 0
T14 0 41 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 430217806 3530195 0 0
T1 2071 20 0 0
T2 13197 10 0 0
T3 3524 8 0 0
T7 13369 61 0 0
T8 3945 0 0 0
T9 2006 19 0 0
T10 1411 7 0 0
T11 27495 157 0 0
T12 18102 208 0 0
T13 4146 24 0 0
T14 0 337 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
011CoveredT2,T7,T11
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,T11,T16
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 430217806 277083 0 0
gen_host_fifo[1].idInRange 430217806 359877 0 0
maxM 900 900 0 0
rspIdInRange 430217806 4592871 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 277083 0 0
T1 2071 6 0 0
T2 13197 7 0 0
T3 3524 3 0 0
T7 13369 9 0 0
T8 3945 0 0 0
T9 2006 6 0 0
T10 1411 2 0 0
T11 27495 85 0 0
T12 18102 94 0 0
T13 4146 8 0 0
T14 0 74 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 359877 0 0
T1 2071 6 0 0
T2 13197 5 0 0
T3 3524 6 0 0
T7 13369 4 0 0
T8 3945 0 0 0
T9 2006 13 0 0
T10 1411 2 0 0
T11 27495 97 0 0
T12 18102 121 0 0
T13 4146 1 0 0
T14 0 99 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 430217806 4592871 0 0
T1 2071 12 0 0
T2 13197 18 0 0
T3 3524 8 0 0
T7 13369 89 0 0
T8 3945 0 0 0
T9 2006 19 0 0
T10 1411 4 0 0
T11 27495 193 0 0
T12 18102 207 0 0
T13 4146 51 0 0
T14 0 456 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
011CoveredT7,T11,T13
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T2,T3

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

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




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 430217806 308700 0 0
gen_host_fifo[1].idInRange 430217806 412511 0 0
maxM 900 900 0 0
rspIdInRange 430217806 3958260 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 308700 0 0
T1 2071 5 0 0
T2 13197 6 0 0
T3 3524 4 0 0
T7 13369 16 0 0
T8 3945 0 0 0
T9 2006 12 0 0
T10 1411 3 0 0
T11 27495 44 0 0
T12 18102 94 0 0
T13 4146 10 0 0
T14 0 68 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 412511 0 0
T1 2071 5 0 0
T2 13197 8 0 0
T3 3524 4 0 0
T7 13369 8 0 0
T8 3945 0 0 0
T9 2006 10 0 0
T10 1411 7 0 0
T11 27495 67 0 0
T12 18102 117 0 0
T13 4146 21 0 0
T14 0 133 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 430217806 3958260 0 0
T1 2071 9 0 0
T2 13197 30 0 0
T3 3524 11 0 0
T7 13369 102 0 0
T8 3945 0 0 0
T9 2006 21 0 0
T10 1411 10 0 0
T11 27495 156 0 0
T12 18102 200 0 0
T13 4146 89 0 0
T14 0 518 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
01CoveredT2,T9,T12
10CoveredT1,T2,T3
11CoveredT1,T2,T3

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

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

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

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

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

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

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

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

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

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

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

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




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
gen_host_fifo[0].idInRange 430217806 10116157 0 0
gen_host_fifo[1].idInRange 430217806 1917704 0 0
gen_host_fifo[2].idInRange 430217806 1954134 0 0
maxM 900 900 0 0
rspIdInRange 430217806 20235656 0 0


gen_host_fifo[0].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 10116157 0 0
T1 2071 29 0 0
T2 13197 311 0 0
T3 3524 270 0 0
T7 13369 348 0 0
T8 3945 137 0 0
T9 2006 29 0 0
T10 1411 42 0 0
T11 27495 2099 0 0
T12 18102 594 0 0
T13 4146 115 0 0

gen_host_fifo[1].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 1917704 0 0
T1 2071 4 0 0
T2 13197 33 0 0
T3 3524 11 0 0
T7 13369 72 0 0
T8 3945 0 0 0
T9 2006 8 0 0
T10 1411 5 0 0
T11 27495 585 0 0
T12 18102 89 0 0
T13 4146 38 0 0
T14 0 574 0 0

gen_host_fifo[2].idInRange
NameAttemptsReal SuccessesFailuresIncomplete
Total 430217806 1954134 0 0
T1 2071 2 0 0
T2 13197 62 0 0
T3 3524 41 0 0
T7 13369 44 0 0
T8 3945 0 0 0
T9 2006 14 0 0
T10 1411 2 0 0
T11 27495 375 0 0
T12 18102 119 0 0
T13 4146 18 0 0
T14 0 537 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 430217806 20235656 0 0
T1 2071 35 0 0
T2 13197 222 0 0
T3 3524 215 0 0
T7 13369 318 0 0
T8 3945 137 0 0
T9 2006 51 0 0
T10 1411 49 0 0
T11 27495 1166 0 0
T12 18102 790 0 0
T13 4146 212 0 0

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