Line Coverage for Module :
tlul_err_resp
| Line No. | Total | Covered | Percent |
TOTAL | | 21 | 21 | 100.00 |
ALWAYS | 34 | 14 | 14 | 100.00 |
CONT_ASSIGN | 51 | 1 | 1 | 100.00 |
CONT_ASSIGN | 52 | 1 | 1 | 100.00 |
CONT_ASSIGN | 53 | 1 | 1 | 100.00 |
CONT_ASSIGN | 55 | 1 | 1 | 100.00 |
CONT_ASSIGN | 58 | 1 | 1 | 100.00 |
CONT_ASSIGN | 59 | 1 | 1 | 100.00 |
CONT_ASSIGN | 65 | 1 | 1 | 100.00 |
33 always_ff @(posedge clk_i or negedge rst_ni) begin
34 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
35 1/1 err_rsp_pending <= 1'b0;
Tests: T1 T2 T3
36 1/1 err_source <= {top_pkg::TL_AIW{1'b0}};
Tests: T1 T2 T3
37 1/1 err_opcode <= Get;
Tests: T1 T2 T3
38 1/1 err_size <= '0;
Tests: T1 T2 T3
39 1/1 err_instr_type <= MuBi4False;
Tests: T1 T2 T3
40 1/1 end else if (err_rsp_pending && tl_h_i.d_ready) begin
Tests: T1 T2 T3
41 1/1 err_rsp_pending <= 1'b0;
Tests: T4 T5 T6
42 1/1 end else if (tl_h_i.a_valid && tl_h_o_int.a_ready) begin
Tests: T1 T2 T3
43 1/1 err_rsp_pending <= 1'b1;
Tests: T4 T5 T6
44 1/1 err_source <= tl_h_i.a_source;
Tests: T4 T5 T6
45 1/1 err_opcode <= tl_h_i.a_opcode;
Tests: T4 T5 T6
46 1/1 err_size <= tl_h_i.a_size;
Tests: T4 T5 T6
47 1/1 err_instr_type <= tl_h_i.a_user.instr_type;
Tests: T4 T5 T6
48 end
MISSING_ELSE
49 end
50
51 1/1 assign tl_h_o_int.a_ready = ~err_rsp_pending;
Tests: T1 T2 T3
52 1/1 assign tl_h_o_int.d_valid = err_rsp_pending;
Tests: T1 T2 T3
53 1/1 assign tl_h_o_int.d_data = (mubi4_test_true_strict(err_instr_type)) ? DataWhenInstrError :
Tests: T1 T2 T3
54 DataWhenError;
55 1/1 assign tl_h_o_int.d_source = err_source;
Tests: T1 T2 T3
56 assign tl_h_o_int.d_sink = '0;
57 assign tl_h_o_int.d_param = '0;
58 1/1 assign tl_h_o_int.d_size = err_size;
Tests: T1 T2 T3
59 1/1 assign tl_h_o_int.d_opcode = (err_opcode == Get) ? AccessAckData : AccessAck;
Tests: T1 T2 T3
60 assign tl_h_o_int.d_user = '0;
61 assign tl_h_o_int.d_error = 1'b1;
62
63 // Waive unused bits of tl_h_i
64 logic unused_tl_h;
65 1/1 assign unused_tl_h = ^tl_h_i;
Tests: T1 T2 T3
Cond Coverage for Module :
tlul_err_resp
| Total | Covered | Percent |
Conditions | 10 | 10 | 100.00 |
Logical | 10 | 10 | 100.00 |
Non-Logical | 0 | 0 | |
Event | 0 | 0 | |
LINE 40
EXPRESSION (err_rsp_pending && tl_h_i.d_ready)
-------1------- -------2------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T3,T4,T9 |
1 | 0 | Covered | T16,T32,T26 |
1 | 1 | Covered | T4,T5,T6 |
LINE 42
EXPRESSION (tl_h_i.a_valid && tl_h_o_int.a_ready)
-------1------ ---------2--------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T1,T2,T3 |
1 | 0 | Covered | T16,T32,T26 |
1 | 1 | Covered | T4,T5,T6 |
LINE 59
EXPRESSION ((err_opcode == Get) ? AccessAckData : AccessAck)
---------1---------
-1- | Status | Tests |
0 | Covered | T4,T5,T6 |
1 | Covered | T1,T2,T3 |
LINE 59
SUB-EXPRESSION (err_opcode == Get)
---------1---------
-1- | Status | Tests |
0 | Covered | T1,T2,T3 |
1 | Covered | T1,T2,T3 |
Branch Coverage for Module :
tlul_err_resp
| Line No. | Total | Covered | Percent |
Branches |
|
6 |
6 |
100.00 |
TERNARY |
59 |
2 |
2 |
100.00 |
IF |
34 |
4 |
4 |
100.00 |
59 assign tl_h_o_int.d_opcode = (err_opcode == Get) ? AccessAckData : AccessAck;
-1-
==>
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T4,T5,T6 |
34 if (!rst_ni) begin
-1-
35 err_rsp_pending <= 1'b0;
==>
36 err_source <= {top_pkg::TL_AIW{1'b0}};
37 err_opcode <= Get;
38 err_size <= '0;
39 err_instr_type <= MuBi4False;
40 end else if (err_rsp_pending && tl_h_i.d_ready) begin
-2-
41 err_rsp_pending <= 1'b0;
==>
42 end else if (tl_h_i.a_valid && tl_h_o_int.a_ready) begin
-3-
43 err_rsp_pending <= 1'b1;
==>
44 err_source <= tl_h_i.a_source;
45 err_opcode <= tl_h_i.a_opcode;
46 err_size <= tl_h_i.a_size;
47 err_instr_type <= tl_h_i.a_user.instr_type;
48 end
MISSING_ELSE
==>
Branches:
-1- | -2- | -3- | Status | Tests |
1 |
- |
- |
Covered |
T1,T2,T3 |
0 |
1 |
- |
Covered |
T4,T5,T6 |
0 |
0 |
1 |
Covered |
T4,T5,T6 |
0 |
0 |
0 |
Covered |
T1,T2,T3 |