dashboard | hierarchy | modlist | groups | tests | asserts

Module Instance : tb.dut.u_readcmd.u_readsram.u_sram_fifo

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
93.18 100.00 72.73 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
88.63 95.00 76.19 83.33 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.77 98.25 100.00 100.00 90.62 100.00 u_readsram


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_normal_fifo.u_fifo_cnt 81.58 92.00 80.00 72.73


Module Instance : tb.dut.u_readcmd.u_readsram.u_fifo

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
95.45 100.00 81.82 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
97.62 100.00 90.48 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.77 98.25 100.00 100.00 90.62 100.00 u_readsram


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_normal_fifo.u_fifo_cnt 100.00 100.00 100.00 100.00


Module Instance : tb.dut.u_upload.u_arbiter.u_req_fifo

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
62.10 85.71 31.25 71.43 60.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
59.07 84.62 36.11 55.56 60.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
66.67 100.00 33.33 u_arbiter


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_normal_fifo.u_fifo_cnt 56.48 84.00 40.00 45.45


Module Instance : tb.dut.u_spi_tpm.u_sram_fifo

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
94.32 100.00 77.27 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
89.23 95.00 78.57 83.33 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
95.79 99.29 91.20 91.67 96.77 100.00 u_spi_tpm


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_normal_fifo.u_fifo_cnt 81.58 92.00 80.00 72.73


Module Instance : tb.dut.u_spi_tpm.u_arbiter.u_req_fifo

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
89.06 100.00 56.25 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.36 100.00 75.00 94.44 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
91.67 100.00 83.33 u_arbiter


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_normal_fifo.u_fifo_cnt 93.64 100.00 90.00 90.91


Module Instance : tb.dut.u_tlul2sram_egress.u_reqfifo

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.19 100.00 68.75 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
88.33 95.00 75.00 83.33 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
78.14 94.52 60.33 73.08 84.62 u_tlul2sram_egress


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_normal_fifo.u_fifo_cnt 81.58 92.00 80.00 72.73


Module Instance : tb.dut.u_tlul2sram_egress.u_sramreqfifo

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
60.67 80.00 31.25 71.43 60.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
61.32 82.50 47.22 55.56 60.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
78.14 94.52 60.33 73.08 84.62 u_tlul2sram_egress


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
gen_normal_fifo.u_fifo_cnt 63.15 84.00 60.00 45.45

Go back
Module Instances:
tb.dut.u_readcmd.u_readsram.u_sram_fifo
tb.dut.u_readcmd.u_readsram.u_fifo
tb.dut.u_upload.u_arbiter.u_req_fifo
tb.dut.u_spi_tpm.u_sram_fifo
tb.dut.u_spi_tpm.u_arbiter.u_req_fifo
tb.dut.u_tlul2sram_egress.u_reqfifo
tb.dut.u_tlul2sram_egress.u_sramreqfifo
Line Coverage for Instance : tb.dut.u_readcmd.u_readsram.u_sram_fifo
Line No.TotalCoveredPercent
TOTAL1515100.00
ALWAYS6944100.00
CONT_ASSIGN8111100.00
CONT_ASSIGN8211100.00
CONT_ASSIGN10011100.00
CONT_ASSIGN10111100.00
CONT_ASSIGN10811100.00
ALWAYS11122100.00
CONT_ASSIGN11611100.00
CONT_ASSIGN13011100.00
CONT_ASSIGN13111100.00
CONT_ASSIGN14011100.00

