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
93.55 96.48 92.86 93.75 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 T4 T10  | T2 T4 T10  36 2/2 else if (pg_erase_req || bk_erase_req) cur_cmd = ERASE; Tests: T10 T25 T26  | T10 T25 T26  ==> 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
0001CoveredT27,T28,T29
0010CoveredT10,T25,T26
0100CoveredT2,T4,T10
1000CoveredT1,T2,T3

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

 LINE       36
 EXPRESSION (pg_erase_req || bk_erase_req)
             ------1-----    ------2-----
-1--2-StatusTests
00Not Covered
01CoveredT27,T28,T29
10CoveredT10,T25,T26

 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,T4,T10
1 0 0 1 Covered T10,T25,T26
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 T4 T10  | T2 T4 T10  36 2/2 else if (pg_erase_req || bk_erase_req) cur_cmd = ERASE; Tests: T10 T25 T26  | T10 T25 T26  ==> 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
0001CoveredT27,T28,T29
0010CoveredT10,T25,T26
0100CoveredT2,T4,T10
1000CoveredT1,T2,T3

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

 LINE       36
 EXPRESSION (pg_erase_req || bk_erase_req)
             ------1-----    ------2-----
-1--2-StatusTests
00Not Covered
01CoveredT27,T28,T29
10CoveredT10,T25,T26

 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,T4,T10
1 0 0 1 Covered T10,T25,T26
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: T8 T6 T31  | T8 T31 T25  35 2/2 else if (prog_req) cur_cmd = PROG; Tests: T6 T25 T12  | T6 T12 T30  36 2/2 else if (pg_erase_req || bk_erase_req) cur_cmd = ERASE; Tests: T25 T32 T33  | T25 T32 T33  ==> 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: T8 T6 T31  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
0001CoveredT34,T35,T36
0010CoveredT25,T32,T33
0100CoveredT6,T12,T30
1000CoveredT8,T31,T25

 LINE       26
 EXPRESSION (any_req && ack)
             ---1---    -2-
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT6,T12,T30
11CoveredT8,T6,T31

 LINE       36
 EXPRESSION (pg_erase_req || bk_erase_req)
             ------1-----    ------2-----
-1--2-StatusTests
00Not Covered
01CoveredT34,T35,T36
10CoveredT25,T32,T33

 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
1CoveredT8,T6,T31

 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
01CoveredT8,T31,T25
10CoveredT8,T31,T25
11CoveredT8,T31,T25

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

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

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 T8,T31,T25
1 0 1 - Covered T6,T12,T30
1 0 0 1 Covered T25,T32,T33
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 T8,T6,T31
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 T8,T6,T31
0 0 1 Not Covered
0 0 0 Covered T1,T2,T3

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