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



Module Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_rd.u_rd_buf_dep

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.59 100.00 86.36 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.59 100.00 86.36 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.43 100.00 89.74 100.00 100.00 u_rd


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_rd.u_rd_buf_dep

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.59 100.00 86.36 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.59 100.00 86.36 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.38 100.00 89.52 100.00 100.00 u_rd


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children

Line Coverage for Module : flash_phy_rd_buf_dep
Line No.TotalCoveredPercent
TOTAL2323100.00
ALWAYS4877100.00
CONT_ASSIGN6111100.00
CONT_ASSIGN6211100.00
CONT_ASSIGN6511100.00
CONT_ASSIGN6611100.00
CONT_ASSIGN7111100.00
CONT_ASSIGN7211100.00
ALWAYS7666100.00
ALWAYS9033100.00
CONT_ASSIGN9711100.00
ALWAYS11600

47 always_comb begin 48 1/1 incr_buf_sel = '0; Tests: T1 T2 T3  49 1/1 decr_buf_sel = '0; Tests: T1 T2 T3  50 1/1 for (int unsigned i = 0; i < NumBuf; i++) begin Tests: T1 T2 T3  51 1/1 if (wr_buf_i[i]) begin Tests: T1 T2 T3  52 1/1 incr_buf_sel = buf_mux_cnt[i]; Tests: T2 T3 T17  53 end MISSING_ELSE 54 1/1 if (rd_buf_i[i]) begin Tests: T1 T2 T3  55 1/1 decr_buf_sel = buf_mux_cnt[i]; Tests: T2 T3 T17  56 end MISSING_ELSE 57 end 58 end // always_comb 59 60 logic [BufDepCntWidth-1:0] curr_incr_cnt, curr_decr_cnt; 61 1/1 assign curr_incr_cnt = buf_dependency_cnt[incr_buf_sel]; Tests: T1 T2 T3  62 1/1 assign curr_decr_cnt = buf_dependency_cnt[decr_buf_sel]; Tests: T1 T2 T3  63 64 logic cnt_incr, cnt_decr; 65 1/1 assign cnt_incr = en_i & fifo_wr_i & (curr_incr_cnt < RspOrderDepth); Tests: T1 T2 T3  66 1/1 assign cnt_decr = en_i & fifo_rd_i & (curr_decr_cnt > '0); Tests: T1 T2 T3  67 68 //assign cnt_decr = fifo_rd_i & (rsp_fifo_vld & data_valid_o) & (curr_decr_cnt > '0); 69 70 logic fin_cnt_incr, fin_cnt_decr; 71 1/1 assign fin_cnt_incr = (incr_buf_sel == decr_buf_sel) ? cnt_incr && !cnt_decr : cnt_incr; Tests: T1 T2 T3  72 1/1 assign fin_cnt_decr = (incr_buf_sel == decr_buf_sel) ? !cnt_incr && cnt_decr : cnt_decr; Tests: T1 T2 T3  73 74 // This tells us which buffer currently has a dependency to an item in the rsp_order_fifo 75 always_ff @(posedge clk_i or negedge rst_ni) begin 76 1/1 if (!rst_ni) begin Tests: T1 T2 T3  77 1/1 buf_dependency_cnt <= '0; Tests: T1 T2 T3  78 end else begin 79 1/1 if (fin_cnt_incr) begin Tests: T1 T2 T3  80 1/1 buf_dependency_cnt[incr_buf_sel] <= curr_incr_cnt + 1'b1; Tests: T2 T3 T17  81 end MISSING_ELSE 82 1/1 if (fin_cnt_decr) begin Tests: T1 T2 T3  83 1/1 buf_dependency_cnt[decr_buf_sel] <= curr_decr_cnt - 1'b1; Tests: T2 T3 T17  84 end MISSING_ELSE 85 end 86 end 87 88 // per buffer dependency determination 89 always_comb begin 90 1/1 dependency_o = '0; Tests: T1 T2 T3  91 1/1 for (int i = 0; i < NumBuf; i++) begin Tests: T1 T2 T3  92 1/1 dependency_o[i] = |buf_dependency_cnt[i]; Tests: T1 T2 T3  93 end 94 end 95 96 // all buffer entries currently have a dependency 97 1/1 assign all_dependency_o = &dependency_o; Tests: T1 T2 T3  98 99 100 // If there are more buffers than there are number of response fifo entries, we an never have 101 // a fully dependent condition 102 `ASSERT(BufferDepRsp_A, NumBuf > RspOrderDepth |-> ~all_dependency_o) 103 104 // We should never attempt to increment when at max value 105 `ASSERT(BufferIncrOverFlow_A, en_i & fifo_wr_i |-> curr_incr_cnt < RspOrderDepth) 106 107 // We should never attempt to decrement when at min value 108 `ASSERT(BufferDecrUnderRun_A, en_i & fifo_rd_i |-> (curr_decr_cnt > '0)) 109 110 // The total number of dependent buffers cannot never exceed the size of response queue 111 `ifdef INC_ASSERT 112 //VCS coverage off 113 // pragma coverage off 114 logic [31:0] assert_cnt; 115 always_comb begin 116 unreachable assert_cnt = '0; 117 unreachable for (int unsigned i = 0; i < NumBuf; i++) begin 118 unreachable assert_cnt = assert_cnt + dependency_o[i];

