Line Coverage for Module :
prim_intr_hw
| Line No. | Total | Covered | Percent |
TOTAL | | 10 | 10 | 100.00 |
ALWAYS | 75 | 4 | 4 | 100.00 |
CONT_ASSIGN | 81 | 1 | 1 | 100.00 |
CONT_ASSIGN | 83 | 1 | 1 | 100.00 |
CONT_ASSIGN | 88 | 1 | 1 | 100.00 |
ALWAYS | 95 | 3 | 3 | 100.00 |
74 always_ff @(posedge clk_i or negedge rst_ni) begin
75 2/2 if (!rst_ni) test_q <= '0;
Tests: T1 T2 T3 | T1 T2 T3
76 2/2 else if (reg2hw_intr_test_qe_i) test_q <= reg2hw_intr_test_q_i;
Tests: T1 T2 T3 | T12 T60 T14
MISSING_ELSE
77 end
78
79 // TODO: In Status type, INTR_STATE is better to be external type and RO.
80 assign hw2reg_intr_state_de_o = 1'b 1; // always represent the status
81 1/1 assign hw2reg_intr_state_d_o = event_intr_i | test_q;
Tests: T1 T2 T3
82
83 1/1 assign status = event_intr_i | test_q;
Tests: T1 T2 T3
84
85 // To make the timing same to event type, status signal does not use CSR.q,
86 // rather the input of the CSR.
87 logic unused_reg2hw;
88 1/1 assign unused_reg2hw = ^reg2hw_intr_state_q_i;
Tests: T1 T2 T3
89 end : g_intr_status
90
91
92 if (FlopOutput == 1) begin : gen_flop_intr_output
93 // flop the interrupt output
94 always_ff @(posedge clk_i or negedge rst_ni) begin
95 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
96 1/1 intr_o <= '0;
Tests: T1 T2 T3
97 end else begin
98 1/1 intr_o <= status & reg2hw_intr_enable_q_i;
Tests: T1 T2 T3
Cond Coverage for Module :
prim_intr_hw
| Total | Covered | Percent |
Conditions | 9 | 9 | 100.00 |
Logical | 9 | 9 | 100.00 |
Non-Logical | 0 | 0 | |
Event | 0 | 0 | |
LINE 81
EXPRESSION (event_intr_i | g_intr_status.test_q)
------1----- ----------2---------
-1- | -2- | Status | Tests |
0 | 0 | Covered | T1,T2,T3 |
0 | 1 | Covered | T12,T14,T97 |
1 | 0 | Covered | T4,T7,T8 |
LINE 83
EXPRESSION (event_intr_i | g_intr_status.test_q)
------1----- ----------2---------
-1- | -2- | Status | Tests |
0 | 0 | Covered | T1,T2,T3 |
0 | 1 | Covered | T12,T14,T97 |
1 | 0 | Covered | T4,T7,T8 |
LINE 98
EXPRESSION (status & reg2hw_intr_enable_q_i)
---1-- -----------2----------
-1- | -2- | Status | Tests |
0 | 1 | Covered | T6,T12,T60 |
1 | 0 | Covered | T4,T7,T8 |
1 | 1 | Covered | T12,T14,T16 |
Branch Coverage for Module :
prim_intr_hw
| Line No. | Total | Covered | Percent |
Branches |
|
5 |
5 |
100.00 |
IF |
75 |
3 |
3 |
100.00 |
IF |
95 |
2 |
2 |
100.00 |
75 if (!rst_ni) test_q <= '0;
-1-
==>
76 else if (reg2hw_intr_test_qe_i) test_q <= reg2hw_intr_test_q_i;
-2-
==>
MISSING_ELSE
==>
Branches:
-1- | -2- | Status | Tests |
1 |
- |
Covered |
T1,T2,T3 |
0 |
1 |
Covered |
T12,T60,T14 |
0 |
0 |
Covered |
T1,T2,T3 |
95 if (!rst_ni) begin
-1-
96 intr_o <= '0;
==>
97 end else begin
98 intr_o <= status & reg2hw_intr_enable_q_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Module :
prim_intr_hw
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
IntrTKind_A |
755 |
755 |
0 |
0 |
IntrTKind_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
755 |
755 |
0 |
0 |
T1 |
1 |
1 |
0 |
0 |
T2 |
1 |
1 |
0 |
0 |
T3 |
1 |
1 |
0 |
0 |
T4 |
1 |
1 |
0 |
0 |
T5 |
1 |
1 |
0 |
0 |
T6 |
1 |
1 |
0 |
0 |
T7 |
1 |
1 |
0 |
0 |
T8 |
1 |
1 |
0 |
0 |
T9 |
1 |
1 |
0 |
0 |
T24 |
1 |
1 |
0 |
0 |