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



Module Instance : tb.dut.u_eflash.u_flash.gen_generic.u_impl_generic.gen_prim_flash_banks[0].u_prim_flash_bank.u_phy_cov_if

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
89.51 100.00 85.19 83.33


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
89.51 100.00 85.19 83.33


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
91.99 96.48 92.86 87.50 91.11 gen_prim_flash_banks[0].u_prim_flash_bank


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_eflash.u_flash.gen_generic.u_impl_generic.gen_prim_flash_banks[1].u_prim_flash_bank.u_phy_cov_if

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
89.51 100.00 85.19 83.33


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
89.51 100.00 85.19 83.33


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
93.55 96.48 92.86 93.75 91.11 gen_prim_flash_banks[1].u_prim_flash_bank


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children

Line Coverage for Module : flash_ctrl_phy_cov_if
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN2411100.00
CONT_ASSIGN2611100.00
ALWAYS3288100.00
ALWAYS4344100.00
ALWAYS5633100.00
CONT_ASSIGN6311100.00

23 logic any_req; 24 1/1 assign any_req = rd_req || prog_req || pg_erase_req || bk_erase_req; Tests: T1 T2 T3  25 logic any_vld_req; 26 1/1 assign any_vld_req = any_req && ack; Tests: T1 T2 T3  27 28 // Decode current command 29 typedef enum logic[1:0] {READ, PROG, ERASE, NONE} cmd_e; 30 cmd_e cur_cmd; 31 always_comb begin 32 1/1 cur_cmd = NONE; Tests: T1 T2 T3  33 1/1 if (any_vld_req) begin Tests: T1 T2 T3  34 2/2 if (rd_req) cur_cmd = READ; Tests: T1 T2 T3  | T1 T2 T3  35 2/2 else if (prog_req) cur_cmd = PROG; Tests: T2 T10 T18  | T2 T10 T18  36 2/2 else if (pg_erase_req || bk_erase_req) cur_cmd = ERASE; Tests: T2 T18 T4  | T2 T18 T4  ==> MISSING_ELSE 37 end MISSING_ELSE 38 end 39 40 // previous command 41 cmd_e prv_cmd_q; 42 always @(posedge clk_i) begin 43 1/1 if (!rst_ni) begin Tests: T1 T2 T3  44 1/1 prv_cmd_q <= NONE; Tests: T1 T2 T3  45 end else begin 46 1/1 if (any_vld_req) begin Tests: T1 T2 T3  47 1/1 prv_cmd_q <= cur_cmd; Tests: T1 T2 T3  48 end MISSING_ELSE 49 end 50 end 51 52 // command interval counter 53 // couter will be saturated when it hits maxium 54 bit [31:0] idle_cnt; 55 always @(posedge clk_i) begin 56 2/2 if (!rst_ni || !rd_buf_en) idle_cnt <= 0; Tests: T1 T2 T3  | T1 T2 T3  57 1/1 else idle_cnt <= (any_vld_req)? 0 : Tests: T1 T2 T3  58 (idle_cnt == 32'hffff_ffff)? 32'hffff_ffff : idle_cnt + 32'h1; 59 end 60 61 // back to back read sequence 62 logic b2b_read; 63 1/1 assign b2b_read = (cur_cmd == READ && prv_cmd_q == READ); Tests: T1 T2 T3 

Cond Coverage for Module : flash_ctrl_phy_cov_if
TotalCoveredPercent
Conditions272385.19
Logical272385.19
Non-Logical00
Event00

 LINE       24
 EXPRESSION (rd_req || prog_req || pg_erase_req || bk_erase_req)
             ---1--    ----2---    ------3-----    ------4-----
-1--2--3--4-StatusTests
0000CoveredT1,T2,T3
0001CoveredT25,T26,T27
0010CoveredT2,T18,T4
0100CoveredT2,T10,T18
1000CoveredT1,T2,T3

 LINE       26
 EXPRESSION (any_req && ack)
             ---1---    -2-
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT2,T10,T18
11CoveredT1,T2,T3

 LINE       36
 EXPRESSION (pg_erase_req || bk_erase_req)
             ------1-----    ------2-----
