Line Coverage for Module :
flash_phy_erase
| Line No. | Total | Covered | Percent |
TOTAL | | 23 | 23 | 100.00 |
ALWAYS | 39 | 3 | 3 | 100.00 |
ALWAYS | 47 | 17 | 17 | 100.00 |
CONT_ASSIGN | 83 | 1 | 1 | 100.00 |
CONT_ASSIGN | 84 | 1 | 1 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
38 always_ff @(posedge clk_i or negedge rst_ni) begin
39 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
40 1/1 state_q <= StEraseIdle;
Tests: T1 T2 T3
41 end else begin
42 1/1 state_q <= state_d;
Tests: T1 T2 T3
43 end
44 end
45
46 always_comb begin
47 1/1 req_valid = 1'b0;
Tests: T1 T2 T3
48 1/1 suspend_valid = 1'b0;
Tests: T1 T2 T3
49 1/1 ack_o = 1'b0;
Tests: T1 T2 T3
50 1/1 state_d = state_q;
Tests: T1 T2 T3
51
52 1/1 unique case (state_q)
Tests: T1 T2 T3
53 StEraseIdle: begin
54 1/1 req_valid = 1'b1;
Tests: T1 T2 T3
55
56 1/1 if ((pg_erase_req_o || bk_erase_req_o) && ack_i) begin
Tests: T1 T2 T3
57 1/1 state_d = StEraseBusy;
Tests: T2 T18 T4
58 end
MISSING_ELSE
59 end
60
61 StEraseBusy: begin
62 1/1 suspend_valid = '1;
Tests: T2 T18 T4
63
64 1/1 if (suspend_req_i && ack_i) begin
Tests: T2 T18 T4
65 1/1 state_d = StEraseSuspend;
Tests: T30 T64 T28
66 1/1 end else if (done_i) begin
Tests: T2 T18 T4
67 1/1 ack_o = 1'b1;
Tests: T2 T18 T30
68 1/1 state_d = StEraseIdle;
Tests: T2 T18 T30
69 end
MISSING_ELSE
70 end
71
72 StEraseSuspend: begin
73 1/1 if (done_i) begin
Tests: T30 T64 T28
74 1/1 ack_o = 1'b1;
Tests: T30 T64 T28
75 1/1 state_d = StEraseIdle;
Tests: T30 T64 T28
76 end
==> MISSING_ELSE
77 end
78
79 default:;
80 endcase // unique case (state_q)
81 end
82
83 1/1 assign pg_erase_req_o = pg_erase_req_i & req_valid;
Tests: T1 T2 T3
84 1/1 assign bk_erase_req_o = bk_erase_req_i & req_valid;
Tests: T1 T2 T3
85 1/1 assign suspend_req_o = suspend_req_i & suspend_valid;
Tests: T1 T2 T3
Cond Coverage for Module :
flash_phy_erase
| Total | Covered | Percent |
Conditions | 18 | 16 | 88.89 |
Logical | 18 | 16 | 88.89 |
Non-Logical | 0 | 0 | |
Event | 0 | 0 | |
LINE 56
EXPRESSION ((pg_erase_req_o || bk_erase_req_o) && ack_i)
-----------------1---------------- --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T2,T18,T4 |
LINE 56
SUB-EXPRESSION (pg_erase_req_o || bk_erase_req_o)
-------1------ -------2------
-1- | -2- | Status | Tests |
0 | 0 | Covered | T1,T2,T3 |
0 | 1 | Covered | T25,T26,T27 |
1 | 0 | Covered | T2,T18,T4 |
LINE 64
EXPRESSION (suspend_req_i && ack_i)
------1------ --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T2,T18,T4 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T30,T64,T28 |
LINE 83
EXPRESSION (pg_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T2,T18,T4 |
1 | 1 | Covered | T2,T18,T4 |
LINE 84
EXPRESSION (bk_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T25,T26,T27 |
1 | 1 | Covered | T25,T26,T27 |
LINE 85
EXPRESSION (suspend_req_i & suspend_valid)
------1------ ------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T2,T18,T4 |
1 | 0 | Covered | T30,T64,T28 |
1 | 1 | Covered | T30,T64,T28 |
FSM Coverage for Module :
flash_phy_erase
Summary for FSM :: state_q
| Total | Covered | Percent | |
States |
3 |
3 |
100.00 |
(Not included in score) |
Transitions |
4 |
4 |
100.00 |
|
Sequences |
0 |
0 |
|
|
State, Transition and Sequence Details for FSM :: state_q
states | Line No. | Covered | Tests |
StEraseBusy |
57 |
Covered |
T2,T18,T4 |
StEraseIdle |
68 |
Covered |
T1,T2,T3 |
StEraseSuspend |
65 |
Covered |
T30,T64,T28 |
transitions | Line No. | Covered | Tests |
StEraseBusy->StEraseIdle |
68 |
Covered |
T2,T18,T4 |
StEraseBusy->StEraseSuspend |
65 |
Covered |
T30,T64,T28 |
StEraseIdle->StEraseBusy |
57 |
Covered |
T2,T18,T4 |
StEraseSuspend->StEraseIdle |
75 |
Covered |
T30,T64,T28 |
Branch Coverage for Module :
flash_phy_erase
| Line No. | Total | Covered | Percent |
Branches |
|
10 |
8 |
80.00 |
IF |
39 |
2 |
2 |
100.00 |
CASE |
52 |
8 |
6 |
75.00 |
39 if (!rst_ni) begin
-1-
40 state_q <= StEraseIdle;
==>
41 end else begin
42 state_q <= state_d;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
52 unique case (state_q)
-1-
53 StEraseIdle: begin
54 req_valid = 1'b1;
55
56 if ((pg_erase_req_o || bk_erase_req_o) && ack_i) begin
-2-
57 state_d = StEraseBusy;
==>
58 end
MISSING_ELSE
==>
59 end
60
61 StEraseBusy: begin
62 suspend_valid = '1;
63
64 if (suspend_req_i && ack_i) begin
-3-
65 state_d = StEraseSuspend;
==>
66 end else if (done_i) begin
-4-
67 ack_o = 1'b1;
==>
68 state_d = StEraseIdle;
69 end
MISSING_ELSE
==>
70 end
71
72 StEraseSuspend: begin
73 if (done_i) begin
-5-
74 ack_o = 1'b1;
==>
75 state_d = StEraseIdle;
76 end
MISSING_ELSE
==>
77 end
78
79 default:;
==>
Branches:
-1- | -2- | -3- | -4- | -5- | Status | Tests |
StEraseIdle |
1 |
- |
- |
- |
Covered |
T2,T18,T4 |
StEraseIdle |
0 |
- |
- |
- |
Covered |
T1,T2,T3 |
StEraseBusy |
- |
1 |
- |
- |
Covered |
T30,T64,T28 |
StEraseBusy |
- |
0 |
1 |
- |
Covered |
T2,T18,T30 |
StEraseBusy |
- |
0 |
0 |
- |
Covered |
T2,T18,T4 |
StEraseSuspend |
- |
- |
- |
1 |
Covered |
T30,T64,T28 |
StEraseSuspend |
- |
- |
- |
0 |
Not Covered |
|
default |
- |
- |
- |
- |
Not Covered |
|
Line Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_erase
| Line No. | Total | Covered | Percent |
TOTAL | | 23 | 23 | 100.00 |
ALWAYS | 39 | 3 | 3 | 100.00 |
ALWAYS | 47 | 17 | 17 | 100.00 |
CONT_ASSIGN | 83 | 1 | 1 | 100.00 |
CONT_ASSIGN | 84 | 1 | 1 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
38 always_ff @(posedge clk_i or negedge rst_ni) begin
39 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
40 1/1 state_q <= StEraseIdle;
Tests: T1 T2 T3
41 end else begin
42 1/1 state_q <= state_d;
Tests: T1 T2 T3
43 end
44 end
45
46 always_comb begin
47 1/1 req_valid = 1'b0;
Tests: T1 T2 T3
48 1/1 suspend_valid = 1'b0;
Tests: T1 T2 T3
49 1/1 ack_o = 1'b0;
Tests: T1 T2 T3
50 1/1 state_d = state_q;
Tests: T1 T2 T3
51
52 1/1 unique case (state_q)
Tests: T1 T2 T3
53 StEraseIdle: begin
54 1/1 req_valid = 1'b1;
Tests: T1 T2 T3
55
56 1/1 if ((pg_erase_req_o || bk_erase_req_o) && ack_i) begin
Tests: T1 T2 T3
57 1/1 state_d = StEraseBusy;
Tests: T2 T18 T4
58 end
MISSING_ELSE
59 end
60
61 StEraseBusy: begin
62 1/1 suspend_valid = '1;
Tests: T2 T18 T4
63
64 1/1 if (suspend_req_i && ack_i) begin
Tests: T2 T18 T4
65 1/1 state_d = StEraseSuspend;
Tests: T28 T65 T66
66 1/1 end else if (done_i) begin
Tests: T2 T18 T4
67 1/1 ack_o = 1'b1;
Tests: T2 T18 T30
68 1/1 state_d = StEraseIdle;
Tests: T2 T18 T30
69 end
MISSING_ELSE
70 end
71
72 StEraseSuspend: begin
73 1/1 if (done_i) begin
Tests: T28 T65 T66
74 1/1 ack_o = 1'b1;
Tests: T28 T65 T66
75 1/1 state_d = StEraseIdle;
Tests: T28 T65 T66
76 end
==> MISSING_ELSE
77 end
78
79 default:;
80 endcase // unique case (state_q)
81 end
82
83 1/1 assign pg_erase_req_o = pg_erase_req_i & req_valid;
Tests: T1 T2 T3
84 1/1 assign bk_erase_req_o = bk_erase_req_i & req_valid;
Tests: T1 T2 T3
85 1/1 assign suspend_req_o = suspend_req_i & suspend_valid;
Tests: T1 T2 T3
Cond Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_erase
| Total | Covered | Percent |
Conditions | 18 | 16 | 88.89 |
Logical | 18 | 16 | 88.89 |
Non-Logical | 0 | 0 | |
Event | 0 | 0 | |
LINE 56
EXPRESSION ((pg_erase_req_o || bk_erase_req_o) && ack_i)
-----------------1---------------- --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T2,T18,T4 |
LINE 56
SUB-EXPRESSION (pg_erase_req_o || bk_erase_req_o)
-------1------ -------2------
-1- | -2- | Status | Tests |
0 | 0 | Covered | T1,T2,T3 |
0 | 1 | Covered | T25,T26,T28 |
1 | 0 | Covered | T2,T18,T4 |
LINE 64
EXPRESSION (suspend_req_i && ack_i)
------1------ --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T2,T18,T4 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T28,T65,T66 |
LINE 83
EXPRESSION (pg_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T2,T18,T4 |
1 | 1 | Covered | T2,T18,T4 |
LINE 84
EXPRESSION (bk_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T25,T26,T28 |
1 | 1 | Covered | T25,T26,T28 |
LINE 85
EXPRESSION (suspend_req_i & suspend_valid)
------1------ ------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T2,T18,T4 |
1 | 0 | Covered | T30,T64,T28 |
1 | 1 | Covered | T28,T65,T66 |
FSM Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_erase
Summary for FSM :: state_q
| Total | Covered | Percent | |
States |
3 |
3 |
100.00 |
(Not included in score) |
Transitions |
4 |
4 |
100.00 |
|
Sequences |
0 |
0 |
|
|
State, Transition and Sequence Details for FSM :: state_q
states | Line No. | Covered | Tests |
StEraseBusy |
57 |
Covered |
T2,T18,T4 |
StEraseIdle |
68 |
Covered |
T1,T2,T3 |
StEraseSuspend |
65 |
Covered |
T28,T65,T66 |
transitions | Line No. | Covered | Tests |
StEraseBusy->StEraseIdle |
68 |
Covered |
T2,T18,T4 |
StEraseBusy->StEraseSuspend |
65 |
Covered |
T28,T65,T66 |
StEraseIdle->StEraseBusy |
57 |
Covered |
T2,T18,T4 |
StEraseSuspend->StEraseIdle |
75 |
Covered |
T28,T65,T66 |
Branch Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_erase
| Line No. | Total | Covered | Percent |
Branches |
|
10 |
8 |
80.00 |
IF |
39 |
2 |
2 |
100.00 |
CASE |
52 |
8 |
6 |
75.00 |
39 if (!rst_ni) begin
-1-
40 state_q <= StEraseIdle;
==>
41 end else begin
42 state_q <= state_d;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
52 unique case (state_q)
-1-
53 StEraseIdle: begin
54 req_valid = 1'b1;
55
56 if ((pg_erase_req_o || bk_erase_req_o) && ack_i) begin
-2-
57 state_d = StEraseBusy;
==>
58 end
MISSING_ELSE
==>
59 end
60
61 StEraseBusy: begin
62 suspend_valid = '1;
63
64 if (suspend_req_i && ack_i) begin
-3-
65 state_d = StEraseSuspend;
==>
66 end else if (done_i) begin
-4-
67 ack_o = 1'b1;
==>
68 state_d = StEraseIdle;
69 end
MISSING_ELSE
==>
70 end
71
72 StEraseSuspend: begin
73 if (done_i) begin
-5-
74 ack_o = 1'b1;
==>
75 state_d = StEraseIdle;
76 end
MISSING_ELSE
==>
77 end
78
79 default:;
==>
Branches:
-1- | -2- | -3- | -4- | -5- | Status | Tests |
StEraseIdle |
1 |
- |
- |
- |
Covered |
T2,T18,T4 |
StEraseIdle |
0 |
- |
- |
- |
Covered |
T1,T2,T3 |
StEraseBusy |
- |
1 |
- |
- |
Covered |
T28,T65,T66 |
StEraseBusy |
- |
0 |
1 |
- |
Covered |
T2,T18,T30 |
StEraseBusy |
- |
0 |
0 |
- |
Covered |
T2,T18,T4 |
StEraseSuspend |
- |
- |
- |
1 |
Covered |
T28,T65,T66 |
StEraseSuspend |
- |
- |
- |
0 |
Not Covered |
|
default |
- |
- |
- |
- |
Not Covered |
|
Line Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_erase
| Line No. | Total | Covered | Percent |
TOTAL | | 23 | 23 | 100.00 |
ALWAYS | 39 | 3 | 3 | 100.00 |
ALWAYS | 47 | 17 | 17 | 100.00 |
CONT_ASSIGN | 83 | 1 | 1 | 100.00 |
CONT_ASSIGN | 84 | 1 | 1 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
38 always_ff @(posedge clk_i or negedge rst_ni) begin
39 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
40 1/1 state_q <= StEraseIdle;
Tests: T1 T2 T3
41 end else begin
42 1/1 state_q <= state_d;
Tests: T1 T2 T3
43 end
44 end
45
46 always_comb begin
47 1/1 req_valid = 1'b0;
Tests: T1 T2 T3
48 1/1 suspend_valid = 1'b0;
Tests: T1 T2 T3
49 1/1 ack_o = 1'b0;
Tests: T1 T2 T3
50 1/1 state_d = state_q;
Tests: T1 T2 T3
51
52 1/1 unique case (state_q)
Tests: T1 T2 T3
53 StEraseIdle: begin
54 1/1 req_valid = 1'b1;
Tests: T1 T2 T3
55
56 1/1 if ((pg_erase_req_o || bk_erase_req_o) && ack_i) begin
Tests: T1 T2 T3
57 1/1 state_d = StEraseBusy;
Tests: T18 T30 T31
58 end
MISSING_ELSE
59 end
60
61 StEraseBusy: begin
62 1/1 suspend_valid = '1;
Tests: T18 T30 T31
63
64 1/1 if (suspend_req_i && ack_i) begin
Tests: T18 T30 T31
65 1/1 state_d = StEraseSuspend;
Tests: T30 T64 T28
66 1/1 end else if (done_i) begin
Tests: T18 T30 T31
67 1/1 ack_o = 1'b1;
Tests: T18 T30 T31
68 1/1 state_d = StEraseIdle;
Tests: T18 T30 T31
69 end
MISSING_ELSE
70 end
71
72 StEraseSuspend: begin
73 1/1 if (done_i) begin
Tests: T30 T64 T28
74 1/1 ack_o = 1'b1;
Tests: T30 T64 T28
75 1/1 state_d = StEraseIdle;
Tests: T30 T64 T28
76 end
==> MISSING_ELSE
77 end
78
79 default:;
80 endcase // unique case (state_q)
81 end
82
83 1/1 assign pg_erase_req_o = pg_erase_req_i & req_valid;
Tests: T1 T2 T3
84 1/1 assign bk_erase_req_o = bk_erase_req_i & req_valid;
Tests: T1 T2 T3
85 1/1 assign suspend_req_o = suspend_req_i & suspend_valid;
Tests: T1 T2 T3
Cond Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_erase
| Total | Covered | Percent |
Conditions | 18 | 16 | 88.89 |
Logical | 18 | 16 | 88.89 |
Non-Logical | 0 | 0 | |
Event | 0 | 0 | |
LINE 56
EXPRESSION ((pg_erase_req_o || bk_erase_req_o) && ack_i)
-----------------1---------------- --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T18,T30,T31 |
LINE 56
SUB-EXPRESSION (pg_erase_req_o || bk_erase_req_o)
-------1------ -------2------
-1- | -2- | Status | Tests |
0 | 0 | Covered | T1,T2,T3 |
0 | 1 | Covered | T27,T28,T32 |
1 | 0 | Covered | T18,T30,T31 |
LINE 64
EXPRESSION (suspend_req_i && ack_i)
------1------ --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T18,T30,T31 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T30,T64,T28 |
LINE 83
EXPRESSION (pg_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T18,T30,T31 |
1 | 1 | Covered | T18,T30,T31 |
LINE 84
EXPRESSION (bk_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T27,T28,T32 |
1 | 1 | Covered | T27,T28,T32 |
LINE 85
EXPRESSION (suspend_req_i & suspend_valid)
------1------ ------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T18,T30,T31 |
1 | 0 | Covered | T30,T64,T28 |
1 | 1 | Covered | T30,T64,T28 |
FSM Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_erase
Summary for FSM :: state_q
| Total | Covered | Percent | |
States |
3 |
3 |
100.00 |
(Not included in score) |
Transitions |
4 |
4 |
100.00 |
|
Sequences |
0 |
0 |
|
|
State, Transition and Sequence Details for FSM :: state_q
states | Line No. | Covered | Tests |
StEraseBusy |
57 |
Covered |
T18,T30,T31 |
StEraseIdle |
68 |
Covered |
T1,T2,T3 |
StEraseSuspend |
65 |
Covered |
T30,T64,T28 |
transitions | Line No. | Covered | Tests |
StEraseBusy->StEraseIdle |
68 |
Covered |
T18,T30,T31 |
StEraseBusy->StEraseSuspend |
65 |
Covered |
T30,T64,T28 |
StEraseIdle->StEraseBusy |
57 |
Covered |
T18,T30,T31 |
StEraseSuspend->StEraseIdle |
75 |
Covered |
T30,T64,T28 |
Branch Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_erase
| Line No. | Total | Covered | Percent |
Branches |
|
10 |
8 |
80.00 |
IF |
39 |
2 |
2 |
100.00 |
CASE |
52 |
8 |
6 |
75.00 |
39 if (!rst_ni) begin
-1-
40 state_q <= StEraseIdle;
==>
41 end else begin
42 state_q <= state_d;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
52 unique case (state_q)
-1-
53 StEraseIdle: begin
54 req_valid = 1'b1;
55
56 if ((pg_erase_req_o || bk_erase_req_o) && ack_i) begin
-2-
57 state_d = StEraseBusy;
==>
58 end
MISSING_ELSE
==>
59 end
60
61 StEraseBusy: begin
62 suspend_valid = '1;
63
64 if (suspend_req_i && ack_i) begin
-3-
65 state_d = StEraseSuspend;
==>
66 end else if (done_i) begin
-4-
67 ack_o = 1'b1;
==>
68 state_d = StEraseIdle;
69 end
MISSING_ELSE
==>
70 end
71
72 StEraseSuspend: begin
73 if (done_i) begin
-5-
74 ack_o = 1'b1;
==>
75 state_d = StEraseIdle;
76 end
MISSING_ELSE
==>
77 end
78
79 default:;
==>
Branches:
-1- | -2- | -3- | -4- | -5- | Status | Tests |
StEraseIdle |
1 |
- |
- |
- |
Covered |
T18,T30,T31 |
StEraseIdle |
0 |
- |
- |
- |
Covered |
T1,T2,T3 |
StEraseBusy |
- |
1 |
- |
- |
Covered |
T30,T64,T28 |
StEraseBusy |
- |
0 |
1 |
- |
Covered |
T18,T30,T31 |
StEraseBusy |
- |
0 |
0 |
- |
Covered |
T18,T30,T31 |
StEraseSuspend |
- |
- |
- |
1 |
Covered |
T30,T64,T28 |
StEraseSuspend |
- |
- |
- |
0 |
Not Covered |
|
default |
- |
- |
- |
- |
Not Covered |
|