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: T7 T8 T26
58 end
MISSING_ELSE
59 end
60
61 StEraseBusy: begin
62 1/1 suspend_valid = '1;
Tests: T7 T8 T26
63
64 1/1 if (suspend_req_i && ack_i) begin
Tests: T7 T8 T26
65 1/1 state_d = StEraseSuspend;
Tests: T50 T96 T72
66 1/1 end else if (done_i) begin
Tests: T7 T8 T26
67 1/1 ack_o = 1'b1;
Tests: T7 T8 T26
68 1/1 state_d = StEraseIdle;
Tests: T7 T8 T26
69 end
MISSING_ELSE
70 end
71
72 StEraseSuspend: begin
73 1/1 if (done_i) begin
Tests: T50 T96 T72
74 1/1 ack_o = 1'b1;
Tests: T50 T96 T72
75 1/1 state_d = StEraseIdle;
Tests: T50 T96 T72
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 | T7,T8,T26 |
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 | T52,T65,T69 |
1 | 0 | Covered | T7,T8,T26 |
LINE 64
EXPRESSION (suspend_req_i && ack_i)
------1------ --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T7,T8,T26 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T50,T96,T72 |
LINE 83
EXPRESSION (pg_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T7,T8,T26 |
1 | 1 | Covered | T7,T8,T26 |
LINE 84
EXPRESSION (bk_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T52,T65,T69 |
1 | 1 | Covered | T52,T65,T69 |
LINE 85
EXPRESSION (suspend_req_i & suspend_valid)
------1------ ------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T7,T8,T26 |
1 | 0 | Covered | T50,T96,T72 |
1 | 1 | Covered | T50,T96,T72 |
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 |
T7,T8,T26 |
StEraseIdle |
68 |
Covered |
T1,T2,T3 |
StEraseSuspend |
65 |
Covered |
T50,T96,T72 |
transitions | Line No. | Covered | Tests |
StEraseBusy->StEraseIdle |
68 |
Covered |
T7,T8,T26 |
StEraseBusy->StEraseSuspend |
65 |
Covered |
T50,T96,T72 |
StEraseIdle->StEraseBusy |
57 |
Covered |
T7,T8,T26 |
StEraseSuspend->StEraseIdle |
75 |
Covered |
T50,T96,T72 |
Branch Coverage for Module :
flash_phy_erase
| Line No. | Total | Covered | Percent |
Branches |
|
10 |
10 |
100.00 |
IF |
39 |
2 |
2 |
100.00 |
CASE |
52 |
8 |
8 |
100.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 |
T7,T8,T26 |
StEraseIdle |
0 |
- |
- |
- |
Covered |
T1,T2,T3 |
StEraseBusy |
- |
1 |
- |
- |
Covered |
T50,T96,T72 |
StEraseBusy |
- |
0 |
1 |
- |
Covered |
T7,T8,T26 |
StEraseBusy |
- |
0 |
0 |
- |
Covered |
T7,T8,T26 |
StEraseSuspend |
- |
- |
- |
1 |
Covered |
T50,T96,T72 |
StEraseSuspend |
- |
- |
- |
0 |
Covered |
T12,T13 |
default |
- |
- |
- |
- |
Covered |
T12,T13 |
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: T7 T8 T26
58 end
MISSING_ELSE
59 end
60
61 StEraseBusy: begin
62 1/1 suspend_valid = '1;
Tests: T7 T8 T26
63
64 1/1 if (suspend_req_i && ack_i) begin
Tests: T7 T8 T26
65 1/1 state_d = StEraseSuspend;
Tests: T50 T72 T70
66 1/1 end else if (done_i) begin
Tests: T7 T8 T26
67 1/1 ack_o = 1'b1;
Tests: T7 T8 T26
68 1/1 state_d = StEraseIdle;
Tests: T7 T8 T26
69 end
MISSING_ELSE
70 end
71
72 StEraseSuspend: begin
73 1/1 if (done_i) begin
Tests: T50 T72 T70
74 1/1 ack_o = 1'b1;
Tests: T50 T72 T70
75 1/1 state_d = StEraseIdle;
Tests: T50 T72 T70
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 | T7,T8,T26 |
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 | T52,T35,T70 |
1 | 0 | Covered | T7,T8,T26 |
LINE 64
EXPRESSION (suspend_req_i && ack_i)
------1------ --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T7,T8,T26 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T50,T72,T70 |
LINE 83
EXPRESSION (pg_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T7,T8,T26 |
1 | 1 | Covered | T7,T8,T26 |
LINE 84
EXPRESSION (bk_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T52,T35,T70 |
1 | 1 | Covered | T52,T35,T70 |
LINE 85
EXPRESSION (suspend_req_i & suspend_valid)
------1------ ------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T7,T8,T26 |
1 | 0 | Covered | T50,T96,T72 |
1 | 1 | Covered | T50,T72,T70 |
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 |
T7,T8,T26 |
StEraseIdle |
68 |
Covered |
T1,T2,T3 |
StEraseSuspend |
65 |
Covered |
T50,T72,T70 |
transitions | Line No. | Covered | Tests |
StEraseBusy->StEraseIdle |
68 |
Covered |
T7,T8,T26 |
StEraseBusy->StEraseSuspend |
65 |
Covered |
T50,T72,T70 |
StEraseIdle->StEraseBusy |
57 |
Covered |
T7,T8,T26 |
StEraseSuspend->StEraseIdle |
75 |
Covered |
T50,T72,T70 |
Branch Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_erase
| Line No. | Total | Covered | Percent |
Branches |
|
10 |
10 |
100.00 |
IF |
39 |
2 |
2 |
100.00 |
CASE |
52 |
8 |
8 |
100.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 |
T7,T8,T26 |
StEraseIdle |
0 |
- |
- |
- |
Covered |
T1,T2,T3 |
StEraseBusy |
- |
1 |
- |
- |
Covered |
T50,T72,T70 |
StEraseBusy |
- |
0 |
1 |
- |
Covered |
T7,T8,T26 |
StEraseBusy |
- |
0 |
0 |
- |
Covered |
T7,T8,T26 |
StEraseSuspend |
- |
- |
- |
1 |
Covered |
T50,T72,T70 |
StEraseSuspend |
- |
- |
- |
0 |
Covered |
T12,T13 |
default |
- |
- |
- |
- |
Covered |
T12,T13 |
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: T26 T62 T71
58 end
MISSING_ELSE
59 end
60
61 StEraseBusy: begin
62 1/1 suspend_valid = '1;
Tests: T26 T62 T71
63
64 1/1 if (suspend_req_i && ack_i) begin
Tests: T26 T62 T71
65 1/1 state_d = StEraseSuspend;
Tests: T96 T72 T97
66 1/1 end else if (done_i) begin
Tests: T26 T62 T71
67 1/1 ack_o = 1'b1;
Tests: T26 T62 T71
68 1/1 state_d = StEraseIdle;
Tests: T26 T62 T71
69 end
MISSING_ELSE
70 end
71
72 StEraseSuspend: begin
73 1/1 if (done_i) begin
Tests: T96 T72 T97
74 1/1 ack_o = 1'b1;
Tests: T96 T72 T97
75 1/1 state_d = StEraseIdle;
Tests: T96 T72 T97
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 | T26,T62,T71 |
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 | T65,T69,T72 |
1 | 0 | Covered | T26,T62,T71 |
LINE 64
EXPRESSION (suspend_req_i && ack_i)
------1------ --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T26,T62,T71 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T96,T72,T97 |
LINE 83
EXPRESSION (pg_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T26,T62,T71 |
1 | 1 | Covered | T26,T62,T71 |
LINE 84
EXPRESSION (bk_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T65,T69,T72 |
1 | 1 | Covered | T65,T69,T72 |
LINE 85
EXPRESSION (suspend_req_i & suspend_valid)
------1------ ------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T26,T62,T71 |
1 | 0 | Covered | T50,T96,T72 |
1 | 1 | Covered | T96,T72,T97 |
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 |
T26,T62,T71 |
StEraseIdle |
68 |
Covered |
T1,T2,T3 |
StEraseSuspend |
65 |
Covered |
T96,T72,T97 |
transitions | Line No. | Covered | Tests |
StEraseBusy->StEraseIdle |
68 |
Covered |
T26,T62,T71 |
StEraseBusy->StEraseSuspend |
65 |
Covered |
T96,T72,T97 |
StEraseIdle->StEraseBusy |
57 |
Covered |
T26,T62,T71 |
StEraseSuspend->StEraseIdle |
75 |
Covered |
T96,T72,T97 |
Branch Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_erase
| Line No. | Total | Covered | Percent |
Branches |
|
10 |
10 |
100.00 |
IF |
39 |
2 |
2 |
100.00 |
CASE |
52 |
8 |
8 |
100.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 |
T26,T62,T71 |
StEraseIdle |
0 |
- |
- |
- |
Covered |
T1,T2,T3 |
StEraseBusy |
- |
1 |
- |
- |
Covered |
T96,T72,T97 |
StEraseBusy |
- |
0 |
1 |
- |
Covered |
T26,T62,T71 |
StEraseBusy |
- |
0 |
0 |
- |
Covered |
T26,T62,T71 |
StEraseSuspend |
- |
- |
- |
1 |
Covered |
T96,T72,T97 |
StEraseSuspend |
- |
- |
- |
0 |
Covered |
T12,T13 |
default |
- |
- |
- |
- |
Covered |
T12,T13 |