Line Coverage for Module :
flash_mp_data_region_sel ( parameter Regions=9 )
Line Coverage for Module self-instances :
| Line No. | Total | Covered | Percent |
TOTAL | | 16 | 16 | 100.00 |
CONT_ASSIGN | 28 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
ALWAYS | 35 | 0 | 0 | |
ALWAYS | 35 | 3 | 3 | 100.00 |
ALWAYS | 49 | 4 | 4 | 100.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 :
| Line No. | Total | Covered | Percent |
TOTAL | | 8 | 8 | 100.00 |
CONT_ASSIGN | 28 | 1 | 1 | 100.00 |
ALWAYS | 35 | 0 | 0 | |
ALWAYS | 35 | 3 | 3 | 100.00 |
ALWAYS | 49 | 4 | 4 | 100.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: T142 T86 T141
53 end
MISSING_ELSE
Cond Coverage for Module :
flash_mp_data_region_sel
| Total | Covered | Percent |
Conditions | 24 | 24 | 100.00 |
Logical | 24 | 24 | 100.00 |
Non-Logical | 0 | 0 | |
Event | 0 | 0 | |
LINE 30
EXPRESSION (region_match[1] & ((~|region_match[0])))
-------1------- ----------2----------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T82,T246 |
1 | 1 | Covered | T10,T34,T36 |
LINE 30
EXPRESSION (region_match[2] & ((~|region_match[(2 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T7,T57 |
1 | 1 | Covered | T74,T40,T94 |
LINE 30
EXPRESSION (region_match[3] & ((~|region_match[(3 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T7,T82 |
1 | 1 | Covered | T10,T11,T36 |
LINE 30
EXPRESSION (region_match[4] & ((~|region_match[(4 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T243,T214 |
1 | 1 | Covered | T34,T36,T51 |
LINE 30
EXPRESSION (region_match[5] & ((~|region_match[(5 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T82,T290 |
1 | 1 | Covered | T11,T27,T36 |
LINE 30
EXPRESSION (region_match[6] & ((~|region_match[(6 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T11,T236,T165 |
1 | 1 | Covered | T4,T36,T37 |
LINE 30
EXPRESSION (region_match[7] & ((~|region_match[(7 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T7,T165 |
1 | 1 | Covered | T4,T36,T51 |
LINE 30
EXPRESSION (region_match[8] & ((~|region_match[(8 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T4,T6,T20 |
1 | 1 | Covered | T1,T2,T3 |
Branch Coverage for Module :
flash_mp_data_region_sel
| Line No. | Total | Covered | Percent |
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- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Line Coverage for Instance : tb.dut.u_flash_mp.u_sw_sel
| Line No. | Total | Covered | Percent |
TOTAL | | 16 | 16 | 100.00 |
CONT_ASSIGN | 28 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
ALWAYS | 35 | 0 | 0 | |
ALWAYS | 35 | 3 | 3 | 100.00 |
ALWAYS | 49 | 4 | 4 | 100.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
Cond Coverage for Instance : tb.dut.u_flash_mp.u_sw_sel
| Total | Covered | Percent |
Conditions | 24 | 24 | 100.00 |
Logical | 24 | 24 | 100.00 |
Non-Logical | 0 | 0 | |
Event | 0 | 0 | |
LINE 30
EXPRESSION (region_match[1] & ((~|region_match[0])))
-------1------- ----------2----------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T82,T246 |
1 | 1 | Covered | T10,T36,T51 |
LINE 30
EXPRESSION (region_match[2] & ((~|region_match[(2 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T7,T57 |
1 | 1 | Covered | T40,T179,T43 |
LINE 30
EXPRESSION (region_match[3] & ((~|region_match[(3 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T7,T82 |
1 | 1 | Covered | T10,T11,T36 |
LINE 30
EXPRESSION (region_match[4] & ((~|region_match[(4 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T243,T214 |
1 | 1 | Covered | T36,T84,T123 |
LINE 30
EXPRESSION (region_match[5] & ((~|region_match[(5 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T82,T290 |
1 | 1 | Covered | T27,T36,T37 |
LINE 30
EXPRESSION (region_match[6] & ((~|region_match[(6 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T11,T236,T165 |
1 | 1 | Covered | T4,T36,T37 |
LINE 30
EXPRESSION (region_match[7] & ((~|region_match[(7 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T7,T165 |
1 | 1 | Covered | T4,T36,T51 |
LINE 30
EXPRESSION (region_match[8] & ((~|region_match[(8 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T4,T10,T11 |
1 | 1 | Covered | T1,T2,T3 |
Branch Coverage for Instance : tb.dut.u_flash_mp.u_sw_sel
| Line No. | Total | Covered | Percent |
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- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Line Coverage for Instance : tb.dut.u_flash_mp.u_hw_sel
| Line No. | Total | Covered | Percent |
TOTAL | | 8 | 8 | 100.00 |
CONT_ASSIGN | 28 | 1 | 1 | 100.00 |
ALWAYS | 35 | 0 | 0 | |
ALWAYS | 35 | 3 | 3 | 100.00 |
ALWAYS | 49 | 4 | 4 | 100.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: T142 T86 T141
53 end
MISSING_ELSE
Branch Coverage for Instance : tb.dut.u_flash_mp.u_hw_sel
| Line No. | Total | Covered | Percent |
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- | Status | Tests |
1 |
Covered |
T142,T86,T141 |
0 |
Covered |
T1,T2,T3 |
Line Coverage for Instance : tb.dut.u_eflash.u_region_sel
| Line No. | Total | Covered | Percent |
TOTAL | | 16 | 16 | 100.00 |
CONT_ASSIGN | 28 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
CONT_ASSIGN | 30 | 1 | 1 | 100.00 |
ALWAYS | 35 | 0 | 0 | |
ALWAYS | 35 | 3 | 3 | 100.00 |
ALWAYS | 49 | 4 | 4 | 100.00 |
27 // decode for software interface region
28 1/1 assign region_sel[0] = region_match[0];
Tests: T1 T2 T4
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 T4 | T1 T2 T4 | T1 T2 T4 | T1 T2 T4 | T1 T2 T4 | T1 T2 T4 | T1 T2 T4 | T1 T2 T4
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: T8 T6 T20
53 end
MISSING_ELSE
Cond Coverage for Instance : tb.dut.u_eflash.u_region_sel
| Total | Covered | Percent |
Conditions | 24 | 24 | 100.00 |
Logical | 24 | 24 | 100.00 |
Non-Logical | 0 | 0 | |
Event | 0 | 0 | |
LINE 30
EXPRESSION (region_match[1] & ((~|region_match[0])))
-------1------- ----------2----------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T291,T292 |
1 | 1 | Covered | T34,T36,T107 |
LINE 30
EXPRESSION (region_match[2] & ((~|region_match[(2 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T57,T243 |
1 | 1 | Covered | T74,T94,T82 |
LINE 30
EXPRESSION (region_match[3] & ((~|region_match[(3 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T243,T293 |
1 | 1 | Covered | T10,T11,T36 |
LINE 30
EXPRESSION (region_match[4] & ((~|region_match[(4 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T243,T246 |
1 | 1 | Covered | T34,T36,T51 |
LINE 30
EXPRESSION (region_match[5] & ((~|region_match[(5 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T290,T246 |
1 | 1 | Covered | T11,T27,T36 |
LINE 30
EXPRESSION (region_match[6] & ((~|region_match[(6 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T11,T236,T165 |
1 | 1 | Covered | T36,T39,T43 |
LINE 30
EXPRESSION (region_match[7] & ((~|region_match[(7 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T236,T165,T87 |
1 | 1 | Covered | T36,T61,T123 |
LINE 30
EXPRESSION (region_match[8] & ((~|region_match[(8 - 1):0])))
-------1------- --------------2--------------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T6,T20,T10 |
1 | 1 | Covered | T8,T10,T11 |
Branch Coverage for Instance : tb.dut.u_eflash.u_region_sel
| Line No. | Total | Covered | Percent |
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- | Status | Tests |
1 |
Covered |
T8,T6,T20 |
0 |
Covered |
T1,T2,T3 |