-1--2-StatusTests
00Not Covered
01CoveredT25,T26,T27
10CoveredT2,T18,T4

 LINE       56
 EXPRESSION (((!rst_ni)) || ((!rd_buf_en)))
             -----1-----    -------2------
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Not Covered

 LINE       57
 EXPRESSION (any_vld_req ? 0 : ((idle_cnt == 32'hffffffff) ? 32'hffffffff : ((idle_cnt + 32'b1))))
             -----1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       57
 SUB-EXPRESSION ((idle_cnt == 32'hffffffff) ? 32'hffffffff : ((idle_cnt + 32'b1)))
                 -------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       57
 SUB-EXPRESSION (idle_cnt == 32'hffffffff)
                -------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       63
 EXPRESSION ((cur_cmd == READ) && (prv_cmd_q == READ))
             --------1--------    ---------2---------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       63
 SUB-EXPRESSION (cur_cmd == READ)
                --------1--------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       63
 SUB-EXPRESSION (prv_cmd_q == READ)
                ---------1---------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Module : flash_ctrl_phy_cov_if
Line No.TotalCoveredPercent
Branches 12 10 83.33
IF 33 5 4 80.00
IF 43 3 3 100.00
IF 56 4 3 75.00


33 if (any_vld_req) begin -1- 34 if (rd_req) cur_cmd = READ; -2- ==> 35 else if (prog_req) cur_cmd = PROG; -3- ==> 36 else if (pg_erase_req || bk_erase_req) cur_cmd = ERASE; -4- ==> MISSING_ELSE ==> 37 end MISSING_ELSE ==>

Branches:
-1--2--3--4-StatusTests
1 1 - - Covered T1,T2,T3
1 0 1 - Covered T2,T10,T18
1 0 0 1 Covered T2,T18,T4
1 0 0 0 Not Covered
0 - - - Covered T1,T2,T3


43 if (!rst_ni) begin -1- 44 prv_cmd_q <= NONE; ==> 45 end else begin 46 if (any_vld_req) begin -2- 47 prv_cmd_q <= cur_cmd; ==> 48 end MISSING_ELSE ==>

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


56 if (!rst_ni || !rd_buf_en) idle_cnt <= 0; -1- ==> 57 else idle_cnt <= (any_vld_req)? 0 : -2- ==> 58 (idle_cnt == 32'hffff_ffff)? 32'hffff_ffff : idle_cnt + 32'h1; -3- ==> ==>

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

Line Coverage for Instance : tb.dut.u_eflash.u_flash.gen_generic.u_impl_generic.gen_prim_flash_banks[0].u_prim_flash_bank.u_phy_cov_if
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN2411100.00
CONT_ASSIGN2611100.00
ALWAYS3288100.00
ALWAYS4344100.00
ALWAYS5633100.00
CONT_ASSIGN6311100.00

23 logic any_req; 24 1/1 assign any_req = rd_req || prog_req || pg_erase_req || bk_erase_req; Tests: T1 T2 T3  25 logic any_vld_req; 26 1/1 assign any_vld_req = any_req && ack; Tests: T1 T2 T3  27 28 // Decode current command 29 typedef enum logic[1:0] {READ, PROG, ERASE, NONE} cmd_e; 30 cmd_e cur_cmd; 31 always_comb begin 32 1/1 cur_cmd = NONE; Tests: T1 T2 T3  33 1/1 if (any_vld_req) begin Tests: T1 T2 T3  34 2/2 if (rd_req) cur_cmd = READ; Tests: T1 T2 T3  | T1 T2 T3  35 2/2 else if (prog_req) cur_cmd = PROG; Tests: T2 T10 T18  | T2 T10 T18  36 2/2 else if (pg_erase_req || bk_erase_req) cur_cmd = ERASE; Tests: T2 T18 T4  | T2 T18 T4  ==> MISSING_ELSE 37 end MISSING_ELSE 38 end 39 40 // previous command 41 cmd_e prv_cmd_q; 42 always @(posedge clk_i) begin 43 1/1 if (!rst_ni) begin Tests: T1 T2 T3  44 1/1 prv_cmd_q <= NONE; Tests: T1 T2 T3  45 end else begin 46 1/1 if (any_vld_req) begin Tests: T1 T2 T3  47 1/1 prv_cmd_q <= cur_cmd; Tests: T1 T2 T3  48 end MISSING_ELSE 49 end 50 end 51 52 // command interval counter 53 // couter will be saturated when it hits maxium 54 bit [31:0] idle_cnt; 55 always @(posedge clk_i) begin 56 2/2 if (!rst_ni || !rd_buf_en) idle_cnt <= 0; Tests: T1 T2 T3  | T1 T2 T3  57 1/1 else idle_cnt <= (any_vld_req)? 0 : Tests: T1 T2 T3  58 (idle_cnt == 32'hffff_ffff)? 32'hffff_ffff : idle_cnt + 32'h1; 59 end 60 61 // back to back read sequence 62 logic b2b_read; 63 1/1 assign b2b_read = (cur_cmd == READ && prv_cmd_q == READ); Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_eflash.u_flash.gen_generic.u_impl_generic.gen_prim_flash_banks[0].u_prim_flash_bank.u_phy_cov_if
TotalCoveredPercent
Conditions272385.19
Logical272385.19
Non-Logical00
Event00

 LINE       24
 EXPRESSION (rd_req || prog_req || pg_erase_req || bk_erase_req)
             ---1--    ----2---    ------3-----    ------4-----
-1--2--3--4-StatusTests
0000CoveredT1,T2,T3
0001CoveredT25,T26,T28
0010CoveredT2,T18,T4
0100CoveredT2,T10,T18
1000CoveredT1,T2,T3

 LINE       26
 EXPRESSION (any_req && ack)
             ---1---    -2-
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT2,T10,T18
11CoveredT1,T2,T3

 LINE       36
 EXPRESSION (pg_erase_req || bk_erase_req)
             ------1-----    ------2-----
-1--2-StatusTests
00Not Covered
01CoveredT25,T26,T28
10CoveredT2,T18,T4

 LINE       56
 EXPRESSION (((!rst_ni)) || ((!rd_buf_en)))
             -----1-----    -------2------
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Not Covered

 LINE       57
 EXPRESSION (any_vld_req ? 0 : ((idle_cnt == 32'hffffffff) ? 32'hffffffff : ((idle_cnt + 32'b1))))
             -----1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       57
 SUB-EXPRESSION ((idle_cnt == 32'hffffffff) ? 32'hffffffff : ((idle_cnt + 32'b1)))
                 -------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       57
 SUB-EXPRESSION (idle_cnt == 32'hffffffff)
                -------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       63
 EXPRESSION ((cur_cmd == READ) && (prv_cmd_q == READ))
             --------1--------    ---------2---------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       63
 SUB-EXPRESSION (cur_cmd == READ)
                --------1--------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       63
 SUB-EXPRESSION (prv_cmd_q == READ)
                ---------1---------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_eflash.u_flash.gen_generic.u_impl_generic.gen_prim_flash_banks[0].u_prim_flash_bank.u_phy_cov_if
Line No.TotalCoveredPercent
Branches 12 10 83.33
IF 33 5 4 80.00
IF 43 3 3 100.00
IF 56 4 3 75.00


33 if (any_vld_req) begin -1- 34 if (rd_req) cur_cmd = READ; -2- ==> 35 else if (prog_req) cur_cmd = PROG; -3- ==> 36 else if (pg_erase_req || bk_erase_req) cur_cmd = ERASE; -4- ==> MISSING_ELSE ==> 37 end MISSING_ELSE ==>

Branches:
-1--2--3--4-StatusTests
1 1 - - Covered T1,T2,T3
1 0 1 - Covered T2,T10,T18
1 0 0 1 Covered T2,T18,T4
1 0 0 0 Not Covered
0 - - - Covered T1,T2,T3


43 if (!rst_ni) begin -1- 44 prv_cmd_q <= NONE; ==> 45 end else begin 46 if (any_vld_req) begin -2- 47 prv_cmd_q <= cur_cmd; ==> 48 end MISSING_ELSE ==>

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


56 if (!rst_ni || !rd_buf_en) idle_cnt <= 0; -1- ==> 57 else idle_cnt <= (any_vld_req)? 0 : -2- ==> 58 (idle_cnt == 32'hffff_ffff)? 32'hffff_ffff : idle_cnt + 32'h1; -3- ==> ==>

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

Line Coverage for Instance : tb.dut.u_eflash.u_flash.gen_generic.u_impl_generic.gen_prim_flash_banks[1].u_prim_flash_bank.u_phy_cov_if
Line No.TotalCoveredPercent
TOTAL1818100.00
CONT_ASSIGN2411100.00
CONT_ASSIGN2611100.00
ALWAYS3288100.00
ALWAYS4344100.00
ALWAYS5633100.00
CONT_ASSIGN6311100.00

23 logic any_req; 24 1/1 assign any_req = rd_req || prog_req || pg_erase_req || bk_erase_req; Tests: T1 T2 T3  25 logic any_vld_req; 26 1/1 assign any_vld_req = any_req && ack; Tests: T1 T2 T3  27 28 // Decode current command 29 typedef enum logic[1:0] {READ, PROG, ERASE, NONE} cmd_e; 30 cmd_e cur_cmd; 31 always_comb begin 32 1/1 cur_cmd = NONE; Tests: T1 T2 T3  33 1/1 if (any_vld_req) begin Tests: T1 T2 T3  34 2/2 if (rd_req) cur_cmd = READ; Tests: T3 T16 T17  | T3 T16 T17  35 2/2 else if (prog_req) cur_cmd = PROG; Tests: T18 T11 T29  | T18 T11 T29  36 2/2 else if (pg_erase_req || bk_erase_req) cur_cmd = ERASE; Tests: T18 T30 T31  | T18 T30 T31  ==> MISSING_ELSE 37 end MISSING_ELSE 38 end 39 40 // previous command 41 cmd_e prv_cmd_q; 42 always @(posedge clk_i) begin 43 1/1 if (!rst_ni) begin Tests: T1 T2 T3  44 1/1 prv_cmd_q <= NONE; Tests: T1 T2 T3  45 end else begin 46 1/1 if (any_vld_req) begin Tests: T1 T2 T3  47 1/1 prv_cmd_q <= cur_cmd; Tests: T3 T16 T17  48 end MISSING_ELSE 49 end 50 end 51 52 // command interval counter 53 // couter will be saturated when it hits maxium 54 bit [31:0] idle_cnt; 55 always @(posedge clk_i) begin 56 2/2 if (!rst_ni || !rd_buf_en) idle_cnt <= 0; Tests: T1 T2 T3  | T1 T2 T3  57 1/1 else idle_cnt <= (any_vld_req)? 0 : Tests: T1 T2 T3  58 (idle_cnt == 32'hffff_ffff)? 32'hffff_ffff : idle_cnt + 32'h1; 59 end 60 61 // back to back read sequence 62 logic b2b_read; 63 1/1 assign b2b_read = (cur_cmd == READ && prv_cmd_q == READ); Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_eflash.u_flash.gen_generic.u_impl_generic.gen_prim_flash_banks[1].u_prim_flash_bank.u_phy_cov_if
TotalCoveredPercent
Conditions272385.19
Logical272385.19
Non-Logical00
Event00

 LINE       24
 EXPRESSION (rd_req || prog_req || pg_erase_req || bk_erase_req)
             ---1--    ----2---    ------3-----    ------4-----
-1--2--3--4-StatusTests
0000CoveredT1,T2,T3
0001CoveredT27,T28,T32
0010CoveredT18,T30,T31
0100CoveredT18,T11,T29
1000CoveredT3,T16,T17

 LINE       26
 EXPRESSION (any_req && ack)
             ---1---    -2-
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT18,T11,T29
11CoveredT3,T16,T17

 LINE       36
 EXPRESSION (pg_erase_req || bk_erase_req)
             ------1-----    ------2-----
-1--2-StatusTests
00Not Covered
01CoveredT27,T28,T32
10CoveredT18,T30,T31

 LINE       56
 EXPRESSION (((!rst_ni)) || ((!rd_buf_en)))
             -----1-----    -------2------
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Not Covered

 LINE       57
 EXPRESSION (any_vld_req ? 0 : ((idle_cnt == 32'hffffffff) ? 32'hffffffff : ((idle_cnt + 32'b1))))
             -----1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T16,T17

 LINE       57
 SUB-EXPRESSION ((idle_cnt == 32'hffffffff) ? 32'hffffffff : ((idle_cnt + 32'b1)))
                 -------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       57
 SUB-EXPRESSION (idle_cnt == 32'hffffffff)
                -------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       63
 EXPRESSION ((cur_cmd == READ) && (prv_cmd_q == READ))
             --------1--------    ---------2---------
-1--2-StatusTests
01CoveredT3,T16,T17
10CoveredT3,T16,T17
11CoveredT3,T16,T17

 LINE       63
 SUB-EXPRESSION (cur_cmd == READ)
                --------1--------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T16,T17

 LINE       63
 SUB-EXPRESSION (prv_cmd_q == READ)
                ---------1---------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T16,T17

Branch Coverage for Instance : tb.dut.u_eflash.u_flash.gen_generic.u_impl_generic.gen_prim_flash_banks[1].u_prim_flash_bank.u_phy_cov_if
Line No.TotalCoveredPercent
Branches 12 10 83.33
IF 33 5 4 80.00
IF 43 3 3 100.00
IF 56 4 3 75.00


33 if (any_vld_req) begin -1- 34 if (rd_req) cur_cmd = READ; -2- ==> 35 else if (prog_req) cur_cmd = PROG; -3- ==> 36 else if (pg_erase_req || bk_erase_req) cur_cmd = ERASE; -4- ==> MISSING_ELSE ==> 37 end MISSING_ELSE ==>

Branches:
-1--2--3--4-StatusTests
1 1 - - Covered T3,T16,T17
1 0 1 - Covered T18,T11,T29
1 0 0 1 Covered T18,T30,T31
1 0 0 0 Not Covered
0 - - - Covered T1,T2,T3


43 if (!rst_ni) begin -1- 44 prv_cmd_q <= NONE; ==> 45 end else begin 46 if (any_vld_req) begin -2- 47 prv_cmd_q <= cur_cmd; ==> 48 end MISSING_ELSE ==>

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


56 if (!rst_ni || !rd_buf_en) idle_cnt <= 0; -1- ==> 57 else idle_cnt <= (any_vld_req)? 0 : -2- ==> 58 (idle_cnt == 32'hffff_ffff)? 32'hffff_ffff : idle_cnt + 32'h1; -3- ==> ==>

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

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