Line Coverage for Module :
tlul_cmd_intg_chk
| Line No. | Total | Covered | Percent |
TOTAL | | 2 | 2 | 100.00 |
CONT_ASSIGN | 22 | 1 | 1 | 100.00 |
CONT_ASSIGN | 44 | 0 | 0 | |
CONT_ASSIGN | 49 | 1 | 1 | 100.00 |
21 tl_h2d_cmd_intg_t cmd;
22 1/1 assign cmd = extract_h2d_cmd_intg(tl_i);
Tests: T1 T2 T3
23
24 prim_secded_inv_64_57_dec u_chk (
25 .data_i({tl_i.a_user.cmd_intg, H2DCmdMaxWidth'(cmd)}),
26 .data_o(),
27 .syndrome_o(),
28 .err_o(err)
29 );
30
31 tlul_data_integ_dec u_tlul_data_integ_dec (
32 .data_intg_i({tl_i.a_user.data_intg, DataMaxWidth'(tl_i.a_data)}),
33 .data_err_o(data_err)
34 );
35
36 // error output is transactional, it is up to the instantiating module
37 // to determine if a permanent latch is feasible
38 // [LOWRISC] err and data_err is unknown when a_valid is low, so we can't cover
39 // the condition coverage - (|err | (|data_err)) == 0/1, when a_valid = 0, which is
40 // fine as driving unknown is better. `err_o` is used as a condition in other places,
41 // which needs to be covered with 0 and 1, so it's OK to disable the entire coverage.
42 //VCS coverage off
43 // pragma coverage off
44 unreachable assign err_o = tl_i.a_valid & (|err | (|data_err));
45 //VCS coverage on
46 // pragma coverage on
47
48 logic unused_tl;
49 1/1 assign unused_tl = |tl_i;
Tests: T1 T2 T3
Assert Coverage for Module :
tlul_cmd_intg_chk
Assertion Details
PayLoadWidthCheck
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
746 |
746 |
0 |
0 |
T1 |
2 |
2 |
0 |
0 |
T2 |
2 |
2 |
0 |
0 |
T3 |
2 |
2 |
0 |
0 |
T4 |
2 |
2 |
0 |
0 |
T11 |
2 |
2 |
0 |
0 |
T12 |
2 |
2 |
0 |
0 |
T13 |
2 |
2 |
0 |
0 |
T14 |
2 |
2 |
0 |
0 |
T20 |
2 |
2 |
0 |
0 |
T45 |
2 |
2 |
0 |
0 |
Line Coverage for Instance : tb.dut.u_reg_regs.u_chk
| Line No. | Total | Covered | Percent |
TOTAL | | 2 | 2 | 100.00 |
CONT_ASSIGN | 22 | 1 | 1 | 100.00 |
CONT_ASSIGN | 44 | 0 | 0 | |
CONT_ASSIGN | 49 | 1 | 1 | 100.00 |
21 tl_h2d_cmd_intg_t cmd;
22 1/1 assign cmd = extract_h2d_cmd_intg(tl_i);
Tests: T1 T2 T3
23
24 prim_secded_inv_64_57_dec u_chk (
25 .data_i({tl_i.a_user.cmd_intg, H2DCmdMaxWidth'(cmd)}),
26 .data_o(),
27 .syndrome_o(),
28 .err_o(err)
29 );
30
31 tlul_data_integ_dec u_tlul_data_integ_dec (
32 .data_intg_i({tl_i.a_user.data_intg, DataMaxWidth'(tl_i.a_data)}),
33 .data_err_o(data_err)
34 );
35
36 // error output is transactional, it is up to the instantiating module
37 // to determine if a permanent latch is feasible
38 // [LOWRISC] err and data_err is unknown when a_valid is low, so we can't cover
39 // the condition coverage - (|err | (|data_err)) == 0/1, when a_valid = 0, which is
40 // fine as driving unknown is better. `err_o` is used as a condition in other places,
41 // which needs to be covered with 0 and 1, so it's OK to disable the entire coverage.
42 //VCS coverage off
43 // pragma coverage off
44 unreachable assign err_o = tl_i.a_valid & (|err | (|data_err));
45 //VCS coverage on
46 // pragma coverage on
47
48 logic unused_tl;
49 1/1 assign unused_tl = |tl_i;
Tests: T1 T2 T3
Assert Coverage for Instance : tb.dut.u_reg_regs.u_chk
Assertion Details
PayLoadWidthCheck
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
483 |
483 |
0 |
0 |
T1 |
1 |
1 |
0 |
0 |
T2 |
1 |
1 |
0 |
0 |
T3 |
1 |
1 |
0 |
0 |
T4 |
1 |
1 |
0 |
0 |
T11 |
1 |
1 |
0 |
0 |
T12 |
1 |
1 |
0 |
0 |
T13 |
1 |
1 |
0 |
0 |
T14 |
1 |
1 |
0 |
0 |
T20 |
1 |
1 |
0 |
0 |
T45 |
1 |
1 |
0 |
0 |
Line Coverage for Instance : tb.dut.i_tlul_adapter_reg.gen_cmd_intg_check.u_cmd_intg_chk
| Line No. | Total | Covered | Percent |
TOTAL | | 2 | 2 | 100.00 |
CONT_ASSIGN | 22 | 1 | 1 | 100.00 |
CONT_ASSIGN | 44 | 0 | 0 | |
CONT_ASSIGN | 49 | 1 | 1 | 100.00 |
21 tl_h2d_cmd_intg_t cmd;
22 1/1 assign cmd = extract_h2d_cmd_intg(tl_i);
Tests: T1 T2 T3
23
24 prim_secded_inv_64_57_dec u_chk (
25 .data_i({tl_i.a_user.cmd_intg, H2DCmdMaxWidth'(cmd)}),
26 .data_o(),
27 .syndrome_o(),
28 .err_o(err)
29 );
30
31 tlul_data_integ_dec u_tlul_data_integ_dec (
32 .data_intg_i({tl_i.a_user.data_intg, DataMaxWidth'(tl_i.a_data)}),
33 .data_err_o(data_err)
34 );
35
36 // error output is transactional, it is up to the instantiating module
37 // to determine if a permanent latch is feasible
38 // [LOWRISC] err and data_err is unknown when a_valid is low, so we can't cover
39 // the condition coverage - (|err | (|data_err)) == 0/1, when a_valid = 0, which is
40 // fine as driving unknown is better. `err_o` is used as a condition in other places,
41 // which needs to be covered with 0 and 1, so it's OK to disable the entire coverage.
42 //VCS coverage off
43 // pragma coverage off
44 unreachable assign err_o = tl_i.a_valid & (|err | (|data_err));
45 //VCS coverage on
46 // pragma coverage on
47
48 logic unused_tl;
49 1/1 assign unused_tl = |tl_i;
Tests: T1 T2 T3
Assert Coverage for Instance : tb.dut.i_tlul_adapter_reg.gen_cmd_intg_check.u_cmd_intg_chk
Assertion Details
PayLoadWidthCheck
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
263 |
263 |
0 |
0 |
T1 |
1 |
1 |
0 |
0 |
T2 |
1 |
1 |
0 |
0 |
T3 |
1 |
1 |
0 |
0 |
T4 |
1 |
1 |
0 |
0 |
T11 |
1 |
1 |
0 |
0 |
T12 |
1 |
1 |
0 |
0 |
T13 |
1 |
1 |
0 |
0 |
T14 |
1 |
1 |
0 |
0 |
T20 |
1 |
1 |
0 |
0 |
T45 |
1 |
1 |
0 |
0 |