68 always_ff @(posedge clk_i or negedge rst_ni) begin 69 1/1 if (!rst_ni) begin Tests: T1 T2 T3  70 1/1 under_rst <= 1'b1; Tests: T1 T2 T3  71 1/1 end else if (under_rst) begin Tests: T3 T13 T15  72 1/1 under_rst <= ~under_rst; Tests: T3 T13 T15  73 end MISSING_ELSE 74 end 75 76 logic empty; 77 78 // full and not ready for write are two different concepts. 79 // The latter can be '0' when under reset, while the former is an indication that no more 80 // entries can be written. 81 1/1 assign wready_o = ~full_o & ~under_rst; Tests: T1 T2 T3  82 1/1 assign rvalid_o = ~empty & ~under_rst; Tests: T1 T2 T3  83 84 prim_fifo_sync_cnt #( 85 .Depth(Depth), 86 .Secure(Secure) 87 ) u_fifo_cnt ( 88 .clk_i, 89 .rst_ni, 90 .clr_i, 91 .incr_wptr_i(fifo_incr_wptr), 92 .incr_rptr_i(fifo_incr_rptr), 93 .wptr_o(fifo_wptr), 94 .rptr_o(fifo_rptr), 95 .full_o, 96 .empty_o(fifo_empty), 97 .depth_o, 98 .err_o 99 ); 100 1/1 assign fifo_incr_wptr = wvalid_i & wready_o & ~under_rst; Tests: T1 T2 T3  101 1/1 assign fifo_incr_rptr = rvalid_o & rready_i & ~under_rst; Tests: T1 T2 T3  102 103 // the generate blocks below are needed to avoid lint errors due to array indexing 104 // in the where the fifo only has one storage element 105 logic [Depth-1:0][Width-1:0] storage; 106 logic [Width-1:0] storage_rdata; 107 if (Depth == 1) begin : gen_depth_eq1 108 1/1 assign storage_rdata = storage[0]; Tests: T3 T15 T16  109 110 always_ff @(posedge clk_i) 111 1/1 if (fifo_incr_wptr) begin Tests: T3 T5 T6  112 1/1 storage[0] <= wdata_i; Tests: T3 T15 T16  113 end MISSING_ELSE 114 115 logic unused_ptrs; 116 1/1 assign unused_ptrs = ^{fifo_wptr, fifo_rptr}; Tests: T1 T2 T3  117 118 // fifo with more than one storage element 119 end else begin : gen_depth_gt1 120 assign storage_rdata = storage[fifo_rptr]; 121 122 always_ff @(posedge clk_i) 123 if (fifo_incr_wptr) begin 124 storage[fifo_wptr] <= wdata_i; 125 end 126 end 127 128 logic [Width-1:0] rdata_int; 129 if (Pass == 1'b1) begin : gen_pass 130 1/1 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; Tests: T1 T2 T3  131 1/1 assign empty = fifo_empty & ~wvalid_i; Tests: T1 T2 T3  132 end else begin : gen_nopass 133 assign rdata_int = storage_rdata; 134 assign empty = fifo_empty; 135 end 136 137 if (OutputZeroIfEmpty == 1'b1) begin : gen_output_zero 138 assign rdata_o = empty ? Width'(0) : rdata_int; 139 end else begin : gen_no_output_zero 140 1/1 assign rdata_o = rdata_int; Tests: T3 T15 T16 

Cond Coverage for Instance : tb.dut.u_readcmd.u_readsram.u_sram_fifo
TotalCoveredPercent
Conditions221672.73
Logical221672.73
Non-Logical00
Event00

 LINE       81
 EXPRESSION (((~full_o)) & ((~gen_normal_fifo.under_rst)))
             -----1-----   ---------------2--------------
-1--2-StatusTests
01CoveredT3,T15,T16
10CoveredT1,T2,T3
11CoveredT3,T13,T15

 LINE       82
 EXPRESSION (((~gen_normal_fifo.empty)) & ((~gen_normal_fifo.under_rst)))
             -------------1------------   ---------------2--------------
-1--2-StatusTests
01CoveredT3,T13,T15
10Not Covered
11CoveredT3,T15,T16

 LINE       100
 EXPRESSION (wvalid_i & wready_o & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011CoveredT3,T13,T15
101Not Covered
110Not Covered
111CoveredT3,T15,T16

 LINE       101
 EXPRESSION (rvalid_o & rready_i & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011Not Covered
101CoveredT3,T15,T16
110Not Covered
111CoveredT3,T15,T16

 LINE       130
 EXPRESSION ((gen_normal_fifo.fifo_empty && wvalid_i) ? wdata_i : gen_normal_fifo.storage_rdata)
             --------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T15,T16

 LINE       130
 SUB-EXPRESSION (gen_normal_fifo.fifo_empty && wvalid_i)
                 -------------1------------    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT3,T15,T16

 LINE       131
 EXPRESSION (gen_normal_fifo.fifo_empty & ((~wvalid_i)))
             -------------1------------   ------2------
-1--2-StatusTests
01CoveredT3,T15,T16
10CoveredT3,T15,T16
11CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_readcmd.u_readsram.u_sram_fifo
Line No.TotalCoveredPercent
Branches 7 7 100.00
TERNARY 130 2 2 100.00
IF 69 3 3 100.00
IF 111 2 2 100.00


130 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T3,T15,T16
0 Covered T1,T2,T3


69 if (!rst_ni) begin -1- 70 under_rst <= 1'b1; ==> 71 end else if (under_rst) begin -2- 72 under_rst <= ~under_rst; ==> 73 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T3,T13,T15
0 0 Covered T3,T13,T15


111 if (fifo_incr_wptr) begin -1- 112 storage[0] <= wdata_i; ==> 113 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T3,T15,T16
0 Covered T3,T5,T6


Assert Coverage for Instance : tb.dut.u_readcmd.u_readsram.u_sram_fifo
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
DataKnown_A 150126960 21544502 0 0
DepthKnown_A 150126960 120467688 0 0
RvalidKnown_A 150126960 120467688 0 0
WreadyKnown_A 150126960 120467688 0 0
gen_normal_fifo.depthShallNotExceedParamDepth 150126960 21544502 0 0


DataKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 21544502 0 0
T3 57491 2788 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 0 0 0
T14 864 0 0 0
T15 13132 88 0 0
T16 20820 18088 0 0
T17 4176 0 0 0
T18 0 11486 0 0
T23 0 16870 0 0
T40 0 18308 0 0
T50 0 1180 0 0
T57 0 9142 0 0
T58 0 5212 0 0
T59 0 302 0 0

DepthKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 120467688 0 0
T3 57491 57452 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 4208 0 0
T14 864 0 0 0
T15 13132 12962 0 0
T16 20820 20820 0 0
T17 4176 4176 0 0
T18 0 15032 0 0
T19 0 15632 0 0
T20 0 4368 0 0
T22 0 21504 0 0
T23 0 203101 0 0

RvalidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 120467688 0 0
T3 57491 57452 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 4208 0 0
T14 864 0 0 0
T15 13132 12962 0 0
T16 20820 20820 0 0
T17 4176 4176 0 0
T18 0 15032 0 0
T19 0 15632 0 0
T20 0 4368 0 0
T22 0 21504 0 0
T23 0 203101 0 0

WreadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 120467688 0 0
T3 57491 57452 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 4208 0 0
T14 864 0 0 0
T15 13132 12962 0 0
T16 20820 20820 0 0
T17 4176 4176 0 0
T18 0 15032 0 0
T19 0 15632 0 0
T20 0 4368 0 0
T22 0 21504 0 0
T23 0 203101 0 0

gen_normal_fifo.depthShallNotExceedParamDepth
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 21544502 0 0
T3 57491 2788 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 0 0 0
T14 864 0 0 0
T15 13132 88 0 0
T16 20820 18088 0 0
T17 4176 0 0 0
T18 0 11486 0 0
T23 0 16870 0 0
T40 0 18308 0 0
T50 0 1180 0 0
T57 0 9142 0 0
T58 0 5212 0 0
T59 0 302 0 0

Line Coverage for Instance : tb.dut.u_readcmd.u_readsram.u_fifo
Line No.TotalCoveredPercent
TOTAL1414100.00
ALWAYS6944100.00
CONT_ASSIGN8111100.00
CONT_ASSIGN8211100.00
CONT_ASSIGN10011100.00
CONT_ASSIGN10111100.00
CONT_ASSIGN12011100.00
ALWAYS12322100.00
CONT_ASSIGN13011100.00
CONT_ASSIGN13111100.00
CONT_ASSIGN14011100.00

68 always_ff @(posedge clk_i or negedge rst_ni) begin 69 1/1 if (!rst_ni) begin Tests: T1 T2 T3  70 1/1 under_rst <= 1'b1; Tests: T1 T2 T3  71 1/1 end else if (under_rst) begin Tests: T3 T13 T15  72 1/1 under_rst <= ~under_rst; Tests: T3 T13 T15  73 end MISSING_ELSE 74 end 75 76 logic empty; 77 78 // full and not ready for write are two different concepts. 79 // The latter can be '0' when under reset, while the former is an indication that no more 80 // entries can be written. 81 1/1 assign wready_o = ~full_o & ~under_rst; Tests: T1 T2 T3  82 1/1 assign rvalid_o = ~empty & ~under_rst; Tests: T1 T2 T3  83 84 prim_fifo_sync_cnt #( 85 .Depth(Depth), 86 .Secure(Secure) 87 ) u_fifo_cnt ( 88 .clk_i, 89 .rst_ni, 90 .clr_i, 91 .incr_wptr_i(fifo_incr_wptr), 92 .incr_rptr_i(fifo_incr_rptr), 93 .wptr_o(fifo_wptr), 94 .rptr_o(fifo_rptr), 95 .full_o, 96 .empty_o(fifo_empty), 97 .depth_o, 98 .err_o 99 ); 100 1/1 assign fifo_incr_wptr = wvalid_i & wready_o & ~under_rst; Tests: T1 T2 T3  101 1/1 assign fifo_incr_rptr = rvalid_o & rready_i & ~under_rst; Tests: T1 T2 T3  102 103 // the generate blocks below are needed to avoid lint errors due to array indexing 104 // in the where the fifo only has one storage element 105 logic [Depth-1:0][Width-1:0] storage; 106 logic [Width-1:0] storage_rdata; 107 if (Depth == 1) begin : gen_depth_eq1 108 assign storage_rdata = storage[0]; 109 110 always_ff @(posedge clk_i) 111 if (fifo_incr_wptr) begin 112 storage[0] <= wdata_i; 113 end 114 115 logic unused_ptrs; 116 assign unused_ptrs = ^{fifo_wptr, fifo_rptr}; 117 118 // fifo with more than one storage element 119 end else begin : gen_depth_gt1 120 1/1 assign storage_rdata = storage[fifo_rptr]; Tests: T1 T2 T3  121 122 always_ff @(posedge clk_i) 123 1/1 if (fifo_incr_wptr) begin Tests: T3 T5 T6  124 1/1 storage[fifo_wptr] <= wdata_i; Tests: T3 T15 T16  125 end MISSING_ELSE 126 end 127 128 logic [Width-1:0] rdata_int; 129 if (Pass == 1'b1) begin : gen_pass 130 1/1 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; Tests: T1 T2 T3  131 1/1 assign empty = fifo_empty & ~wvalid_i; Tests: T1 T2 T3  132 end else begin : gen_nopass 133 assign rdata_int = storage_rdata; 134 assign empty = fifo_empty; 135 end 136 137 if (OutputZeroIfEmpty == 1'b1) begin : gen_output_zero 138 assign rdata_o = empty ? Width'(0) : rdata_int; 139 end else begin : gen_no_output_zero 140 1/1 assign rdata_o = rdata_int; Tests: T3 T15 T16 

Cond Coverage for Instance : tb.dut.u_readcmd.u_readsram.u_fifo
TotalCoveredPercent
Conditions221881.82
Logical221881.82
Non-Logical00
Event00

 LINE       81
 EXPRESSION (((~full_o)) & ((~gen_normal_fifo.under_rst)))
             -----1-----   ---------------2--------------
-1--2-StatusTests
01CoveredT3,T15,T16
10CoveredT1,T2,T3
11CoveredT3,T13,T15

 LINE       82
 EXPRESSION (((~gen_normal_fifo.empty)) & ((~gen_normal_fifo.under_rst)))
             -------------1------------   ---------------2--------------
-1--2-StatusTests
01CoveredT3,T13,T15
10Not Covered
11CoveredT3,T15,T16

 LINE       100
 EXPRESSION (wvalid_i & wready_o & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011CoveredT3,T13,T15
101CoveredT3,T15,T16
110Not Covered
111CoveredT3,T15,T16

 LINE       101
 EXPRESSION (rvalid_o & rready_i & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011Not Covered
101CoveredT3,T15,T16
110Not Covered
111CoveredT3,T15,T16

 LINE       130
 EXPRESSION ((gen_normal_fifo.fifo_empty && wvalid_i) ? wdata_i : gen_normal_fifo.storage_rdata)
             --------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T15,T16

 LINE       130
 SUB-EXPRESSION (gen_normal_fifo.fifo_empty && wvalid_i)
                 -------------1------------    ----2---
-1--2-StatusTests
01CoveredT3,T15,T16
10CoveredT1,T2,T3
11CoveredT3,T15,T16

 LINE       131
 EXPRESSION (gen_normal_fifo.fifo_empty & ((~wvalid_i)))
             -------------1------------   ------2------
-1--2-StatusTests
01CoveredT3,T15,T16
10CoveredT3,T15,T16
11CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_readcmd.u_readsram.u_fifo
Line No.TotalCoveredPercent
Branches 7 7 100.00
TERNARY 130 2 2 100.00
IF 69 3 3 100.00
IF 111 2 2 100.00


130 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T3,T15,T16
0 Covered T1,T2,T3


69 if (!rst_ni) begin -1- 70 under_rst <= 1'b1; ==> 71 end else if (under_rst) begin -2- 72 under_rst <= ~under_rst; ==> 73 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T3,T13,T15
0 0 Covered T3,T13,T15


111 if (fifo_incr_wptr) begin -1- 112 storage[0] <= wdata_i; ==> 113 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T3,T15,T16
0 Covered T3,T5,T6


Assert Coverage for Instance : tb.dut.u_readcmd.u_readsram.u_fifo
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
DataKnown_A 150126960 22648339 0 0
DepthKnown_A 150126960 120467688 0 0
RvalidKnown_A 150126960 120467688 0 0
WreadyKnown_A 150126960 120467688 0 0
gen_normal_fifo.depthShallNotExceedParamDepth 150126960 22648339 0 0


DataKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 22648339 0 0
T3 57491 3100 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 0 0 0
T14 864 0 0 0
T15 13132 86 0 0
T16 20820 20660 0 0
T17 4176 0 0 0
T18 0 12672 0 0
T23 0 17567 0 0
T40 0 19144 0 0
T50 0 1256 0 0
T57 0 9626 0 0
T58 0 5952 0 0
T59 0 316 0 0

DepthKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 120467688 0 0
T3 57491 57452 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 4208 0 0
T14 864 0 0 0
T15 13132 12962 0 0
T16 20820 20820 0 0
T17 4176 4176 0 0
T18 0 15032 0 0
T19 0 15632 0 0
T20 0 4368 0 0
T22 0 21504 0 0
T23 0 203101 0 0

RvalidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 120467688 0 0
T3 57491 57452 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 4208 0 0
T14 864 0 0 0
T15 13132 12962 0 0
T16 20820 20820 0 0
T17 4176 4176 0 0
T18 0 15032 0 0
T19 0 15632 0 0
T20 0 4368 0 0
T22 0 21504 0 0
T23 0 203101 0 0

WreadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 120467688 0 0
T3 57491 57452 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 4208 0 0
T14 864 0 0 0
T15 13132 12962 0 0
T16 20820 20820 0 0
T17 4176 4176 0 0
T18 0 15032 0 0
T19 0 15632 0 0
T20 0 4368 0 0
T22 0 21504 0 0
T23 0 203101 0 0

gen_normal_fifo.depthShallNotExceedParamDepth
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 22648339 0 0
T3 57491 3100 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 0 0 0
T14 864 0 0 0
T15 13132 86 0 0
T16 20820 20660 0 0
T17 4176 0 0 0
T18 0 12672 0 0
T23 0 17567 0 0
T40 0 19144 0 0
T50 0 1256 0 0
T57 0 9626 0 0
T58 0 5952 0 0
T59 0 316 0 0

Line Coverage for Instance : tb.dut.u_upload.u_arbiter.u_req_fifo
Line No.TotalCoveredPercent
TOTAL141285.71
ALWAYS6944100.00
CONT_ASSIGN8111100.00
CONT_ASSIGN8211100.00
CONT_ASSIGN10011100.00
CONT_ASSIGN10111100.00
CONT_ASSIGN12011100.00
ALWAYS1232150.00
CONT_ASSIGN133100.00
CONT_ASSIGN13411100.00
CONT_ASSIGN13811100.00

68 always_ff @(posedge clk_i or negedge rst_ni) begin 69 1/1 if (!rst_ni) begin Tests: T1 T2 T3  70 1/1 under_rst <= 1'b1; Tests: T1 T2 T3  71 1/1 end else if (under_rst) begin Tests: T3 T13 T15  72 1/1 under_rst <= ~under_rst; Tests: T3 T13 T15  73 end MISSING_ELSE 74 end 75 76 logic empty; 77 78 // full and not ready for write are two different concepts. 79 // The latter can be '0' when under reset, while the former is an indication that no more 80 // entries can be written. 81 1/1 assign wready_o = ~full_o & ~under_rst; Tests: T1 T2 T3  82 1/1 assign rvalid_o = ~empty & ~under_rst; Tests: T1 T2 T3  83 84 prim_fifo_sync_cnt #( 85 .Depth(Depth), 86 .Secure(Secure) 87 ) u_fifo_cnt ( 88 .clk_i, 89 .rst_ni, 90 .clr_i, 91 .incr_wptr_i(fifo_incr_wptr), 92 .incr_rptr_i(fifo_incr_rptr), 93 .wptr_o(fifo_wptr), 94 .rptr_o(fifo_rptr), 95 .full_o, 96 .empty_o(fifo_empty), 97 .depth_o, 98 .err_o 99 ); 100 1/1 assign fifo_incr_wptr = wvalid_i & wready_o & ~under_rst; Tests: T1 T2 T3  101 1/1 assign fifo_incr_rptr = rvalid_o & rready_i & ~under_rst; Tests: T1 T2 T3  102 103 // the generate blocks below are needed to avoid lint errors due to array indexing 104 // in the where the fifo only has one storage element 105 logic [Depth-1:0][Width-1:0] storage; 106 logic [Width-1:0] storage_rdata; 107 if (Depth == 1) begin : gen_depth_eq1 108 assign storage_rdata = storage[0]; 109 110 always_ff @(posedge clk_i) 111 if (fifo_incr_wptr) begin 112 storage[0] <= wdata_i; 113 end 114 115 logic unused_ptrs; 116 assign unused_ptrs = ^{fifo_wptr, fifo_rptr}; 117 118 // fifo with more than one storage element 119 end else begin : gen_depth_gt1 120 1/1 assign storage_rdata = storage[fifo_rptr]; Tests: T1 T2 T3  121 122 always_ff @(posedge clk_i) 123 1/1 if (fifo_incr_wptr) begin Tests: T3 T5 T6  124 0/1 ==> storage[fifo_wptr] <= wdata_i; 125 end MISSING_ELSE 126 end 127 128 logic [Width-1:0] rdata_int; 129 if (Pass == 1'b1) begin : gen_pass 130 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; 131 assign empty = fifo_empty & ~wvalid_i; 132 end else begin : gen_nopass 133 0/1 ==> assign rdata_int = storage_rdata; 134 1/1 assign empty = fifo_empty; Tests: T1 T2 T3  135 end 136 137 if (OutputZeroIfEmpty == 1'b1) begin : gen_output_zero 138 1/1 assign rdata_o = empty ? Width'(0) : rdata_int; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_upload.u_arbiter.u_req_fifo
TotalCoveredPercent
Conditions16531.25
Logical16531.25
Non-Logical00
Event00

 LINE       81
 EXPRESSION (((~full_o)) & ((~gen_normal_fifo.under_rst)))
             -----1-----   ---------------2--------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT3,T13,T15

 LINE       82
 EXPRESSION (((~gen_normal_fifo.empty)) & ((~gen_normal_fifo.under_rst)))
             -------------1------------   ---------------2--------------
-1--2-StatusTests
01CoveredT3,T13,T15
10Not Covered
11Not Covered

 LINE       100
 EXPRESSION (wvalid_i & wready_o & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011CoveredT3,T13,T15
101Not Covered
110Not Covered
111Not Covered

 LINE       101
 EXPRESSION (rvalid_o & rready_i & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011Not Covered
101Not Covered
110Not Covered
111Not Covered

 LINE       138
 EXPRESSION (gen_normal_fifo.empty ? (3'(0)) : gen_normal_fifo.rdata_int)
             ----------1----------
-1-StatusTests
0Not Covered
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_upload.u_arbiter.u_req_fifo
Line No.TotalCoveredPercent
Branches 7 5 71.43
TERNARY 138 2 1 50.00
IF 69 3 3 100.00
IF 123 2 1 50.00


138 assign rdata_o = empty ? Width'(0) : rdata_int; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Not Covered


69 if (!rst_ni) begin -1- 70 under_rst <= 1'b1; ==> 71 end else if (under_rst) begin -2- 72 under_rst <= ~under_rst; ==> 73 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T3,T13,T15
0 0 Covered T3,T13,T15


123 if (fifo_incr_wptr) begin -1- 124 storage[fifo_wptr] <= wdata_i; ==> 125 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Not Covered
0 Covered T3,T5,T6


Assert Coverage for Instance : tb.dut.u_upload.u_arbiter.u_req_fifo
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 5 5 100.00 3 60.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 5 5 100.00 3 60.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataKnown_A 150126960 0 0 0
DepthKnown_A 150126960 120467688 0 0
RvalidKnown_A 150126960 120467688 0 0
WreadyKnown_A 150126960 120467688 0 0
gen_normal_fifo.depthShallNotExceedParamDepth 150126960 0 0 0


DataKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 0 0 0

DepthKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 120467688 0 0
T3 57491 57452 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 4208 0 0
T14 864 0 0 0
T15 13132 12962 0 0
T16 20820 20820 0 0
T17 4176 4176 0 0
T18 0 15032 0 0
T19 0 15632 0 0
T20 0 4368 0 0
T22 0 21504 0 0
T23 0 203101 0 0

RvalidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 120467688 0 0
T3 57491 57452 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 4208 0 0
T14 864 0 0 0
T15 13132 12962 0 0
T16 20820 20820 0 0
T17 4176 4176 0 0
T18 0 15032 0 0
T19 0 15632 0 0
T20 0 4368 0 0
T22 0 21504 0 0
T23 0 203101 0 0

WreadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 120467688 0 0
T3 57491 57452 0 0
T5 1008 0 0 0
T6 59612 0 0 0
T7 22059 0 0 0
T9 91883 0 0 0
T13 4208 4208 0 0
T14 864 0 0 0
T15 13132 12962 0 0
T16 20820 20820 0 0
T17 4176 4176 0 0
T18 0 15032 0 0
T19 0 15632 0 0
T20 0 4368 0 0
T22 0 21504 0 0
T23 0 203101 0 0

gen_normal_fifo.depthShallNotExceedParamDepth
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 0 0 0

Line Coverage for Instance : tb.dut.u_spi_tpm.u_sram_fifo
Line No.TotalCoveredPercent
TOTAL1515100.00
ALWAYS6944100.00
CONT_ASSIGN8111100.00
CONT_ASSIGN8211100.00
CONT_ASSIGN10011100.00
CONT_ASSIGN10111100.00
CONT_ASSIGN10811100.00
ALWAYS11122100.00
CONT_ASSIGN11611100.00
CONT_ASSIGN13011100.00
CONT_ASSIGN13111100.00
CONT_ASSIGN14011100.00

68 always_ff @(posedge clk_i or negedge rst_ni) begin 69 1/1 if (!rst_ni) begin Tests: T1 T2 T3  70 1/1 under_rst <= 1'b1; Tests: T1 T2 T3  71 1/1 end else if (under_rst) begin Tests: T5 T6 T7  72 1/1 under_rst <= ~under_rst; Tests: T5 T6 T7  73 end MISSING_ELSE 74 end 75 76 logic empty; 77 78 // full and not ready for write are two different concepts. 79 // The latter can be '0' when under reset, while the former is an indication that no more 80 // entries can be written. 81 1/1 assign wready_o = ~full_o & ~under_rst; Tests: T1 T2 T3  82 1/1 assign rvalid_o = ~empty & ~under_rst; Tests: T1 T2 T3  83 84 prim_fifo_sync_cnt #( 85 .Depth(Depth), 86 .Secure(Secure) 87 ) u_fifo_cnt ( 88 .clk_i, 89 .rst_ni, 90 .clr_i, 91 .incr_wptr_i(fifo_incr_wptr), 92 .incr_rptr_i(fifo_incr_rptr), 93 .wptr_o(fifo_wptr), 94 .rptr_o(fifo_rptr), 95 .full_o, 96 .empty_o(fifo_empty), 97 .depth_o, 98 .err_o 99 ); 100 1/1 assign fifo_incr_wptr = wvalid_i & wready_o & ~under_rst; Tests: T1 T2 T3  101 1/1 assign fifo_incr_rptr = rvalid_o & rready_i & ~under_rst; Tests: T1 T2 T3  102 103 // the generate blocks below are needed to avoid lint errors due to array indexing 104 // in the where the fifo only has one storage element 105 logic [Depth-1:0][Width-1:0] storage; 106 logic [Width-1:0] storage_rdata; 107 if (Depth == 1) begin : gen_depth_eq1 108 1/1 assign storage_rdata = storage[0]; Tests: T6 T9 T29  109 110 always_ff @(posedge clk_i) 111 1/1 if (fifo_incr_wptr) begin Tests: T3 T5 T6  112 1/1 storage[0] <= wdata_i; Tests: T6 T9 T29  113 end MISSING_ELSE 114 115 logic unused_ptrs; 116 1/1 assign unused_ptrs = ^{fifo_wptr, fifo_rptr}; Tests: T1 T2 T3  117 118 // fifo with more than one storage element 119 end else begin : gen_depth_gt1 120 assign storage_rdata = storage[fifo_rptr]; 121 122 always_ff @(posedge clk_i) 123 if (fifo_incr_wptr) begin 124 storage[fifo_wptr] <= wdata_i; 125 end 126 end 127 128 logic [Width-1:0] rdata_int; 129 if (Pass == 1'b1) begin : gen_pass 130 1/1 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; Tests: T1 T2 T3  131 1/1 assign empty = fifo_empty & ~wvalid_i; Tests: T1 T2 T3  132 end else begin : gen_nopass 133 assign rdata_int = storage_rdata; 134 assign empty = fifo_empty; 135 end 136 137 if (OutputZeroIfEmpty == 1'b1) begin : gen_output_zero 138 assign rdata_o = empty ? Width'(0) : rdata_int; 139 end else begin : gen_no_output_zero 140 1/1 assign rdata_o = rdata_int; Tests: T6 T9 T29 

Cond Coverage for Instance : tb.dut.u_spi_tpm.u_sram_fifo
TotalCoveredPercent
Conditions221777.27
Logical221777.27
Non-Logical00
Event00

 LINE       81
 EXPRESSION (((~full_o)) & ((~gen_normal_fifo.under_rst)))
             -----1-----   ---------------2--------------
-1--2-StatusTests
01CoveredT6,T9,T29
10CoveredT1,T2,T3
11CoveredT5,T6,T7

 LINE       82
 EXPRESSION (((~gen_normal_fifo.empty)) & ((~gen_normal_fifo.under_rst)))
             -------------1------------   ---------------2--------------
-1--2-StatusTests
01CoveredT5,T6,T7
10Not Covered
11CoveredT6,T9,T29

 LINE       100
 EXPRESSION (wvalid_i & wready_o & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011CoveredT5,T6,T7
101Not Covered
110Not Covered
111CoveredT6,T9,T29

 LINE       101
 EXPRESSION (rvalid_o & rready_i & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011CoveredT6,T9,T29
101CoveredT6,T9,T29
110Not Covered
111CoveredT6,T9,T29

 LINE       130
 EXPRESSION ((gen_normal_fifo.fifo_empty && wvalid_i) ? wdata_i : gen_normal_fifo.storage_rdata)
             --------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT6,T9,T29

 LINE       130
 SUB-EXPRESSION (gen_normal_fifo.fifo_empty && wvalid_i)
                 -------------1------------    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT6,T9,T29

 LINE       131
 EXPRESSION (gen_normal_fifo.fifo_empty & ((~wvalid_i)))
             -------------1------------   ------2------
-1--2-StatusTests
01CoveredT6,T9,T29
10CoveredT6,T9,T29
11CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_spi_tpm.u_sram_fifo
Line No.TotalCoveredPercent
Branches 7 7 100.00
TERNARY 130 2 2 100.00
IF 69 3 3 100.00
IF 111 2 2 100.00


130 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T6,T9,T29
0 Covered T1,T2,T3


69 if (!rst_ni) begin -1- 70 under_rst <= 1'b1; ==> 71 end else if (under_rst) begin -2- 72 under_rst <= ~under_rst; ==> 73 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T5,T6,T7
0 0 Covered T5,T6,T7


111 if (fifo_incr_wptr) begin -1- 112 storage[0] <= wdata_i; ==> 113 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T6,T9,T29
0 Covered T3,T5,T6


Assert Coverage for Instance : tb.dut.u_spi_tpm.u_sram_fifo
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
DataKnown_A 150126960 6368395 0 0
DepthKnown_A 150126960 28300783 0 0
RvalidKnown_A 150126960 28300783 0 0
WreadyKnown_A 150126960 28300783 0 0
gen_normal_fifo.depthShallNotExceedParamDepth 150126960 6368395 0 0


DataKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 6368395 0 0
T6 59612 25137 0 0
T7 22059 0 0 0
T9 91883 34255 0 0
T13 4208 0 0 0
T14 864 0 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T18 15134 0 0 0
T26 52526 0 0 0
T29 0 967 0 0
T44 0 765 0 0
T45 0 1011 0 0
T46 0 32164 0 0
T47 0 41962 0 0
T48 0 41335 0 0
T82 0 1779 0 0
T83 0 4650 0 0

DepthKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 28300783 0 0
T5 1008 1008 0 0
T6 59612 57640 0 0
T7 22059 20456 0 0
T9 91883 87920 0 0
T13 4208 0 0 0
T14 864 864 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T26 52526 50088 0 0
T28 0 1008 0 0
T29 0 2312 0 0
T30 0 107360 0 0
T31 0 144 0 0

RvalidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 28300783 0 0
T5 1008 1008 0 0
T6 59612 57640 0 0
T7 22059 20456 0 0
T9 91883 87920 0 0
T13 4208 0 0 0
T14 864 864 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T26 52526 50088 0 0
T28 0 1008 0 0
T29 0 2312 0 0
T30 0 107360 0 0
T31 0 144 0 0

WreadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 28300783 0 0
T5 1008 1008 0 0
T6 59612 57640 0 0
T7 22059 20456 0 0
T9 91883 87920 0 0
T13 4208 0 0 0
T14 864 864 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T26 52526 50088 0 0
T28 0 1008 0 0
T29 0 2312 0 0
T30 0 107360 0 0
T31 0 144 0 0

gen_normal_fifo.depthShallNotExceedParamDepth
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 6368395 0 0
T6 59612 25137 0 0
T7 22059 0 0 0
T9 91883 34255 0 0
T13 4208 0 0 0
T14 864 0 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T18 15134 0 0 0
T26 52526 0 0 0
T29 0 967 0 0
T44 0 765 0 0
T45 0 1011 0 0
T46 0 32164 0 0
T47 0 41962 0 0
T48 0 41335 0 0
T82 0 1779 0 0
T83 0 4650 0 0

Line Coverage for Instance : tb.dut.u_spi_tpm.u_arbiter.u_req_fifo
Line No.TotalCoveredPercent
TOTAL1414100.00
ALWAYS6944100.00
CONT_ASSIGN8111100.00
CONT_ASSIGN8211100.00
CONT_ASSIGN10011100.00
CONT_ASSIGN10111100.00
CONT_ASSIGN12011100.00
ALWAYS12322100.00
CONT_ASSIGN13311100.00
CONT_ASSIGN13411100.00
CONT_ASSIGN13811100.00

68 always_ff @(posedge clk_i or negedge rst_ni) begin 69 1/1 if (!rst_ni) begin Tests: T1 T2 T3  70 1/1 under_rst <= 1'b1; Tests: T1 T2 T3  71 1/1 end else if (under_rst) begin Tests: T5 T6 T7  72 1/1 under_rst <= ~under_rst; Tests: T5 T6 T7  73 end MISSING_ELSE 74 end 75 76 logic empty; 77 78 // full and not ready for write are two different concepts. 79 // The latter can be '0' when under reset, while the former is an indication that no more 80 // entries can be written. 81 1/1 assign wready_o = ~full_o & ~under_rst; Tests: T1 T2 T3  82 1/1 assign rvalid_o = ~empty & ~under_rst; Tests: T1 T2 T3  83 84 prim_fifo_sync_cnt #( 85 .Depth(Depth), 86 .Secure(Secure) 87 ) u_fifo_cnt ( 88 .clk_i, 89 .rst_ni, 90 .clr_i, 91 .incr_wptr_i(fifo_incr_wptr), 92 .incr_rptr_i(fifo_incr_rptr), 93 .wptr_o(fifo_wptr), 94 .rptr_o(fifo_rptr), 95 .full_o, 96 .empty_o(fifo_empty), 97 .depth_o, 98 .err_o 99 ); 100 1/1 assign fifo_incr_wptr = wvalid_i & wready_o & ~under_rst; Tests: T1 T2 T3  101 1/1 assign fifo_incr_rptr = rvalid_o & rready_i & ~under_rst; Tests: T1 T2 T3  102 103 // the generate blocks below are needed to avoid lint errors due to array indexing 104 // in the where the fifo only has one storage element 105 logic [Depth-1:0][Width-1:0] storage; 106 logic [Width-1:0] storage_rdata; 107 if (Depth == 1) begin : gen_depth_eq1 108 assign storage_rdata = storage[0]; 109 110 always_ff @(posedge clk_i) 111 if (fifo_incr_wptr) begin 112 storage[0] <= wdata_i; 113 end 114 115 logic unused_ptrs; 116 assign unused_ptrs = ^{fifo_wptr, fifo_rptr}; 117 118 // fifo with more than one storage element 119 end else begin : gen_depth_gt1 120 1/1 assign storage_rdata = storage[fifo_rptr]; Tests: T1 T2 T3  121 122 always_ff @(posedge clk_i) 123 1/1 if (fifo_incr_wptr) begin Tests: T3 T5 T6  124 1/1 storage[fifo_wptr] <= wdata_i; Tests: T6 T9 T29  125 end MISSING_ELSE 126 end 127 128 logic [Width-1:0] rdata_int; 129 if (Pass == 1'b1) begin : gen_pass 130 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; 131 assign empty = fifo_empty & ~wvalid_i; 132 end else begin : gen_nopass 133 1/1 assign rdata_int = storage_rdata; Tests: T6 T9 T29  134 1/1 assign empty = fifo_empty; Tests: T1 T2 T3  135 end 136 137 if (OutputZeroIfEmpty == 1'b1) begin : gen_output_zero 138 1/1 assign rdata_o = empty ? Width'(0) : rdata_int; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_spi_tpm.u_arbiter.u_req_fifo
TotalCoveredPercent
Conditions16956.25
Logical16956.25
Non-Logical00
Event00

 LINE       81
 EXPRESSION (((~full_o)) & ((~gen_normal_fifo.under_rst)))
             -----1-----   ---------------2--------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT5,T6,T7

 LINE       82
 EXPRESSION (((~gen_normal_fifo.empty)) & ((~gen_normal_fifo.under_rst)))
             -------------1------------   ---------------2--------------
-1--2-StatusTests
01CoveredT5,T6,T7
10Not Covered
11CoveredT6,T9,T29

 LINE       100
 EXPRESSION (wvalid_i & wready_o & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011CoveredT5,T6,T7
101Not Covered
110Not Covered
111CoveredT6,T9,T29

 LINE       101
 EXPRESSION (rvalid_o & rready_i & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011Not Covered
101Not Covered
110Not Covered
111CoveredT6,T9,T29

 LINE       138
 EXPRESSION (gen_normal_fifo.empty ? (2'(0)) : gen_normal_fifo.rdata_int)
             ----------1----------
-1-StatusTests
0CoveredT6,T9,T29
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_spi_tpm.u_arbiter.u_req_fifo
Line No.TotalCoveredPercent
Branches 7 7 100.00
TERNARY 138 2 2 100.00
IF 69 3 3 100.00
IF 123 2 2 100.00


138 assign rdata_o = empty ? Width'(0) : rdata_int; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T6,T9,T29


69 if (!rst_ni) begin -1- 70 under_rst <= 1'b1; ==> 71 end else if (under_rst) begin -2- 72 under_rst <= ~under_rst; ==> 73 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T5,T6,T7
0 0 Covered T5,T6,T7


123 if (fifo_incr_wptr) begin -1- 124 storage[fifo_wptr] <= wdata_i; ==> 125 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T6,T9,T29
0 Covered T3,T5,T6


Assert Coverage for Instance : tb.dut.u_spi_tpm.u_arbiter.u_req_fifo
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
DataKnown_A 150126960 204623 0 0
DepthKnown_A 150126960 28300783 0 0
RvalidKnown_A 150126960 28300783 0 0
WreadyKnown_A 150126960 28300783 0 0
gen_normal_fifo.depthShallNotExceedParamDepth 150126960 204623 0 0


DataKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 204623 0 0
T6 59612 809 0 0
T7 22059 0 0 0
T9 91883 1094 0 0
T13 4208 0 0 0
T14 864 0 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T18 15134 0 0 0
T26 52526 0 0 0
T29 0 31 0 0
T44 0 24 0 0
T45 0 32 0 0
T46 0 1026 0 0
T47 0 1352 0 0
T48 0 1324 0 0
T82 0 57 0 0
T83 0 150 0 0

DepthKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 28300783 0 0
T5 1008 1008 0 0
T6 59612 57640 0 0
T7 22059 20456 0 0
T9 91883 87920 0 0
T13 4208 0 0 0
T14 864 864 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T26 52526 50088 0 0
T28 0 1008 0 0
T29 0 2312 0 0
T30 0 107360 0 0
T31 0 144 0 0

RvalidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 28300783 0 0
T5 1008 1008 0 0
T6 59612 57640 0 0
T7 22059 20456 0 0
T9 91883 87920 0 0
T13 4208 0 0 0
T14 864 864 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T26 52526 50088 0 0
T28 0 1008 0 0
T29 0 2312 0 0
T30 0 107360 0 0
T31 0 144 0 0

WreadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 28300783 0 0
T5 1008 1008 0 0
T6 59612 57640 0 0
T7 22059 20456 0 0
T9 91883 87920 0 0
T13 4208 0 0 0
T14 864 864 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T26 52526 50088 0 0
T28 0 1008 0 0
T29 0 2312 0 0
T30 0 107360 0 0
T31 0 144 0 0

gen_normal_fifo.depthShallNotExceedParamDepth
NameAttemptsReal SuccessesFailuresIncomplete
Total 150126960 204623 0 0
T6 59612 809 0 0
T7 22059 0 0 0
T9 91883 1094 0 0
T13 4208 0 0 0
T14 864 0 0 0
T15 13132 0 0 0
T16 20820 0 0 0
T17 4176 0 0 0
T18 15134 0 0 0
T26 52526 0 0 0
T29 0 31 0 0
T44 0 24 0 0
T45 0 32 0 0
T46 0 1026 0 0
T47 0 1352 0 0
T48 0 1324 0 0
T82 0 57 0 0
T83 0 150 0 0

Line Coverage for Instance : tb.dut.u_tlul2sram_egress.u_reqfifo
Line No.TotalCoveredPercent
TOTAL1515100.00
ALWAYS6944100.00
CONT_ASSIGN8111100.00
CONT_ASSIGN8211100.00
CONT_ASSIGN10011100.00
CONT_ASSIGN10111100.00
CONT_ASSIGN10811100.00
ALWAYS11122100.00
CONT_ASSIGN11611100.00
CONT_ASSIGN13311100.00
CONT_ASSIGN13411100.00
CONT_ASSIGN13811100.00

68 always_ff @(posedge clk_i or negedge rst_ni) begin 69 1/1 if (!rst_ni) begin Tests: T1 T2 T3  70 1/1 under_rst <= 1'b1; Tests: T1 T2 T3  71 1/1 end else if (under_rst) begin Tests: T1 T2 T3  72 1/1 under_rst <= ~under_rst; Tests: T1 T2 T3  73 end MISSING_ELSE 74 end 75 76 logic empty; 77 78 // full and not ready for write are two different concepts. 79 // The latter can be '0' when under reset, while the former is an indication that no more 80 // entries can be written. 81 1/1 assign wready_o = ~full_o & ~under_rst; Tests: T1 T2 T3  82 1/1 assign rvalid_o = ~empty & ~under_rst; Tests: T1 T2 T3  83 84 prim_fifo_sync_cnt #( 85 .Depth(Depth), 86 .Secure(Secure) 87 ) u_fifo_cnt ( 88 .clk_i, 89 .rst_ni, 90 .clr_i, 91 .incr_wptr_i(fifo_incr_wptr), 92 .incr_rptr_i(fifo_incr_rptr), 93 .wptr_o(fifo_wptr), 94 .rptr_o(fifo_rptr), 95 .full_o, 96 .empty_o(fifo_empty), 97 .depth_o, 98 .err_o 99 ); 100 1/1 assign fifo_incr_wptr = wvalid_i & wready_o & ~under_rst; Tests: T1 T2 T3  101 1/1 assign fifo_incr_rptr = rvalid_o & rready_i & ~under_rst; Tests: T1 T2 T3  102 103 // the generate blocks below are needed to avoid lint errors due to array indexing 104 // in the where the fifo only has one storage element 105 logic [Depth-1:0][Width-1:0] storage; 106 logic [Width-1:0] storage_rdata; 107 if (Depth == 1) begin : gen_depth_eq1 108 1/1 assign storage_rdata = storage[0]; Tests: T3 T13 T15  109 110 always_ff @(posedge clk_i) 111 1/1 if (fifo_incr_wptr) begin Tests: T1 T2 T3  112 1/1 storage[0] <= wdata_i; Tests: T3 T13 T15  113 end MISSING_ELSE 114 115 logic unused_ptrs; 116 1/1 assign unused_ptrs = ^{fifo_wptr, fifo_rptr}; Tests: T1 T2 T3  117 118 // fifo with more than one storage element 119 end else begin : gen_depth_gt1 120 assign storage_rdata = storage[fifo_rptr]; 121 122 always_ff @(posedge clk_i) 123 if (fifo_incr_wptr) begin 124 storage[fifo_wptr] <= wdata_i; 125 end 126 end 127 128 logic [Width-1:0] rdata_int; 129 if (Pass == 1'b1) begin : gen_pass 130 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; 131 assign empty = fifo_empty & ~wvalid_i; 132 end else begin : gen_nopass 133 1/1 assign rdata_int = storage_rdata; Tests: T3 T13 T15  134 1/1 assign empty = fifo_empty; Tests: T1 T2 T3  135 end 136 137 if (OutputZeroIfEmpty == 1'b1) begin : gen_output_zero 138 1/1 assign rdata_o = empty ? Width'(0) : rdata_int; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_tlul2sram_egress.u_reqfifo
TotalCoveredPercent
Conditions161168.75
Logical161168.75
Non-Logical00
Event00

 LINE       81
 EXPRESSION (((~full_o)) & ((~gen_normal_fifo.under_rst)))
             -----1-----   ---------------2--------------
-1--2-StatusTests
01CoveredT3,T13,T15
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       82
 EXPRESSION (((~gen_normal_fifo.empty)) & ((~gen_normal_fifo.under_rst)))
             -------------1------------   ---------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT3,T13,T15

 LINE       100
 EXPRESSION (wvalid_i & wready_o & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Not Covered
110Not Covered
111CoveredT3,T13,T15

 LINE       101
 EXPRESSION (rvalid_o & rready_i & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011Not Covered
101CoveredT3,T13,T16
110Not Covered
111CoveredT3,T13,T15

 LINE       138
 EXPRESSION (gen_normal_fifo.empty ? (17'(0)) : gen_normal_fifo.rdata_int)
             ----------1----------
-1-StatusTests
0CoveredT3,T13,T15
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_tlul2sram_egress.u_reqfifo
Line No.TotalCoveredPercent
Branches 7 7 100.00
TERNARY 138 2 2 100.00
IF 69 3 3 100.00
IF 123 2 2 100.00


138 assign rdata_o = empty ? Width'(0) : rdata_int; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T3,T13,T15


69 if (!rst_ni) begin -1- 70 under_rst <= 1'b1; ==> 71 end else if (under_rst) begin -2- 72 under_rst <= ~under_rst; ==> 73 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T1,T2,T3
0 0 Covered T1,T2,T3


123 if (fifo_incr_wptr) begin -1- 124 storage[fifo_wptr] <= wdata_i; ==> 125 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T3,T13,T15
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_tlul2sram_egress.u_reqfifo
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
DataKnown_A 488392848 3148583 0 0
DepthKnown_A 488392848 488306393 0 0
RvalidKnown_A 488392848 488306393 0 0
WreadyKnown_A 488392848 488306393 0 0
gen_normal_fifo.depthShallNotExceedParamDepth 488392848 3148583 0 0


DataKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 3148583 0 0
T3 463556 832 0 0
T4 999 0 0 0
T5 3420 0 0 0
T6 239225 0 0 0
T7 30356 0 0 0
T8 1281 0 0 0
T9 273011 0 0 0
T10 917 0 0 0
T11 1162 0 0 0
T12 7532 0 0 0
T13 0 2582 0 0
T15 0 832 0 0
T16 0 832 0 0
T17 0 839 0 0
T18 0 1856 0 0
T19 0 2641 0 0
T20 0 833 0 0
T22 0 832 0 0
T23 0 4992 0 0

DepthKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 488306393 0 0
T1 1752 1661 0 0
T2 1653 1564 0 0
T3 463556 463466 0 0
T4 999 939 0 0
T5 3420 3369 0 0
T6 239225 239167 0 0
T7 30356 30295 0 0
T8 1281 1215 0 0
T9 273011 272919 0 0
T10 917 832 0 0

RvalidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 488306393 0 0
T1 1752 1661 0 0
T2 1653 1564 0 0
T3 463556 463466 0 0
T4 999 939 0 0
T5 3420 3369 0 0
T6 239225 239167 0 0
T7 30356 30295 0 0
T8 1281 1215 0 0
T9 273011 272919 0 0
T10 917 832 0 0

WreadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 488306393 0 0
T1 1752 1661 0 0
T2 1653 1564 0 0
T3 463556 463466 0 0
T4 999 939 0 0
T5 3420 3369 0 0
T6 239225 239167 0 0
T7 30356 30295 0 0
T8 1281 1215 0 0
T9 273011 272919 0 0
T10 917 832 0 0

gen_normal_fifo.depthShallNotExceedParamDepth
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 3148583 0 0
T3 463556 832 0 0
T4 999 0 0 0
T5 3420 0 0 0
T6 239225 0 0 0
T7 30356 0 0 0
T8 1281 0 0 0
T9 273011 0 0 0
T10 917 0 0 0
T11 1162 0 0 0
T12 7532 0 0 0
T13 0 2582 0 0
T15 0 832 0 0
T16 0 832 0 0
T17 0 839 0 0
T18 0 1856 0 0
T19 0 2641 0 0
T20 0 833 0 0
T22 0 832 0 0
T23 0 4992 0 0

Line Coverage for Instance : tb.dut.u_tlul2sram_egress.u_sramreqfifo
Line No.TotalCoveredPercent
TOTAL151280.00
ALWAYS6944100.00
CONT_ASSIGN8111100.00
CONT_ASSIGN8211100.00
CONT_ASSIGN10011100.00
CONT_ASSIGN10111100.00
CONT_ASSIGN108100.00
ALWAYS1112150.00
CONT_ASSIGN11611100.00
CONT_ASSIGN133100.00
CONT_ASSIGN13411100.00
CONT_ASSIGN13811100.00

68 always_ff @(posedge clk_i or negedge rst_ni) begin 69 1/1 if (!rst_ni) begin Tests: T1 T2 T3  70 1/1 under_rst <= 1'b1; Tests: T1 T2 T3  71 1/1 end else if (under_rst) begin Tests: T1 T2 T3  72 1/1 under_rst <= ~under_rst; Tests: T1 T2 T3  73 end MISSING_ELSE 74 end 75 76 logic empty; 77 78 // full and not ready for write are two different concepts. 79 // The latter can be '0' when under reset, while the former is an indication that no more 80 // entries can be written. 81 1/1 assign wready_o = ~full_o & ~under_rst; Tests: T1 T2 T3  82 1/1 assign rvalid_o = ~empty & ~under_rst; Tests: T1 T2 T3  83 84 prim_fifo_sync_cnt #( 85 .Depth(Depth), 86 .Secure(Secure) 87 ) u_fifo_cnt ( 88 .clk_i, 89 .rst_ni, 90 .clr_i, 91 .incr_wptr_i(fifo_incr_wptr), 92 .incr_rptr_i(fifo_incr_rptr), 93 .wptr_o(fifo_wptr), 94 .rptr_o(fifo_rptr), 95 .full_o, 96 .empty_o(fifo_empty), 97 .depth_o, 98 .err_o 99 ); 100 1/1 assign fifo_incr_wptr = wvalid_i & wready_o & ~under_rst; Tests: T1 T2 T3  101 1/1 assign fifo_incr_rptr = rvalid_o & rready_i & ~under_rst; Tests: T1 T2 T3  102 103 // the generate blocks below are needed to avoid lint errors due to array indexing 104 // in the where the fifo only has one storage element 105 logic [Depth-1:0][Width-1:0] storage; 106 logic [Width-1:0] storage_rdata; 107 if (Depth == 1) begin : gen_depth_eq1 108 0/1 ==> assign storage_rdata = storage[0]; 109 110 always_ff @(posedge clk_i) 111 1/1 if (fifo_incr_wptr) begin Tests: T1 T2 T3  112 0/1 ==> storage[0] <= wdata_i; 113 end MISSING_ELSE 114 115 logic unused_ptrs; 116 1/1 assign unused_ptrs = ^{fifo_wptr, fifo_rptr}; Tests: T1 T2 T3  117 118 // fifo with more than one storage element 119 end else begin : gen_depth_gt1 120 assign storage_rdata = storage[fifo_rptr]; 121 122 always_ff @(posedge clk_i) 123 if (fifo_incr_wptr) begin 124 storage[fifo_wptr] <= wdata_i; 125 end 126 end 127 128 logic [Width-1:0] rdata_int; 129 if (Pass == 1'b1) begin : gen_pass 130 assign rdata_int = (fifo_empty && wvalid_i) ? wdata_i : storage_rdata; 131 assign empty = fifo_empty & ~wvalid_i; 132 end else begin : gen_nopass 133 0/1 ==> assign rdata_int = storage_rdata; 134 1/1 assign empty = fifo_empty; Tests: T1 T2 T3  135 end 136 137 if (OutputZeroIfEmpty == 1'b1) begin : gen_output_zero 138 1/1 assign rdata_o = empty ? Width'(0) : rdata_int; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_tlul2sram_egress.u_sramreqfifo
TotalCoveredPercent
Conditions16531.25
Logical16531.25
Non-Logical00
Event00

 LINE       81
 EXPRESSION (((~full_o)) & ((~gen_normal_fifo.under_rst)))
             -----1-----   ---------------2--------------
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       82
 EXPRESSION (((~gen_normal_fifo.empty)) & ((~gen_normal_fifo.under_rst)))
             -------------1------------   ---------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11Not Covered

 LINE       100
 EXPRESSION (wvalid_i & wready_o & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101Not Covered
110Not Covered
111Not Covered

 LINE       101
 EXPRESSION (rvalid_o & rready_i & ((~gen_normal_fifo.under_rst)))
             ----1---   ----2---   ---------------3--------------
-1--2--3-StatusTests
011Not Covered
101Not Covered
110Not Covered
111Not Covered

 LINE       138
 EXPRESSION (gen_normal_fifo.empty ? (5'(0)) : gen_normal_fifo.rdata_int)
             ----------1----------
-1-StatusTests
0Not Covered
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_tlul2sram_egress.u_sramreqfifo
Line No.TotalCoveredPercent
Branches 7 5 71.43
TERNARY 138 2 1 50.00
IF 69 3 3 100.00
IF 123 2 1 50.00


138 assign rdata_o = empty ? Width'(0) : rdata_int; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Not Covered


69 if (!rst_ni) begin -1- 70 under_rst <= 1'b1; ==> 71 end else if (under_rst) begin -2- 72 under_rst <= ~under_rst; ==> 73 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T1,T2,T3
0 0 Covered T1,T2,T3


123 if (fifo_incr_wptr) begin -1- 124 storage[fifo_wptr] <= wdata_i; ==> 125 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Not Covered
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_tlul2sram_egress.u_sramreqfifo
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 5 5 100.00 3 60.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 5 5 100.00 3 60.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataKnown_A 488392848 0 0 0
DepthKnown_A 488392848 488306393 0 0
RvalidKnown_A 488392848 488306393 0 0
WreadyKnown_A 488392848 488306393 0 0
gen_normal_fifo.depthShallNotExceedParamDepth 488392848 0 0 0


DataKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 0 0 0

DepthKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 488306393 0 0
T1 1752 1661 0 0
T2 1653 1564 0 0
T3 463556 463466 0 0
T4 999 939 0 0
T5 3420 3369 0 0
T6 239225 239167 0 0
T7 30356 30295 0 0
T8 1281 1215 0 0
T9 273011 272919 0 0
T10 917 832 0 0

RvalidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 488306393 0 0
T1 1752 1661 0 0
T2 1653 1564 0 0
T3 463556 463466 0 0
T4 999 939 0 0
T5 3420 3369 0 0
T6 239225 239167 0 0
T7 30356 30295 0 0
T8 1281 1215 0 0
T9 273011 272919 0 0
T10 917 832 0 0

WreadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 488306393 0 0
T1 1752 1661 0 0
T2 1653 1564 0 0
T3 463556 463466 0 0
T4 999 939 0 0
T5 3420 3369 0 0
T6 239225 239167 0 0
T7 30356 30295 0 0
T8 1281 1215 0 0
T9 273011 272919 0 0
T10 917 832 0 0

gen_normal_fifo.depthShallNotExceedParamDepth
NameAttemptsReal SuccessesFailuresIncomplete
Total 488392848 0 0 0

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