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.46 100.00 97.84 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.46 100.00 97.84 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: T6 T105 T82  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
10CoveredT16,T26,T104
11CoveredT16,T26,T45

 LINE       30
 EXPRESSION (region_match[2] & ((~|region_match[(2 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T68
11CoveredT12,T46,T66

 LINE       30
 EXPRESSION (region_match[3] & ((~|region_match[(3 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T53
11CoveredT46,T47,T78

 LINE       30
 EXPRESSION (region_match[4] & ((~|region_match[(4 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T46
11CoveredT67,T45,T46

 LINE       30
 EXPRESSION (region_match[5] & ((~|region_match[(5 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T67,T26
11CoveredT45,T78,T36

 LINE       30
 EXPRESSION (region_match[6] & ((~|region_match[(6 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T45
11CoveredT67,T12,T54

 LINE       30
 EXPRESSION (region_match[7] & ((~|region_match[(7 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T47
11CoveredT45,T66,T47

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

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: T2 T3 T10  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
10CoveredT16,T26,T104
11CoveredT16,T26,T45

 LINE       30
 EXPRESSION (region_match[2] & ((~|region_match[(2 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T68
11CoveredT12,T66,T53

 LINE       30
 EXPRESSION (region_match[3] & ((~|region_match[(3 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T53
11CoveredT46,T47,T78

 LINE       30
 EXPRESSION (region_match[4] & ((~|region_match[(4 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T104
11CoveredT67,T78,T32

 LINE       30
 EXPRESSION (region_match[5] & ((~|region_match[(5 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T67,T26
11CoveredT78,T36,T39

 LINE       30
 EXPRESSION (region_match[6] & ((~|region_match[(6 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T46
11CoveredT67,T12,T54

 LINE       30
 EXPRESSION (region_match[7] & ((~|region_match[(7 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T26,T47
11CoveredT45,T66,T47

 LINE       30
 EXPRESSION (region_match[8] & ((~|region_match[(8 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T67,T12
11CoveredT2,T3,T10

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 T2,T3,T10
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: T6 T105 T82  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 T6,T105,T82
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 T10  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 T10  | T1 T2 T10  | T1 T2 T10  | T1 T2 T10  | T1 T2 T10  | T1 T2 T10  | T1 T2 T10  | 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 T11  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
10CoveredT16,T104,T222
11CoveredT47,T54,T39

 LINE       30
 EXPRESSION (region_match[2] & ((~|region_match[(2 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T237,T208
11CoveredT46,T47,T33

 LINE       30
 EXPRESSION (region_match[3] & ((~|region_match[(3 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT222,T257,T158
11CoveredT33,T104,T258

 LINE       30
 EXPRESSION (region_match[4] & ((~|region_match[(4 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T46,T145
11CoveredT45,T46,T53

 LINE       30
 EXPRESSION (region_match[5] & ((~|region_match[(5 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T222,T259
11CoveredT45,T36,T35

 LINE       30
 EXPRESSION (region_match[6] & ((~|region_match[(6 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT45,T34,T39
11CoveredT39,T104,T260

 LINE       30
 EXPRESSION (region_match[7] & ((~|region_match[(7 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT16,T53,T222
11CoveredT53,T55,T100

 LINE       30
 EXPRESSION (region_match[8] & ((~|region_match[(8 - 1):0])))
             -------1-------   --------------2--------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T16,T45
11CoveredT3,T11,T16

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 T1,T3,T11
0 Covered T1,T2,T3

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