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



Module Instance : tb.dut.u_flash_mp.u_sw_sel

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.64 100.00 98.56 100.00 100.00 u_flash_mp


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_flash_mp.u_hw_sel

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
99.64 100.00 98.56 100.00 100.00 u_flash_mp


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_eflash.u_region_sel

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
94.56 97.67 86.00 100.00 u_eflash


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children

Line Coverage for Module : flash_mp_data_region_sel ( parameter Regions=9 )
Line Coverage for Module self-instances :
SCORELINE
100.00 100.00
tb.dut.u_flash_mp.u_sw_sel

SCORELINE
100.00 100.00
tb.dut.u_eflash.u_region_sel

Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN2811100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
ALWAYS3500
ALWAYS3533100.00
ALWAYS4944100.00

27 // decode for software interface region 28 1/1 assign region_sel[0] = region_match[0]; Tests: T1 T2 T3  29 for (genvar i = 1; i < Regions; i++) begin: gen_region_priority 30 8/8 assign region_sel[i] = region_match[i] & ~|region_match[i-1:0]; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  31 end 32 33 // check for region match 34 always_comb begin 35 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_comps Tests: T1 T2 T3  36 1/1 region_end[i] = {1'b0, region_attrs_i[i].cfg.base} + region_attrs_i[i].cfg.size; Tests: T1 T2 T3  37 38 // region matches if address within range and if the partition matches 39 1/1 region_match[i] = addr_i >= region_attrs_i[i].cfg.base & Tests: T1 T2 T3  40 {1'b0, addr_i} < region_end[i] & 41 phase_i == region_attrs_i[i].phase & 42 mubi4_test_true_strict(region_attrs_i[i].cfg.en) & 43 req_i; 44 end 45 end 46 47 // select appropriate region configuration 48 always_comb begin 49 1/1 sel_cfg_o = '0; Tests: T1 T2 T3  50 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_sel Tests: T1 T2 T3  51 1/1 if (region_sel[i]) begin Tests: T1 T2 T3  52 1/1 sel_cfg_o = region_attrs_i[i].cfg; Tests: T1 T2 T3  53 end MISSING_ELSE

Line Coverage for Module : flash_mp_data_region_sel ( parameter Regions=1 )
Line Coverage for Module self-instances :
SCORELINE
100.00 100.00
tb.dut.u_flash_mp.u_hw_sel

Line No.TotalCoveredPercent
TOTAL88100.00
CONT_ASSIGN2811100.00
ALWAYS3500
ALWAYS3533100.00
ALWAYS4944100.00

27 // decode for software interface region 28 1/1 assign region_sel[0] = region_match[0]; Tests: T1 T2 T3  29 for (genvar i = 1; i < Regions; i++) begin: gen_region_priority 30 assign region_sel[i] = region_match[i] & ~|region_match[i-1:0]; 31 end 32 33 // check for region match 34 always_comb begin 35 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_comps Tests: T1 T2 T3  36 1/1 region_end[i] = {1'b0, region_attrs_i[i].cfg.base} + region_attrs_i[i].cfg.size; Tests: T1 T2 T3  37 38 // region matches if address within range and if the partition matches 39 1/1 region_match[i] = addr_i >= region_attrs_i[i].cfg.base & Tests: T1 T2 T3  40 {1'b0, addr_i} < region_end[i] & 41 phase_i == region_attrs_i[i].phase & 42 mubi4_test_true_strict(region_attrs_i[i].cfg.en) & 43 req_i; 44 end 45 end 46 47 // select appropriate region configuration 48 always_comb begin 49 1/1 sel_cfg_o = '0; Tests: T1 T2 T3  50 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_sel Tests: T1 T2 T3  51 1/1 if (region_sel[i]) begin Tests: T1 T2 T3  52 1/1 sel_cfg_o = region_attrs_i[i].cfg; Tests: T113 T89 T119  53 end MISSING_ELSE

Cond Coverage for Module : flash_mp_data_region_sel
TotalCoveredPercent
Conditions2424100.00
Logical2424100.00
Non-Logical00
Event00

 LINE       30
 EXPRESSION (region_match[1] & ((~|region_match[0])))
             -------1-------   ----------2----------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T72,T269
