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.49 100.00 89.96 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.33 100.00 89.30 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: T3 T16 T8  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: T3 T16 T8  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: T3 T16 T8  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: T3 T16 T8  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
111CoveredT3,T16,T8

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

 LINE       71
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (cnt_incr && ((!cnt_decr))) : cnt_incr)
             ---------------1--------------
-1-StatusTests
0CoveredT3,T16,T8
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
10CoveredT8,T6,T20
11CoveredT3,T16,T8

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

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 T3,T16,T8


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 T3,T16,T8


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 T3,T16,T8
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 T3,T16,T8
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 T3,T16,T8
0 0 - Covered T1,T2,T3
0 - 1 Covered T3,T16,T8
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 665750786 6980107 0 0
BufferDepRsp_A 665750786 664017318 0 0
BufferIncrOverFlow_A 665750786 6980121 0 0
DepBufferRspOrder_A 665750789 15799323 0 0


BufferDecrUnderRun_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 665750786 6980107 0 0
T3 2283 146 0 0
T4 4375 0 0 0
T5 1250 0 0 0
T6 1746 16 0 0
T8 102564 1090 0 0
T9 4220 20 0 0
T10 1263 24 0 0
T11 468 4 0 0
T15 949 0 0 0
T16 3668 146 0 0
T17 3690 146 0 0
T19 0 135 0 0
T20 2210 10 0 0
T27 0 213 0 0
T33 1654 0 0 0
T34 0 71 0 0
T36 0 372 0 0
T59 1169 0 0 0
T64 0 500 0 0

BufferDepRsp_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 665750786 664017318 0 0
T1 2950 2722 0 0
T2 7388 7200 0 0
T3 4566 4388 0 0
T4 8750 7704 0 0
T5 2500 2302 0 0
T6 1746 1552 0 0
T8 102564 102464 0 0
T15 1898 1772 0 0
T16 3668 3490 0 0
T17 3690 3492 0 0

BufferIncrOverFlow_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 665750786 6980121 0 0
T3 2283 146 0 0
T4 4375 0 0 0
T5 1250 0 0 0
T6 1746 16 0 0
T8 102564 1090 0 0
T9 4220 20 0 0
T10 1263 24 0 0
T11 468 5 0 0
T15 949 0 0 0
T16 3668 146 0 0
T17 3690 146 0 0
T19 0 135 0 0
T20 2210 10 0 0
T27 0 213 0 0
T33 1654 0 0 0
T34 0 71 0 0
T36 0 372 0 0
T59 1169 0 0 0
T64 0 500 0 0

DepBufferRspOrder_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 665750789 15799323 0 0
T1 1475 64 0 0
T2 3694 32 0 0
T3 2283 178 0 0
T4 4375 192 0 0
T5 1250 32 0 0
T6 1746 48 0 0
T8 102564 1122 0 0
T9 2110 0 0 0
T10 1263 5 0 0
T11 469 4 0 0
T15 949 32 0 0
T16 3668 178 0 0
T17 3690 178 0 0
T19 0 135 0 0
T20 1105 0 0 0
T27 0 60 0 0
T33 1654 0 0 0
T34 0 14 0 0
T36 0 372 0 0
T59 1169 0 0 0
T64 0 100 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: T3 T8 T6  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: T3 T8 T6  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: T3 T8 T6  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: T3 T8 T6  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
111CoveredT3,T8,T6

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

 LINE       71
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (cnt_incr && ((!cnt_decr))) : cnt_incr)
             ---------------1--------------
-1-StatusTests
0CoveredT3,T8,T6
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
10CoveredT8,T6,T20
11CoveredT3,T8,T6

 LINE       72
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (((!cnt_incr)) && cnt_decr) : cnt_decr)
             ---------------1--------------
-1-StatusTests
0CoveredT3,T8,T6
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
01CoveredT8,T6,T20
10CoveredT1,T2,T3
11CoveredT3,T8,T6

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 T3,T8,T6


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 T3,T8,T6


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 T3,T8,T6
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 T3,T8,T6
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 T3,T8,T6
0 0 - Covered T1,T2,T3
0 - 1 Covered T3,T8,T6
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 332875393 3818631 0 0
BufferDepRsp_A 332875393 332008659 0 0
BufferIncrOverFlow_A 332875393 3818638 0 0
DepBufferRspOrder_A 332875394 8572040 0 0


