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 T19 T20
58 end
MISSING_ELSE
59 end
60
61 StEraseBusy: begin
62 1/1 suspend_valid = '1;
Tests: T2 T19 T20
63
64 1/1 if (suspend_req_i && ack_i) begin
Tests: T2 T19 T20
65 1/1 state_d = StEraseSuspend;
Tests: T49 T46 T98
66 1/1 end else if (done_i) begin
Tests: T2 T19 T20
67 1/1 ack_o = 1'b1;
Tests: T2 T19 T20
68 1/1 state_d = StEraseIdle;
Tests: T2 T19 T20
69 end
MISSING_ELSE
70 end
71
72 StEraseSuspend: begin
73 1/1 if (done_i) begin
Tests: T49 T46 T98
74 1/1 ack_o = 1'b1;
Tests: T49 T46 T98
75 1/1 state_d = StEraseIdle;
Tests: T49 T46 T98
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,T19,T20 |
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 | T20,T32,T46 |
1 | 0 | Covered | T2,T19,T20 |
LINE 64
EXPRESSION (suspend_req_i && ack_i)
------1------ --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T2,T19,T20 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T49,T46,T98 |
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,T19,T20 |
1 | 1 | Covered | T2,T19,T20 |
LINE 84
EXPRESSION (bk_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T20,T32,T46 |
1 | 1 | Covered | T20,T32,T46 |
LINE 85
EXPRESSION (suspend_req_i & suspend_valid)
------1------ ------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T2,T19,T20 |
1 | 0 | Covered | T49,T46,T98 |
1 | 1 | Covered | T49,T46,T98 |
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,T19,T20 |
StEraseIdle |
68 |
Covered |
T1,T2,T3 |
StEraseSuspend |
65 |
Covered |
T49,T46,T98 |
transitions | Line No. | Covered | Tests |
StEraseBusy->StEraseIdle |
68 |
Covered |
T2,T19,T20 |
StEraseBusy->StEraseSuspend |
65 |
Covered |
T49,T46,T98 |
StEraseIdle->StEraseBusy |
57 |
Covered |
T2,T19,T20 |
StEraseSuspend->StEraseIdle |
75 |
Covered |
T49,T46,T98 |
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 |
T2,T19,T20 |
StEraseIdle |
0 |
- |
- |
- |
Covered |
T1,T2,T3 |
StEraseBusy |
- |
1 |
- |
- |
Covered |
T49,T46,T98 |
StEraseBusy |
- |
0 |
1 |
- |
Covered |
T2,T19,T20 |
StEraseBusy |
- |
0 |
0 |
- |
Covered |
T2,T19,T20 |
StEraseSuspend |
- |
- |
- |
1 |
Covered |
T49,T46,T98 |
StEraseSuspend |
- |
- |
- |
0 |
Covered |
T12 |
default |
- |
- |
- |
- |
Covered |
T12 |
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 T19 T20
58 end
MISSING_ELSE
59 end
60
61 StEraseBusy: begin
62 1/1 suspend_valid = '1;
Tests: T2 T19 T20
63
64 1/1 if (suspend_req_i && ack_i) begin
Tests: T2 T19 T20
65 1/1 state_d = StEraseSuspend;
Tests: T49 T46 T160
66 1/1 end else if (done_i) begin
Tests: T2 T19 T20
67 1/1 ack_o = 1'b1;
Tests: T2 T19 T20
68 1/1 state_d = StEraseIdle;
Tests: T2 T19 T20
69 end
MISSING_ELSE
70 end
71
72 StEraseSuspend: begin
73 1/1 if (done_i) begin
Tests: T49 T46 T160
74 1/1 ack_o = 1'b1;
Tests: T49 T46 T160
75 1/1 state_d = StEraseIdle;
Tests: T49 T46 T160
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,T19,T20 |
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 | T20,T46,T47 |
1 | 0 | Covered | T2,T19,T20 |
LINE 64
EXPRESSION (suspend_req_i && ack_i)
------1------ --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T2,T19,T20 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T49,T46,T160 |
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,T19,T20 |
1 | 1 | Covered | T2,T19,T20 |
LINE 84
EXPRESSION (bk_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T20,T46,T47 |
1 | 1 | Covered | T20,T46,T47 |
LINE 85
EXPRESSION (suspend_req_i & suspend_valid)
------1------ ------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T2,T19,T20 |
1 | 0 | Covered | T49,T46,T98 |
1 | 1 | Covered | T49,T46,T160 |
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,T19,T20 |
StEraseIdle |
68 |
Covered |
T1,T2,T3 |
StEraseSuspend |
65 |
Covered |
T49,T46,T160 |
transitions | Line No. | Covered | Tests |
StEraseBusy->StEraseIdle |
68 |
Covered |
T2,T19,T20 |
StEraseBusy->StEraseSuspend |
65 |
Covered |
T49,T46,T160 |
StEraseIdle->StEraseBusy |
57 |
Covered |
T2,T19,T20 |
StEraseSuspend->StEraseIdle |
75 |
Covered |
T49,T46,T160 |
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 |
T2,T19,T20 |
StEraseIdle |
0 |
- |
- |
- |
Covered |
T1,T2,T3 |
StEraseBusy |
- |
1 |
- |
- |
Covered |
T49,T46,T160 |
StEraseBusy |
- |
0 |
1 |
- |
Covered |
T2,T19,T20 |
StEraseBusy |
- |
0 |
0 |
- |
Covered |
T2,T19,T20 |
StEraseSuspend |
- |
- |
- |
1 |
Covered |
T49,T46,T160 |
StEraseSuspend |
- |
- |
- |
0 |
Covered |
T12 |
default |
- |
- |
- |
- |
Covered |
T12 |
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: T48 T49 T32
58 end
MISSING_ELSE
59 end
60
61 StEraseBusy: begin
62 1/1 suspend_valid = '1;
Tests: T48 T49 T32
63
64 1/1 if (suspend_req_i && ack_i) begin
Tests: T48 T49 T32
65 1/1 state_d = StEraseSuspend;
Tests: T46 T98 T160
66 1/1 end else if (done_i) begin
Tests: T48 T49 T32
67 1/1 ack_o = 1'b1;
Tests: T48 T49 T32
68 1/1 state_d = StEraseIdle;
Tests: T48 T49 T32
69 end
MISSING_ELSE
70 end
71
72 StEraseSuspend: begin
73 1/1 if (done_i) begin
Tests: T46 T98 T160
74 1/1 ack_o = 1'b1;
Tests: T46 T98 T160
75 1/1 state_d = StEraseIdle;
Tests: T46 T98 T160
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 | T48,T49,T32 |
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 | T32,T46,T50 |
1 | 0 | Covered | T48,T49,T32 |
LINE 64
EXPRESSION (suspend_req_i && ack_i)
------1------ --2--
-1- | -2- | Status | Tests |
0 | 1 | Covered | T48,T49,T32 |
1 | 0 | Not Covered | |
1 | 1 | Covered | T46,T98,T160 |
LINE 83
EXPRESSION (pg_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T48,T49,T32 |
1 | 1 | Covered | T48,T49,T32 |
LINE 84
EXPRESSION (bk_erase_req_i & req_valid)
-------1------ ----2----
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T32,T46,T50 |
1 | 1 | Covered | T32,T46,T50 |
LINE 85
EXPRESSION (suspend_req_i & suspend_valid)
------1------ ------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T48,T49,T32 |
1 | 0 | Covered | T49,T46,T98 |
1 | 1 | Covered | T46,T98,T160 |
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 |
T48,T49,T32 |
StEraseIdle |
68 |
Covered |
T1,T2,T3 |
StEraseSuspend |
65 |
Covered |
T46,T98,T160 |
transitions | Line No. | Covered | Tests |
StEraseBusy->StEraseIdle |
68 |
Covered |
T48,T49,T32 |
StEraseBusy->StEraseSuspend |
65 |
Covered |
T46,T98,T160 |
StEraseIdle->StEraseBusy |
57 |
Covered |
T48,T49,T32 |
StEraseSuspend->StEraseIdle |
75 |
Covered |
T46,T98,T160 |
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 |
T48,T49,T32 |
StEraseIdle |
0 |
- |
- |
- |
Covered |
T1,T2,T3 |
StEraseBusy |
- |
1 |
- |
- |
Covered |
T46,T98,T160 |
StEraseBusy |
- |
0 |
1 |
- |
Covered |
T48,T49,T32 |
StEraseBusy |
- |
0 |
0 |
- |
Covered |
T48,T49,T32 |
StEraseSuspend |
- |
- |
- |
1 |
Covered |
T46,T98,T160 |
StEraseSuspend |
- |
- |
- |
0 |
Covered |
T12 |
default |
- |
- |
- |
- |
Covered |
T12 |