Cond Coverage for Module : flash_phy_rd_buf_dep
TotalCoveredPercent
Conditions221986.36
Logical221986.36
Non-Logical00
Event00

 LINE       65
 EXPRESSION (en_i & fifo_wr_i & (curr_incr_cnt < flash_phy_pkg::RspOrderDepth))
             --1-   ----2----   -----------------------3----------------------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110Not Covered
111CoveredT2,T3,T17

 LINE       66
 EXPRESSION (en_i & fifo_rd_i & (curr_decr_cnt > '0))
             --1-   ----2----   ----------3---------
-1--2--3-StatusTests
011Not Covered
101CoveredT2,T3,T17
110Not Covered
111CoveredT2,T3,T17

 LINE       71
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (cnt_incr && ((!cnt_decr))) : cnt_incr)
             ---------------1--------------
-1-StatusTests
0CoveredT2,T3,T17
1CoveredT1,T2,T3

 LINE       71
 SUB-EXPRESSION (incr_buf_sel == decr_buf_sel)
                ---------------1--------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       71
 SUB-EXPRESSION (cnt_incr && ((!cnt_decr)))
                 ----1---    ------2------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT2,T3,T15
11CoveredT2,T3,T17

 LINE       72
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (((!cnt_incr)) && cnt_decr) : cnt_decr)
             ---------------1--------------
-1-StatusTests
0CoveredT2,T3,T17
1CoveredT1,T2,T3

 LINE       72
 SUB-EXPRESSION (incr_buf_sel == decr_buf_sel)
                ---------------1--------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       72
 SUB-EXPRESSION (((!cnt_incr)) && cnt_decr)
                 ------1------    ----2---
-1--2-StatusTests
01CoveredT2,T3,T15
10CoveredT1,T2,T3
11CoveredT2,T3,T17

Branch Coverage for Module : flash_phy_rd_buf_dep
Line No.TotalCoveredPercent
Branches 13 13 100.00
TERNARY 71 2 2 100.00
TERNARY 72 2 2 100.00
IF 51 2 2 100.00
IF 54 2 2 100.00
IF 76 5 5 100.00


71 assign fin_cnt_incr = (incr_buf_sel == decr_buf_sel) ? cnt_incr && !cnt_decr : cnt_incr; -1- ==> ==>

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


72 assign fin_cnt_decr = (incr_buf_sel == decr_buf_sel) ? !cnt_incr && cnt_decr : cnt_decr; -1- ==> ==>

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


51 if (wr_buf_i[i]) begin -1- 52 incr_buf_sel = buf_mux_cnt[i]; ==> 53 end MISSING_ELSE ==>

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