11CoveredT58,T8,T27

 LINE       30
 EXPRESSION (region_match[2] & ((~|region_match[(2 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T57,T245
11CoveredT25,T26,T27

 LINE       30
 EXPRESSION (region_match[3] & ((~|region_match[(3 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T245,T270
11CoveredT25,T27,T62

 LINE       30
 EXPRESSION (region_match[4] & ((~|region_match[(4 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT10,T52,T112
11CoveredT27,T62,T41

 LINE       30
 EXPRESSION (region_match[5] & ((~|region_match[(5 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T112,T245
11CoveredT58,T49,T41

 LINE       30
 EXPRESSION (region_match[6] & ((~|region_match[(6 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT26,T62,T52
11CoveredT27,T41,T32

 LINE       30
 EXPRESSION (region_match[7] & ((~|region_match[(7 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT27,T29,T52
11CoveredT25,T16,T62

 LINE       30
 EXPRESSION (region_match[8] & ((~|region_match[(8 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT2,T58,T8
11CoveredT1,T3,T7

Branch Coverage for Module : flash_mp_data_region_sel
Line No.TotalCoveredPercent
Branches 2 2 100.00
IF 51 2 2 100.00


51 if (region_sel[i]) begin -1- 52 sel_cfg_o = region_attrs_i[i].cfg; ==> 53 end MISSING_ELSE ==>

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

Line Coverage for Instance : tb.dut.u_flash_mp.u_sw_sel
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN2811100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
ALWAYS3500
ALWAYS3533100.00
ALWAYS4944100.00

27 // decode for software interface region 28 1/1 assign region_sel[0] = region_match[0]; Tests: T1 T2 T3  29 for (genvar i = 1; i < Regions; i++) begin: gen_region_priority 30 8/8 assign region_sel[i] = region_match[i] & ~|region_match[i-1:0]; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  31 end 32 33 // check for region match 34 always_comb begin 35 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_comps Tests: T1 T2 T3  36 1/1 region_end[i] = {1'b0, region_attrs_i[i].cfg.base} + region_attrs_i[i].cfg.size; Tests: T1 T2 T3  37 38 // region matches if address within range and if the partition matches 39 1/1 region_match[i] = addr_i >= region_attrs_i[i].cfg.base & Tests: T1 T2 T3  40 {1'b0, addr_i} < region_end[i] & 41 phase_i == region_attrs_i[i].phase & 42 mubi4_test_true_strict(region_attrs_i[i].cfg.en) & 43 req_i; 44 end 45 end 46 47 // select appropriate region configuration 48 always_comb begin 49 1/1 sel_cfg_o = '0; Tests: T1 T2 T3  50 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_sel Tests: T1 T2 T3  51 1/1 if (region_sel[i]) begin Tests: T1 T2 T3  52 1/1 sel_cfg_o = region_attrs_i[i].cfg; Tests: T1 T3 T7  53 end MISSING_ELSE

Cond Coverage for Instance : tb.dut.u_flash_mp.u_sw_sel
TotalCoveredPercent
Conditions2424100.00
Logical2424100.00
Non-Logical00
Event00

 LINE       30
 EXPRESSION (region_match[1] & ((~|region_match[0])))
             -------1-------   ----------2----------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T72,T271
11CoveredT58,T8,T27

 LINE       30
 EXPRESSION (region_match[2] & ((~|region_match[(2 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T57,T245
11CoveredT25,T26,T27

 LINE       30
 EXPRESSION (region_match[3] & ((~|region_match[(3 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T245,T270
11CoveredT27,T62,T41

 LINE       30
 EXPRESSION (region_match[4] & ((~|region_match[(4 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT10,T52,T245
11CoveredT62,T41,T87

 LINE       30
 EXPRESSION (region_match[5] & ((~|region_match[(5 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T245,T272
11CoveredT58,T49,T87

 LINE       30
 EXPRESSION (region_match[6] & ((~|region_match[(6 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT26,T62,T52
11CoveredT87,T145,T205

 LINE       30
 EXPRESSION (region_match[7] & ((~|region_match[(7 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT29,T52,T101
11CoveredT16,T62,T29

 LINE       30
 EXPRESSION (region_match[8] & ((~|region_match[(8 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT58,T8,T25
11CoveredT1,T3,T7

Branch Coverage for Instance : tb.dut.u_flash_mp.u_sw_sel
Line No.TotalCoveredPercent
Branches 2 2 100.00
IF 51 2 2 100.00


51 if (region_sel[i]) begin -1- 52 sel_cfg_o = region_attrs_i[i].cfg; ==> 53 end MISSING_ELSE ==>

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

Line Coverage for Instance : tb.dut.u_flash_mp.u_hw_sel
Line No.TotalCoveredPercent
TOTAL88100.00
CONT_ASSIGN2811100.00
ALWAYS3500
ALWAYS3533100.00
ALWAYS4944100.00

27 // decode for software interface region 28 1/1 assign region_sel[0] = region_match[0]; Tests: T1 T2 T3  29 for (genvar i = 1; i < Regions; i++) begin: gen_region_priority 30 assign region_sel[i] = region_match[i] & ~|region_match[i-1:0]; 31 end 32 33 // check for region match 34 always_comb begin 35 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_comps Tests: T1 T2 T3  36 1/1 region_end[i] = {1'b0, region_attrs_i[i].cfg.base} + region_attrs_i[i].cfg.size; Tests: T1 T2 T3  37 38 // region matches if address within range and if the partition matches 39 1/1 region_match[i] = addr_i >= region_attrs_i[i].cfg.base & Tests: T1 T2 T3  40 {1'b0, addr_i} < region_end[i] & 41 phase_i == region_attrs_i[i].phase & 42 mubi4_test_true_strict(region_attrs_i[i].cfg.en) & 43 req_i; 44 end 45 end 46 47 // select appropriate region configuration 48 always_comb begin 49 1/1 sel_cfg_o = '0; Tests: T1 T2 T3  50 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_sel Tests: T1 T2 T3  51 1/1 if (region_sel[i]) begin Tests: T1 T2 T3  52 1/1 sel_cfg_o = region_attrs_i[i].cfg; Tests: T113 T89 T119  53 end MISSING_ELSE

Branch Coverage for Instance : tb.dut.u_flash_mp.u_hw_sel
Line No.TotalCoveredPercent
Branches 2 2 100.00
IF 51 2 2 100.00


51 if (region_sel[i]) begin -1- 52 sel_cfg_o = region_attrs_i[i].cfg; ==> 53 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T113,T89,T119
0 Covered T1,T2,T3

Line Coverage for Instance : tb.dut.u_eflash.u_region_sel
Line No.TotalCoveredPercent
TOTAL1616100.00
CONT_ASSIGN2811100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
CONT_ASSIGN3011100.00
ALWAYS3500
ALWAYS3533100.00
ALWAYS4944100.00

27 // decode for software interface region 28 1/1 assign region_sel[0] = region_match[0]; Tests: T1 T2 T3  29 for (genvar i = 1; i < Regions; i++) begin: gen_region_priority 30 8/8 assign region_sel[i] = region_match[i] & ~|region_match[i-1:0]; Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  31 end 32 33 // check for region match 34 always_comb begin 35 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_comps Tests: T1 T2 T3  36 1/1 region_end[i] = {1'b0, region_attrs_i[i].cfg.base} + region_attrs_i[i].cfg.size; Tests: T1 T2 T3  37 38 // region matches if address within range and if the partition matches 39 1/1 region_match[i] = addr_i >= region_attrs_i[i].cfg.base & Tests: T1 T2 T3  40 {1'b0, addr_i} < region_end[i] & 41 phase_i == region_attrs_i[i].phase & 42 mubi4_test_true_strict(region_attrs_i[i].cfg.en) & 43 req_i; 44 end 45 end 46 47 // select appropriate region configuration 48 always_comb begin 49 1/1 sel_cfg_o = '0; Tests: T1 T2 T3  50 1/1 for (int i = 0; i < Regions; i++) begin: gen_region_sel Tests: T1 T2 T3  51 1/1 if (region_sel[i]) begin Tests: T1 T2 T3  52 1/1 sel_cfg_o = region_attrs_i[i].cfg; Tests: T2 T14 T15  53 end MISSING_ELSE

Cond Coverage for Instance : tb.dut.u_eflash.u_region_sel
TotalCoveredPercent
Conditions2424100.00
Logical2424100.00
Non-Logical00
Event00

 LINE       30
 EXPRESSION (region_match[1] & ((~|region_match[0])))
             -------1-------   ----------2----------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T269,T271
11CoveredT27,T112,T87

 LINE       30
 EXPRESSION (region_match[2] & ((~|region_match[(2 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T245,T213
11CoveredT26,T32,T87

 LINE       30
 EXPRESSION (region_match[3] & ((~|region_match[(3 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T245,T271
11CoveredT25,T245,T210

 LINE       30
 EXPRESSION (region_match[4] & ((~|region_match[(4 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T112,T245
11CoveredT27,T56,T42

 LINE       30
 EXPRESSION (region_match[5] & ((~|region_match[(5 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT52,T112,T245
11CoveredT49,T41,T56

 LINE       30
 EXPRESSION (region_match[6] & ((~|region_match[(6 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT26,T52,T245
11CoveredT27,T41,T32

 LINE       30
 EXPRESSION (region_match[7] & ((~|region_match[(7 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT27,T52,T245
11CoveredT25,T210,T146

 LINE       30
 EXPRESSION (region_match[8] & ((~|region_match[(8 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT2,T25,T26
11CoveredT14,T15,T25

Branch Coverage for Instance : tb.dut.u_eflash.u_region_sel
Line No.TotalCoveredPercent
Branches 2 2 100.00
IF 51 2 2 100.00


51 if (region_sel[i]) begin -1- 52 sel_cfg_o = region_attrs_i[i].cfg; ==> 53 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T2,T14,T15
0 Covered T1,T2,T3

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