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.82 100.00 91.27 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.76 100.00 91.05 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: T1 T2 T7  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: T1 T2 T7  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: T1 T2 T7  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: T1 T2 T7  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
111CoveredT1,T2,T7

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

 LINE       71
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (cnt_incr && ((!cnt_decr))) : cnt_incr)
             ---------------1--------------
-1-StatusTests
0CoveredT1,T2,T7
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,T14,T15
11CoveredT1,T2,T7

 LINE       72
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (((!cnt_incr)) && cnt_decr) : cnt_decr)
             ---------------1--------------
-1-StatusTests
0CoveredT1,T2,T7
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,T14,T15
10CoveredT1,T2,T3
11CoveredT1,T2,T7

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 T1,T2,T7


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 T1,T2,T7


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 T1,T2,T7
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 T1,T2,T7
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 T1,T2,T7
0 0 - Covered T1,T2,T3
0 - 1 Covered T1,T2,T7
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 796773954 6768805 0 0
BufferDepRsp_A 796773954 795051032 0 0
BufferIncrOverFlow_A 796773954 6768820 0 0
DepBufferRspOrder_A 796773956 16461557 0 0


BufferDecrUnderRun_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 796773954 6768805 0 0
T1 2038 146 0 0
T2 1738 10 0 0
T3 8240 0 0 0
T7 5248 20 0 0
T14 24796 968 0 0
T15 7760 162 0 0
T16 0 1609 0 0
T18 3658 146 0 0
T19 4148 146 0 0
T20 3648 7 0 0
T21 2968 0 0 0
T25 0 63 0 0
T26 0 236 0 0
T27 0 4 0 0
T49 0 10499 0 0
T58 47492 1235 0 0
T62 0 1140 0 0

BufferDepRsp_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 796773954 795051032 0 0
T1 4076 3914 0 0
T2 1738 1580 0 0
T3 8240 8104 0 0
T7 5248 5118 0 0
T14 24796 24694 0 0
T15 7760 7610 0 0
T18 3658 3472 0 0
T19 4148 3996 0 0
T20 3648 3532 0 0
T21 2968 2656 0 0

BufferIncrOverFlow_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 796773954 6768820 0 0
T1 2038 146 0 0
T2 1738 10 0 0
T3 8240 0 0 0
T7 5248 20 0 0
T14 24796 968 0 0
T15 7760 162 0 0
T16 0 1609 0 0
T18 3658 146 0 0
T19 4148 146 0 0
T20 3648 7 0 0
T21 2968 0 0 0
T25 0 63 0 0
T26 0 236 0 0
T27 0 4 0 0
T49 0 10499 0 0
T58 47492 1235 0 0
T62 0 1140 0 0

DepBufferRspOrder_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 796773956 16461557 0 0
T1 4076 178 0 0
T2 1738 42 0 0
T3 8240 32 0 0
T7 5248 52 0 0
T14 24796 1000 0 0
T15 7760 194 0 0
T16 0 1609 0 0
T18 3658 178 0 0
T19 4148 178 0 0
T20 3648 39 0 0
T21 2968 64 0 0
T25 0 13 0 0
T26 0 31 0 0
T27 0 4 0 0
T49 0 10499 0 0
T58 0 7 0 0
T62 0 1140 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 T7 T14  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 T7 T14  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 T7 T14  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 T7 T14  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,T7,T14

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

 LINE       71
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (cnt_incr && ((!cnt_decr))) : cnt_incr)
             ---------------1--------------
-1-StatusTests
0CoveredT2,T7,T14
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,T14,T15
11CoveredT2,T7,T14

 LINE       72
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (((!cnt_incr)) && cnt_decr) : cnt_decr)
             ---------------1--------------
-1-StatusTests
0CoveredT2,T7,T14
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,T14,T15
10CoveredT1,T2,T3
11CoveredT2,T7,T14

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,T7,T14


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,T7,T14


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,T7,T14
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,T7,T14
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,T7,T14
0 0 - Covered T1,T2,T3
0 - 1 Covered T2,T7,T14
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 398386977 3468487 0 0
BufferDepRsp_A 398386977 397525516 0 0
BufferIncrOverFlow_A 398386977 3468496 0 0
DepBufferRspOrder_A 398386979 8600562 0 0


BufferDecrUnderRun_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 398386977 3468487 0 0
T2 869 10 0 0
T3 4120 0 0 0
T7 2624 20 0 0
T14 12398 534 0 0
T15 3880 30 0 0
T18 1829 146 0 0
T19 2074 146 0 0
T20 1824 7 0 0
T21 1484 0 0 0
T25 0 50 0 0
T26 0 205 0 0
T58 47492 1228 0 0