54 if (rd_buf_i[i]) begin -1- 55 decr_buf_sel = buf_mux_cnt[i]; ==> 56 end MISSING_ELSE ==>

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


76 if (!rst_ni) begin -1- 77 buf_dependency_cnt <= '0; ==> 78 end else begin 79 if (fin_cnt_incr) begin -2- 80 buf_dependency_cnt[incr_buf_sel] <= curr_incr_cnt + 1'b1; ==> 81 end MISSING_ELSE ==> 82 if (fin_cnt_decr) begin -3- 83 buf_dependency_cnt[decr_buf_sel] <= curr_decr_cnt - 1'b1; ==> 84 end MISSING_ELSE ==>

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


Assert Coverage for Module : flash_phy_rd_buf_dep
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
BufferDecrUnderRun_A 776511532 6916659 0 0
BufferDepRsp_A 776511532 774831282 0 0
BufferIncrOverFlow_A 776511532 6916673 0 0
DepBufferRspOrder_A 776511534 16517328 0 0


BufferDecrUnderRun_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 776511532 6916659 0 0
T2 21696 806 0 0
T3 2448 10 0 0
T4 1780 0 0 0
T7 1944 1 0 0
T10 0 6 0 0
T12 4004 20 0 0
T13 0 44 0 0
T14 0 1680 0 0
T15 0 95 0 0
T17 3088 146 0 0
T18 3900 146 0 0
T19 4606 146 0 0
T20 2946 41 0 0
T23 14598 243 0 0
T51 0 1312 0 0
T54 0 200 0 0
T58 0 5 0 0

BufferDepRsp_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 776511532 774831282 0 0
T1 7812 7706 0 0
T2 21696 21556 0 0
T3 2448 2334 0 0
T4 1780 1680 0 0
T7 1944 1844 0 0
T12 4004 3888 0 0
T17 3088 2978 0 0
T18 3900 3732 0 0
T19 4606 4422 0 0
T20 2946 2676 0 0

BufferIncrOverFlow_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 776511532 6916673 0 0
T2 21696 806 0 0
T3 2448 10 0 0
T4 1780 0 0 0
T7 1944 1 0 0
T10 0 6 0 0
T12 4004 20 0 0
T13 0 44 0 0
T14 0 1680 0 0
T15 0 95 0 0
T17 3088 146 0 0
T18 3900 146 0 0
T19 4606 146 0 0
T20 2946 41 0 0
T23 14598 243 0 0
T51 0 1312 0 0
T54 0 200 0 0
T58 0 5 0 0

DepBufferRspOrder_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 776511534 16517328 0 0
T1 3906 32 0 0
T2 21696 838 0 0
T3 2448 42 0 0
T4 1780 32 0 0
T7 1944 33 0 0
T10 0 6 0 0
T12 4004 52 0 0
T13 0 11 0 0
T15 0 95 0 0
T17 3088 178 0 0
T18 3900 178 0 0
T19 4606 178 0 0
T20 2946 105 0 0
T23 7299 59 0 0
T51 0 1312 0 0
T54 0 200 0 0
T58 0 5 0 0

Line Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_rd.u_rd_buf_dep
Line No.TotalCoveredPercent
TOTAL2323100.00
ALWAYS4877100.00
CONT_ASSIGN6111100.00
CONT_ASSIGN6211100.00
CONT_ASSIGN6511100.00
CONT_ASSIGN6611100.00
CONT_ASSIGN7111100.00
CONT_ASSIGN7211100.00
ALWAYS7666100.00
ALWAYS9033100.00
CONT_ASSIGN9711100.00
ALWAYS11600