BufferDecrUnderRun_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 332875393 3818631 0 0
T3 2283 146 0 0
T4 4375 0 0 0
T5 1250 0 0 0
T6 873 16 0 0
T8 51282 470 0 0
T9 2110 20 0 0
T10 0 19 0 0
T11 0 2 0 0
T15 949 0 0 0
T16 1834 0 0 0
T17 1845 0 0 0
T20 1105 10 0 0
T27 0 153 0 0
T34 0 57 0 0
T64 0 400 0 0

BufferDepRsp_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 332875393 332008659 0 0
T1 1475 1361 0 0
T2 3694 3600 0 0
T3 2283 2194 0 0
T4 4375 3852 0 0
T5 1250 1151 0 0
T6 873 776 0 0
T8 51282 51232 0 0
T15 949 886 0 0
T16 1834 1745 0 0
T17 1845 1746 0 0

BufferIncrOverFlow_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 332875393 3818638 0 0
T3 2283 146 0 0
T4 4375 0 0 0
T5 1250 0 0 0
T6 873 16 0 0
T8 51282 470 0 0
T9 2110 20 0 0
T10 0 19 0 0
T11 0 2 0 0
T15 949 0 0 0
T16 1834 0 0 0
T17 1845 0 0 0
T20 1105 10 0 0
T27 0 153 0 0
T34 0 57 0 0
T64 0 400 0 0

DepBufferRspOrder_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 332875394 8572040 0 0
T1 1475 64 0 0
T2 3694 32 0 0
T3 2283 178 0 0
T4 4375 192 0 0
T5 1250 32 0 0
T6 873 48 0 0
T8 51282 502 0 0
T15 949 32 0 0
T16 1834 32 0 0
T17 1845 32 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: T16 T8 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: T16 T8 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: T16 T8 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: T16 T8 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[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
011CoveredT144,T145,T150
101CoveredT1,T2,T3
110Not Covered
111CoveredT16,T8,T17

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

 LINE       71
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (cnt_incr && ((!cnt_decr))) : cnt_incr)
             ---------------1--------------
-1-StatusTests
0CoveredT16,T8,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
10CoveredT8,T64,T19
11CoveredT16,T8,T17

 LINE       72
 EXPRESSION ((incr_buf_sel == decr_buf_sel) ? (((!cnt_incr)) && cnt_decr) : cnt_decr)
             ---------------1--------------
-1-StatusTests
0CoveredT16,T8,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
01CoveredT8,T64,T19
10CoveredT1,T2,T3
11CoveredT16,T8,T17

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 T16,T8,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 T16,T8,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 T16,T8,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 T16,T8,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 T16,T8,T17
0 0 - Covered T1,T2,T3
0 - 1 Covered T16,T8,T17
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 332875393 3161476 0 0
BufferDepRsp_A 332875393 332008659 0 0
BufferIncrOverFlow_A 332875393 3161483 0 0
DepBufferRspOrder_A 332875395 7227283 0 0


BufferDecrUnderRun_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 332875393 3161476 0 0
T6 873 0 0 0
T8 51282 620 0 0
T9 2110 0 0 0
T10 1263 5 0 0
T11 468 2 0 0
T16 1834 146 0 0
T17 1845 146 0 0
T19 0 135 0 0
T20 1105 0 0 0
T27 0 60 0 0
T33 1654 0 0 0
T34 0 14 0 0
T36 0 372 0 0
T59 1169 0 0 0
T64 0 100 0 0

BufferDepRsp_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 332875393 332008659 0 0
T1 1475 1361 0 0
T2 3694 3600 0 0
T3 2283 2194 0 0
T4 4375 3852 0 0
T5 1250 1151 0 0
T6 873 776 0 0
T8 51282 51232 0 0
T15 949 886 0 0
T16 1834 1745 0 0
T17 1845 1746 0 0

BufferIncrOverFlow_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 332875393 3161483 0 0
T6 873 0 0 0
T8 51282 620 0 0
T9 2110 0 0 0
T10 1263 5 0 0
T11 468 3 0 0
T16 1834 146 0 0
T17 1845 146 0 0
T19 0 135 0 0
T20 1105 0 0 0
T27 0 60 0 0
T33 1654 0 0 0
T34 0 14 0 0
T36 0 372 0 0
T59 1169 0 0 0
T64 0 100 0 0

DepBufferRspOrder_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 332875395 7227283 0 0
T6 873 0 0 0
T8 51282 620 0 0
T9 2110 0 0 0
T10 1263 5 0 0
T11 469 4 0 0
T16 1834 146 0 0
T17 1845 146 0 0
T19 0 135 0 0
T20 1105 0 0 0
T27 0 60 0 0
T33 1654 0 0 0
T34 0 14 0 0
T36 0 372 0 0
T59 1169 0 0 0
T64 0 100 0 0

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