BufferDepRsp_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 398386977 397525516 0 0
T1 2038 1957 0 0
T2 869 790 0 0
T3 4120 4052 0 0
T7 2624 2559 0 0
T14 12398 12347 0 0
T15 3880 3805 0 0
T18 1829 1736 0 0
T19 2074 1998 0 0
T20 1824 1766 0 0
T21 1484 1328 0 0

BufferIncrOverFlow_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 398386977 3468496 0 0
T2 869 10 0 0
T3 4120 0 0 0
T7 2624 20 0 0
T14 12398 534 0 0
T15 3880 30 0 0
T18 1829 146 0 0
T19 2074 146 0 0
T20 1824 7 0 0
T21 1484 0 0 0
T25 0 50 0 0
T26 0 205 0 0
T58 47492 1228 0 0

DepBufferRspOrder_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 398386979 8600562 0 0
T1 2038 32 0 0
T2 869 42 0 0
T3 4120 32 0 0
T7 2624 52 0 0
T14 12398 566 0 0
T15 3880 62 0 0
T18 1829 178 0 0
T19 2074 178 0 0
T20 1824 39 0 0
T21 1484 64 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: T1 T14 T15  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: T1 T14 T15  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: T1 T14 T15  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: T1 T14 T15  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
011CoveredT89,T125,T121
101CoveredT1,T2,T3
110Not Covered
111CoveredT1,T14,T15

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

 LINE       71
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (cnt_incr && ((!cnt_decr))) : cnt_incr)
             ---------------1--------------
-1-StatusTests
0CoveredT1,T14,T15
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
10CoveredT14,T15,T16
11CoveredT1,T14,T15

 LINE       72
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (((!cnt_incr)) && cnt_decr) : cnt_decr)
             ---------------1--------------
-1-StatusTests
0CoveredT1,T14,T15
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
01CoveredT14,T15,T16
10CoveredT1,T2,T3
11CoveredT1,T14,T15

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 T1,T14,T15


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 T1,T14,T15


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 T1,T14,T15
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 T1,T14,T15
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 T1,T14,T15
0 0 - Covered T1,T2,T3
0 - 1 Covered T1,T14,T15
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 398386977 3300318 0 0
BufferDepRsp_A 398386977 397525516 0 0
BufferIncrOverFlow_A 398386977 3300324 0 0
DepBufferRspOrder_A 398386977 7860995 0 0


BufferDecrUnderRun_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 398386977 3300318 0 0
T1 2038 146 0 0
T2 869 0 0 0
T3 4120 0 0 0
T7 2624 0 0 0
T14 12398 434 0 0
T15 3880 132 0 0
T16 0 1609 0 0
T18 1829 0 0 0
T19 2074 0 0 0
T20 1824 0 0 0
T21 1484 0 0 0
T25 0 13 0 0
T26 0 31 0 0
T27 0 4 0 0
T49 0 10499 0 0
T58 0 7 0 0
T62 0 1140 0 0

BufferDepRsp_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 398386977 397525516 0 0
T1 2038 1957 0 0
T2 869 790 0 0
T3 4120 4052 0 0
T7 2624 2559 0 0
T14 12398 12347 0 0
T15 3880 3805 0 0
T18 1829 1736 0 0
T19 2074 1998 0 0
T20 1824 1766 0 0
T21 1484 1328 0 0

BufferIncrOverFlow_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 398386977 3300324 0 0
T1 2038 146 0 0
T2 869 0 0 0
T3 4120 0 0 0
T7 2624 0 0 0
T14 12398 434 0 0
T15 3880 132 0 0
T16 0 1609 0 0
T18 1829 0 0 0
T19 2074 0 0 0
T20 1824 0 0 0
T21 1484 0 0 0
T25 0 13 0 0
T26 0 31 0 0
T27 0 4 0 0
T49 0 10499 0 0
T58 0 7 0 0
T62 0 1140 0 0

DepBufferRspOrder_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 398386977 7860995 0 0
T1 2038 146 0 0
T2 869 0 0 0
T3 4120 0 0 0
T7 2624 0 0 0
T14 12398 434 0 0
T15 3880 132 0 0
T16 0 1609 0 0
T18 1829 0 0 0
T19 2074 0 0 0
T20 1824 0 0 0
T21 1484 0 0 0
T25 0 13 0 0
T26 0 31 0 0
T27 0 4 0 0
T49 0 10499 0 0
T58 0 7 0 0
T62 0 1140 0 0

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