47 always_comb begin 48 1/1 incr_buf_sel = '0; Tests: T1 T2 T3  49 1/1 decr_buf_sel = '0; Tests: T1 T2 T3  50 1/1 for (int unsigned i = 0; i < NumBuf; i++) begin Tests: T1 T2 T3  51 1/1 if (wr_buf_i[i]) begin Tests: T1 T2 T3  52 1/1 incr_buf_sel = buf_mux_cnt[i]; Tests: T2 T3 T17  53 end MISSING_ELSE 54 1/1 if (rd_buf_i[i]) begin Tests: T1 T2 T3  55 1/1 decr_buf_sel = buf_mux_cnt[i]; Tests: T2 T3 T17  56 end MISSING_ELSE 57 end 58 end // always_comb 59 60 logic [BufDepCntWidth-1:0] curr_incr_cnt, curr_decr_cnt; 61 1/1 assign curr_incr_cnt = buf_dependency_cnt[incr_buf_sel]; Tests: T1 T2 T3  62 1/1 assign curr_decr_cnt = buf_dependency_cnt[decr_buf_sel]; Tests: T1 T2 T3  63 64 logic cnt_incr, cnt_decr; 65 1/1 assign cnt_incr = en_i & fifo_wr_i & (curr_incr_cnt < RspOrderDepth); Tests: T1 T2 T3  66 1/1 assign cnt_decr = en_i & fifo_rd_i & (curr_decr_cnt > '0); Tests: T1 T2 T3  67 68 //assign cnt_decr = fifo_rd_i & (rsp_fifo_vld & data_valid_o) & (curr_decr_cnt > '0); 69 70 logic fin_cnt_incr, fin_cnt_decr; 71 1/1 assign fin_cnt_incr = (incr_buf_sel == decr_buf_sel) ? cnt_incr && !cnt_decr : cnt_incr; Tests: T1 T2 T3  72 1/1 assign fin_cnt_decr = (incr_buf_sel == decr_buf_sel) ? !cnt_incr && cnt_decr : cnt_decr; Tests: T1 T2 T3  73 74 // This tells us which buffer currently has a dependency to an item in the rsp_order_fifo 75 always_ff @(posedge clk_i or negedge rst_ni) begin 76 1/1 if (!rst_ni) begin Tests: T1 T2 T3  77 1/1 buf_dependency_cnt <= '0; Tests: T1 T2 T3  78 end else begin 79 1/1 if (fin_cnt_incr) begin Tests: T1 T2 T3  80 1/1 buf_dependency_cnt[incr_buf_sel] <= curr_incr_cnt + 1'b1; Tests: T2 T3 T17  81 end MISSING_ELSE 82 1/1 if (fin_cnt_decr) begin Tests: T1 T2 T3  83 1/1 buf_dependency_cnt[decr_buf_sel] <= curr_decr_cnt - 1'b1; Tests: T2 T3 T17  84 end MISSING_ELSE 85 end 86 end 87 88 // per buffer dependency determination 89 always_comb begin 90 1/1 dependency_o = '0; Tests: T1 T2 T3  91 1/1 for (int i = 0; i < NumBuf; i++) begin Tests: T1 T2 T3  92 1/1 dependency_o[i] = |buf_dependency_cnt[i]; Tests: T1 T2 T3  93 end 94 end 95 96 // all buffer entries currently have a dependency 97 1/1 assign all_dependency_o = &dependency_o; Tests: T1 T2 T3  98 99 100 // If there are more buffers than there are number of response fifo entries, we an never have 101 // a fully dependent condition 102 `ASSERT(BufferDepRsp_A, NumBuf > RspOrderDepth |-> ~all_dependency_o) 103 104 // We should never attempt to increment when at max value 105 `ASSERT(BufferIncrOverFlow_A, en_i & fifo_wr_i |-> curr_incr_cnt < RspOrderDepth) 106 107 // We should never attempt to decrement when at min value 108 `ASSERT(BufferDecrUnderRun_A, en_i & fifo_rd_i |-> (curr_decr_cnt > '0)) 109 110 // The total number of dependent buffers cannot never exceed the size of response queue 111 `ifdef INC_ASSERT 112 //VCS coverage off 113 // pragma coverage off 114 logic [31:0] assert_cnt; 115 always_comb begin 116 unreachable assert_cnt = '0; 117 unreachable for (int unsigned i = 0; i < NumBuf; i++) begin 118 unreachable assert_cnt = assert_cnt + dependency_o[i];

Cond Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_rd.u_rd_buf_dep
TotalCoveredPercent
Conditions221986.36
Logical221986.36
Non-Logical00
Event00

 LINE       65
 EXPRESSION (en_i & fifo_wr_i & (curr_incr_cnt < flash_phy_pkg::RspOrderDepth))
             --1-   ----2----   -----------------------3----------------------
-1--2--3-StatusTests
011CoveredT1,T2,T3
101CoveredT1,T2,T3
110Not Covered
111CoveredT2,T3,T17

 LINE       66
 EXPRESSION (en_i & fifo_rd_i & (curr_decr_cnt > '0))
             --1-   ----2----   ----------3---------
-1--2--3-StatusTests
011Not Covered
101CoveredT2,T3,T17
110Not Covered
111CoveredT2,T3,T17

 LINE       71
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (cnt_incr && ((!cnt_decr))) : cnt_incr)
             ---------------1--------------
-1-StatusTests
0CoveredT2,T3,T17
1CoveredT1,T2,T3

 LINE       71
 SUB-EXPRESSION (incr_buf_sel == decr_buf_sel)
                ---------------1--------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       71
 SUB-EXPRESSION (cnt_incr && ((!cnt_decr)))
                 ----1---    ------2------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT2,T3,T15
11CoveredT2,T3,T17

 LINE       72
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (((!cnt_incr)) && cnt_decr) : cnt_decr)
             ---------------1--------------
-1-StatusTests
0CoveredT2,T3,T17
1CoveredT1,T2,T3

 LINE       72
 SUB-EXPRESSION (incr_buf_sel == decr_buf_sel)
                ---------------1--------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       72
 SUB-EXPRESSION (((!cnt_incr)) && cnt_decr)
                 ------1------    ----2---
-1--2-StatusTests
01CoveredT2,T3,T15
10CoveredT1,T2,T3
11CoveredT2,T3,T17

Branch Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_rd.u_rd_buf_dep
Line No.TotalCoveredPercent
Branches 13 13 100.00
TERNARY 71 2 2 100.00
TERNARY 72 2 2 100.00
IF 51 2 2 100.00
IF 54 2 2 100.00
IF 76 5 5 100.00


71 assign fin_cnt_incr = (incr_buf_sel == decr_buf_sel) ? cnt_incr && !cnt_decr : cnt_incr; -1- ==> ==>

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


72 assign fin_cnt_decr = (incr_buf_sel == decr_buf_sel) ? !cnt_incr && cnt_decr : cnt_decr; -1- ==> ==>

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


51 if (wr_buf_i[i]) begin -1- 52 incr_buf_sel = buf_mux_cnt[i]; ==> 53 end MISSING_ELSE ==>

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


54 if (rd_buf_i[i]) begin -1- 55 decr_buf_sel = buf_mux_cnt[i]; ==> 56 end MISSING_ELSE ==>

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


76 if (!rst_ni) begin -1- 77 buf_dependency_cnt <= '0; ==> 78 end else begin 79 if (fin_cnt_incr) begin -2- 80 buf_dependency_cnt[incr_buf_sel] <= curr_incr_cnt + 1'b1; ==> 81 end MISSING_ELSE ==> 82 if (fin_cnt_decr) begin -3- 83 buf_dependency_cnt[decr_buf_sel] <= curr_decr_cnt - 1'b1; ==> 84 end MISSING_ELSE ==>

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


Assert Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_rd.u_rd_buf_dep
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
BufferDecrUnderRun_A 388255766 3525564 0 0
BufferDepRsp_A 388255766 387415641 0 0
BufferIncrOverFlow_A 388255766 3525567 0 0
DepBufferRspOrder_A 388255767 8665150 0 0


BufferDecrUnderRun_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 388255766 3525564 0 0
T2 10848 408 0 0
T3 1224 10 0 0
T4 890 0 0 0
T7 972 1 0 0
T12 2002 20 0 0
T13 0 33 0 0
T14 0 1680 0 0
T17 1544 146 0 0
T18 1950 0 0 0
T19 2303 146 0 0
T20 1473 33 0 0
T23 7299 184 0 0

BufferDepRsp_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 388255766 387415641 0 0
T1 3906 3853 0 0
T2 10848 10778 0 0
T3 1224 1167 0 0
T4 890 840 0 0
T7 972 922 0 0
T12 2002 1944 0 0
T17 1544 1489 0 0
T18 1950 1866 0 0
T19 2303 2211 0 0
T20 1473 1338 0 0

BufferIncrOverFlow_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 388255766 3525567 0 0
T2 10848 408 0 0
T3 1224 10 0 0
T4 890 0 0 0
T7 972 1 0 0
T12 2002 20 0 0
T13 0 33 0 0
T14 0 1680 0 0
T17 1544 146 0 0
T18 1950 0 0 0
T19 2303 146 0 0
T20 1473 33 0 0
T23 7299 184 0 0

DepBufferRspOrder_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 388255767 8665150 0 0
T1 3906 32 0 0
T2 10848 440 0 0
T3 1224 42 0 0
T4 890 32 0 0
T7 972 33 0 0
T12 2002 52 0 0
T17 1544 178 0 0
T18 1950 32 0 0
T19 2303 178 0 0
T20 1473 97 0 0

Line Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_rd.u_rd_buf_dep
Line No.TotalCoveredPercent
TOTAL2323100.00
ALWAYS4877100.00
CONT_ASSIGN6111100.00
CONT_ASSIGN6211100.00
CONT_ASSIGN6511100.00
CONT_ASSIGN6611100.00
CONT_ASSIGN7111100.00
CONT_ASSIGN7211100.00
ALWAYS7666100.00
ALWAYS9033100.00
CONT_ASSIGN9711100.00
ALWAYS11600

47 always_comb begin 48 1/1 incr_buf_sel = '0; Tests: T1 T2 T3  49 1/1 decr_buf_sel = '0; Tests: T1 T2 T3  50 1/1 for (int unsigned i = 0; i < NumBuf; i++) begin Tests: T1 T2 T3  51 1/1 if (wr_buf_i[i]) begin Tests: T1 T2 T3  52 1/1 incr_buf_sel = buf_mux_cnt[i]; Tests: T2 T18 T20  53 end MISSING_ELSE 54 1/1 if (rd_buf_i[i]) begin Tests: T1 T2 T3  55 1/1 decr_buf_sel = buf_mux_cnt[i]; Tests: T2 T18 T20  56 end MISSING_ELSE 57 end 58 end // always_comb 59 60 logic [BufDepCntWidth-1:0] curr_incr_cnt, curr_decr_cnt; 61 1/1 assign curr_incr_cnt = buf_dependency_cnt[incr_buf_sel]; Tests: T1 T2 T3  62 1/1 assign curr_decr_cnt = buf_dependency_cnt[decr_buf_sel]; Tests: T1 T2 T3  63 64 logic cnt_incr, cnt_decr; 65 1/1 assign cnt_incr = en_i & fifo_wr_i & (curr_incr_cnt < RspOrderDepth); Tests: T1 T2 T3  66 1/1 assign cnt_decr = en_i & fifo_rd_i & (curr_decr_cnt > '0); Tests: T1 T2 T3  67 68 //assign cnt_decr = fifo_rd_i & (rsp_fifo_vld & data_valid_o) & (curr_decr_cnt > '0); 69 70 logic fin_cnt_incr, fin_cnt_decr; 71 1/1 assign fin_cnt_incr = (incr_buf_sel == decr_buf_sel) ? cnt_incr && !cnt_decr : cnt_incr; Tests: T1 T2 T3  72 1/1 assign fin_cnt_decr = (incr_buf_sel == decr_buf_sel) ? !cnt_incr && cnt_decr : cnt_decr; Tests: T1 T2 T3  73 74 // This tells us which buffer currently has a dependency to an item in the rsp_order_fifo 75 always_ff @(posedge clk_i or negedge rst_ni) begin 76 1/1 if (!rst_ni) begin Tests: T1 T2 T3  77 1/1 buf_dependency_cnt <= '0; Tests: T1 T2 T3  78 end else begin 79 1/1 if (fin_cnt_incr) begin Tests: T1 T2 T3  80 1/1 buf_dependency_cnt[incr_buf_sel] <= curr_incr_cnt + 1'b1; Tests: T2 T18 T20  81 end MISSING_ELSE 82 1/1 if (fin_cnt_decr) begin Tests: T1 T2 T3  83 1/1 buf_dependency_cnt[decr_buf_sel] <= curr_decr_cnt - 1'b1; Tests: T2 T18 T20  84 end MISSING_ELSE 85 end 86 end 87 88 // per buffer dependency determination 89 always_comb begin 90 1/1 dependency_o = '0; Tests: T1 T2 T3  91 1/1 for (int i = 0; i < NumBuf; i++) begin Tests: T1 T2 T3  92 1/1 dependency_o[i] = |buf_dependency_cnt[i]; Tests: T1 T2 T3  93 end 94 end 95 96 // all buffer entries currently have a dependency 97 1/1 assign all_dependency_o = &dependency_o; Tests: T1 T2 T3  98 99 100 // If there are more buffers than there are number of response fifo entries, we an never have 101 // a fully dependent condition 102 `ASSERT(BufferDepRsp_A, NumBuf > RspOrderDepth |-> ~all_dependency_o) 103 104 // We should never attempt to increment when at max value 105 `ASSERT(BufferIncrOverFlow_A, en_i & fifo_wr_i |-> curr_incr_cnt < RspOrderDepth) 106 107 // We should never attempt to decrement when at min value 108 `ASSERT(BufferDecrUnderRun_A, en_i & fifo_rd_i |-> (curr_decr_cnt > '0)) 109 110 // The total number of dependent buffers cannot never exceed the size of response queue 111 `ifdef INC_ASSERT 112 //VCS coverage off 113 // pragma coverage off 114 logic [31:0] assert_cnt; 115 always_comb begin 116 unreachable assert_cnt = '0; 117 unreachable for (int unsigned i = 0; i < NumBuf; i++) begin 118 unreachable assert_cnt = assert_cnt + dependency_o[i];

Cond Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_rd.u_rd_buf_dep
TotalCoveredPercent
Conditions221986.36
Logical221986.36
Non-Logical00
Event00

 LINE       65
 EXPRESSION (en_i & fifo_wr_i & (curr_incr_cnt < flash_phy_pkg::RspOrderDepth))
             --1-   ----2----   -----------------------3----------------------
-1--2--3-StatusTests
011CoveredT120,T121,T77
101CoveredT1,T2,T3
110Not Covered
111CoveredT2,T18,T20

 LINE       66
 EXPRESSION (en_i & fifo_rd_i & (curr_decr_cnt > '0))
             --1-   ----2----   ----------3---------
-1--2--3-StatusTests
011Not Covered
101CoveredT2,T18,T20
110Not Covered
111CoveredT2,T18,T20

 LINE       71
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (cnt_incr && ((!cnt_decr))) : cnt_incr)
             ---------------1--------------
-1-StatusTests
0CoveredT2,T18,T20
1CoveredT1,T2,T3

 LINE       71
 SUB-EXPRESSION (incr_buf_sel == decr_buf_sel)
                ---------------1--------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       71
 SUB-EXPRESSION (cnt_incr && ((!cnt_decr)))
                 ----1---    ------2------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT2,T15,T54
11CoveredT2,T18,T20

 LINE       72
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (((!cnt_incr)) && cnt_decr) : cnt_decr)
             ---------------1--------------
-1-StatusTests
0CoveredT2,T18,T20
1CoveredT1,T2,T3

 LINE       72
 SUB-EXPRESSION (incr_buf_sel == decr_buf_sel)
                ---------------1--------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       72
 SUB-EXPRESSION (((!cnt_incr)) && cnt_decr)
                 ------1------    ----2---
-1--2-StatusTests
01CoveredT2,T15,T54
10CoveredT1,T2,T3
11CoveredT2,T18,T20

Branch Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_rd.u_rd_buf_dep
Line No.TotalCoveredPercent
Branches 13 13 100.00
TERNARY 71 2 2 100.00
TERNARY 72 2 2 100.00
IF 51 2 2 100.00
IF 54 2 2 100.00
IF 76 5 5 100.00


71 assign fin_cnt_incr = (incr_buf_sel == decr_buf_sel) ? cnt_incr && !cnt_decr : cnt_incr; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T2,T18,T20


72 assign fin_cnt_decr = (incr_buf_sel == decr_buf_sel) ? !cnt_incr && cnt_decr : cnt_decr; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T2,T18,T20


51 if (wr_buf_i[i]) begin -1- 52 incr_buf_sel = buf_mux_cnt[i]; ==> 53 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T2,T18,T20
0 Covered T1,T2,T3


54 if (rd_buf_i[i]) begin -1- 55 decr_buf_sel = buf_mux_cnt[i]; ==> 56 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T2,T18,T20
0 Covered T1,T2,T3


76 if (!rst_ni) begin -1- 77 buf_dependency_cnt <= '0; ==> 78 end else begin 79 if (fin_cnt_incr) begin -2- 80 buf_dependency_cnt[incr_buf_sel] <= curr_incr_cnt + 1'b1; ==> 81 end MISSING_ELSE ==> 82 if (fin_cnt_decr) begin -3- 83 buf_dependency_cnt[decr_buf_sel] <= curr_decr_cnt - 1'b1; ==> 84 end MISSING_ELSE ==>

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


Assert Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_rd.u_rd_buf_dep
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
BufferDecrUnderRun_A 388255766 3391095 0 0
BufferDepRsp_A 388255766 387415641 0 0
BufferIncrOverFlow_A 388255766 3391106 0 0
DepBufferRspOrder_A 388255767 7852178 0 0


BufferDecrUnderRun_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 388255766 3391095 0 0
T2 10848 398 0 0
T3 1224 0 0 0
T4 890 0 0 0
T7 972 0 0 0
T10 0 6 0 0
T12 2002 0 0 0
T13 0 11 0 0
T15 0 95 0 0
T17 1544 0 0 0
T18 1950 146 0 0
T19 2303 0 0 0
T20 1473 8 0 0
T23 7299 59 0 0
T51 0 1312 0 0
T54 0 200 0 0
T58 0 5 0 0

BufferDepRsp_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 388255766 387415641 0 0
T1 3906 3853 0 0
T2 10848 10778 0 0
T3 1224 1167 0 0
T4 890 840 0 0
T7 972 922 0 0
T12 2002 1944 0 0
T17 1544 1489 0 0
T18 1950 1866 0 0
T19 2303 2211 0 0
T20 1473 1338 0 0

BufferIncrOverFlow_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 388255766 3391106 0 0
T2 10848 398 0 0
T3 1224 0 0 0
T4 890 0 0 0
T7 972 0 0 0
T10 0 6 0 0
T12 2002 0 0 0
T13 0 11 0 0
T15 0 95 0 0
T17 1544 0 0 0
T18 1950 146 0 0
T19 2303 0 0 0
T20 1473 8 0 0
T23 7299 59 0 0
T51 0 1312 0 0
T54 0 200 0 0
T58 0 5 0 0

DepBufferRspOrder_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 388255767 7852178 0 0
T2 10848 398 0 0
T3 1224 0 0 0
T4 890 0 0 0
T7 972 0 0 0
T10 0 6 0 0
T12 2002 0 0 0
T13 0 11 0 0
T15 0 95 0 0
T17 1544 0 0 0
T18 1950 146 0 0
T19 2303 0 0 0
T20 1473 8 0 0
T23 7299 59 0 0
T51 0 1312 0 0
T54 0 200 0 0
T58 0 5 0 0

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