Line Coverage for Module : 
prim_mubi4_sync ( parameter NumCopies=1,AsyncOn=1,StabilityCheck=1,ResetValue=9 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| ALWAYS | 117 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
95                              // hence this mux can be implemented behaviorally.
96         4/4                  assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
           Tests:       T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6 
97                            end
98                      
99                      // Note regarding SVAs below:
100                     //
101                     // 1) Without the sampled rst_ni pre-condition, this may cause false assertion failures right after
102                     // a reset release, since the "disable iff" condition with the rst_ni is sampled in the "observed"
103                     // SV scheduler region after all assignments have been evaluated (see also LRM section 16.12, page
104                     // 423). This is a simulation artifact due to reset synchronization in RTL, which releases rst_ni
105                     // on the active clock edge. This causes the assertion to evaluate although the reset was actually
106                     // 0 when entering this simulation cycle.
107                     //
108                     // 2) Similarly to 1) there can be sampling mismatches of the lc_en_i signal since that signal may
109                     // originate from a different clock domain. I.e., in cases where the lc_en_i signal changes exactly
110                     // at the same time that the clk_i signal rises, the SVA will not pick up that change in that clock
111                     // cycle, whereas RTL will because SVAs sample values in the "preponed" region. To that end we make
112                     // use of an RTL helper variable to sample the lc_en_i signal, hence ensuring that there are no
113                     // sampling mismatches.
114                     `ifdef INC_ASSERT
115                           mubi4_t mubi_in_sva_q;
116                           always_ff @(posedge clk_i) begin
117        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
118                           end
119                           `ASSERT(OutputIfUnstable_A, sig_unstable |-> mubi_o == {NumCopies{reset_value}})
120                           `ASSERT(OutputDelay_A,
121                                   rst_ni |-> ##[3:4] sig_unstable || mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}})
122                     `endif
123                         end else begin : gen_no_stable_chks
124                           assign mubi = mubi_sync;
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128                             mubi_in_sva_q <= mubi_i;
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Line Coverage for Module : 
prim_mubi4_sync ( parameter NumCopies=1,AsyncOn=0,StabilityCheck=0,ResetValue=9 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Line Coverage for Module : 
prim_mubi4_sync ( parameter NumCopies=6,AsyncOn=1,StabilityCheck=0,ResetValue=9 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| ALWAYS | 128 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
123                         end else begin : gen_no_stable_chks
124        1/1                assign mubi = mubi_sync;
           Tests:       T4 T5 T6 
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        6/6              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6 
Line Coverage for Module : 
prim_mubi4_sync ( parameter NumCopies=1,AsyncOn=1,StabilityCheck=0,ResetValue=9 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| ALWAYS | 128 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
123                         end else begin : gen_no_stable_chks
124        1/1                assign mubi = mubi_sync;
           Tests:       T4 T5 T6 
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Cond Coverage for Module : 
prim_mubi4_sync
 | Total | Covered | Percent | 
| Conditions | 8 | 8 | 100.00 | 
| Logical | 8 | 8 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[0].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[0] : gen_flops.gen_stable_chks.mubi_q[0])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[1] : gen_flops.gen_stable_chks.mubi_q[1])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[2] : gen_flops.gen_stable_chks.mubi_q[2])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[3] : gen_flops.gen_stable_chks.mubi_q[3])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
Branch Coverage for Module : 
prim_mubi4_sync
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        -1-  
                                                        ==>  
                                                        ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
Assert Coverage for Module : 
prim_mubi4_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
21980 | 
21980 | 
0 | 
0 | 
| T4 | 
28 | 
28 | 
0 | 
0 | 
| T5 | 
28 | 
28 | 
0 | 
0 | 
| T6 | 
28 | 
28 | 
0 | 
0 | 
| T28 | 
28 | 
28 | 
0 | 
0 | 
| T29 | 
28 | 
28 | 
0 | 
0 | 
| T30 | 
28 | 
28 | 
0 | 
0 | 
| T31 | 
28 | 
28 | 
0 | 
0 | 
| T32 | 
28 | 
28 | 
0 | 
0 | 
| T33 | 
28 | 
28 | 
0 | 
0 | 
| T34 | 
28 | 
28 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1622141158 | 
1526707880 | 
0 | 
0 | 
| T4 | 
85637 | 
82898 | 
0 | 
0 | 
| T5 | 
109254 | 
106690 | 
0 | 
0 | 
| T6 | 
111864 | 
109908 | 
0 | 
0 | 
| T28 | 
34733 | 
30995 | 
0 | 
0 | 
| T29 | 
65919 | 
63546 | 
0 | 
0 | 
| T30 | 
79933 | 
76536 | 
0 | 
0 | 
| T31 | 
76423 | 
73328 | 
0 | 
0 | 
| T32 | 
67483 | 
63694 | 
0 | 
0 | 
| T33 | 
96005 | 
93623 | 
0 | 
0 | 
| T34 | 
67322 | 
64926 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
228100338 | 
209793978 | 
0 | 
14130 | 
| T4 | 
7914 | 
7614 | 
0 | 
18 | 
| T5 | 
10170 | 
9888 | 
0 | 
18 | 
| T6 | 
6264 | 
6114 | 
0 | 
18 | 
| T28 | 
7992 | 
7050 | 
0 | 
18 | 
| T29 | 
6666 | 
6396 | 
0 | 
18 | 
| T30 | 
8382 | 
7962 | 
0 | 
18 | 
| T31 | 
17544 | 
16770 | 
0 | 
18 | 
| T32 | 
10062 | 
9390 | 
0 | 
18 | 
| T33 | 
8640 | 
8376 | 
0 | 
18 | 
| T34 | 
15342 | 
14742 | 
0 | 
18 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
523288655 | 
491392180 | 
0 | 
16485 | 
| T4 | 
29917 | 
28821 | 
0 | 
21 | 
| T5 | 
38427 | 
37410 | 
0 | 
21 | 
| T6 | 
41902 | 
40999 | 
0 | 
21 | 
| T28 | 
9271 | 
8178 | 
0 | 
21 | 
| T29 | 
22919 | 
21976 | 
0 | 
21 | 
| T30 | 
27539 | 
26193 | 
0 | 
21 | 
| T31 | 
20352 | 
19454 | 
0 | 
21 | 
| T32 | 
20674 | 
19314 | 
0 | 
21 | 
| T33 | 
33939 | 
32928 | 
0 | 
21 | 
| T34 | 
17921 | 
17224 | 
0 | 
21 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
523288655 | 
125692 | 
0 | 
0 | 
| T4 | 
29917 | 
129 | 
0 | 
0 | 
| T5 | 
38427 | 
12 | 
0 | 
0 | 
| T6 | 
41902 | 
70 | 
0 | 
0 | 
| T28 | 
9271 | 
12 | 
0 | 
0 | 
| T29 | 
22919 | 
64 | 
0 | 
0 | 
| T30 | 
27539 | 
60 | 
0 | 
0 | 
| T31 | 
20352 | 
169 | 
0 | 
0 | 
| T32 | 
20674 | 
109 | 
0 | 
0 | 
| T33 | 
33939 | 
85 | 
0 | 
0 | 
| T34 | 
17921 | 
237 | 
0 | 
0 | 
| T123 | 
0 | 
26 | 
0 | 
0 | 
| T134 | 
0 | 
59 | 
0 | 
0 | 
| T153 | 
0 | 
95 | 
0 | 
0 | 
| T154 | 
0 | 
148 | 
0 | 
0 | 
| T155 | 
0 | 
93 | 
0 | 
0 | 
| T156 | 
0 | 
13 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
870752165 | 
825428978 | 
0 | 
0 | 
| T4 | 
47806 | 
46424 | 
0 | 
0 | 
| T5 | 
60657 | 
59353 | 
0 | 
0 | 
| T6 | 
63698 | 
62756 | 
0 | 
0 | 
| T28 | 
17470 | 
15728 | 
0 | 
0 | 
| T29 | 
36334 | 
35135 | 
0 | 
0 | 
| T30 | 
44012 | 
42342 | 
0 | 
0 | 
| T31 | 
38527 | 
37065 | 
0 | 
0 | 
| T32 | 
36747 | 
34951 | 
0 | 
0 | 
| T33 | 
53426 | 
52280 | 
0 | 
0 | 
| T34 | 
34059 | 
32921 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_io_step_down_req_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| ALWAYS | 117 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
95                              // hence this mux can be implemented behaviorally.
96         4/4                  assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
           Tests:       T4 T28 T31  | T4 T28 T31  | T4 T28 T31  | T4 T28 T31 
97                            end
98                      
99                      // Note regarding SVAs below:
100                     //
101                     // 1) Without the sampled rst_ni pre-condition, this may cause false assertion failures right after
102                     // a reset release, since the "disable iff" condition with the rst_ni is sampled in the "observed"
103                     // SV scheduler region after all assignments have been evaluated (see also LRM section 16.12, page
104                     // 423). This is a simulation artifact due to reset synchronization in RTL, which releases rst_ni
105                     // on the active clock edge. This causes the assertion to evaluate although the reset was actually
106                     // 0 when entering this simulation cycle.
107                     //
108                     // 2) Similarly to 1) there can be sampling mismatches of the lc_en_i signal since that signal may
109                     // originate from a different clock domain. I.e., in cases where the lc_en_i signal changes exactly
110                     // at the same time that the clk_i signal rises, the SVA will not pick up that change in that clock
111                     // cycle, whereas RTL will because SVAs sample values in the "preponed" region. To that end we make
112                     // use of an RTL helper variable to sample the lc_en_i signal, hence ensuring that there are no
113                     // sampling mismatches.
114                     `ifdef INC_ASSERT
115                           mubi4_t mubi_in_sva_q;
116                           always_ff @(posedge clk_i) begin
117        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
118                           end
119                           `ASSERT(OutputIfUnstable_A, sig_unstable |-> mubi_o == {NumCopies{reset_value}})
120                           `ASSERT(OutputDelay_A,
121                                   rst_ni |-> ##[3:4] sig_unstable || mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}})
122                     `endif
123                         end else begin : gen_no_stable_chks
124                           assign mubi = mubi_sync;
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128                             mubi_in_sva_q <= mubi_i;
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T28 T31 
Cond Coverage for Instance : tb.dut.u_io_step_down_req_sync
 | Total | Covered | Percent | 
| Conditions | 8 | 8 | 100.00 | 
| Logical | 8 | 8 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[0].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[0] : gen_flops.gen_stable_chks.mubi_q[0])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T28,T31 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[1] : gen_flops.gen_stable_chks.mubi_q[1])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T28,T31 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[2] : gen_flops.gen_stable_chks.mubi_q[2])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T28,T31 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[3] : gen_flops.gen_stable_chks.mubi_q[3])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T28,T31 | 
Branch Coverage for Instance : tb.dut.u_io_step_down_req_sync
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        -1-  
                                                        ==>  
                                                        ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T28,T31 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T28,T31 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T28,T31 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T28,T31 | 
| 0 | 
Covered | 
T4,T5,T6 | 
Assert Coverage for Instance : tb.dut.u_io_step_down_req_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
82648253 | 
77750734 | 
0 | 
0 | 
| T4 | 
5279 | 
5090 | 
0 | 
0 | 
| T5 | 
6781 | 
6605 | 
0 | 
0 | 
| T6 | 
7706 | 
7544 | 
0 | 
0 | 
| T28 | 
1279 | 
1131 | 
0 | 
0 | 
| T29 | 
3857 | 
3695 | 
0 | 
0 | 
| T30 | 
4789 | 
4558 | 
0 | 
0 | 
| T31 | 
2808 | 
2687 | 
0 | 
0 | 
| T32 | 
3352 | 
3135 | 
0 | 
0 | 
| T33 | 
6011 | 
5835 | 
0 | 
0 | 
| T34 | 
2479 | 
2385 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
82648253 | 
77743746 | 
0 | 
2355 | 
| T4 | 
5279 | 
5087 | 
0 | 
3 | 
| T5 | 
6781 | 
6602 | 
0 | 
3 | 
| T6 | 
7706 | 
7541 | 
0 | 
3 | 
| T28 | 
1279 | 
1128 | 
0 | 
3 | 
| T29 | 
3857 | 
3692 | 
0 | 
3 | 
| T30 | 
4789 | 
4555 | 
0 | 
3 | 
| T31 | 
2808 | 
2684 | 
0 | 
3 | 
| T32 | 
3352 | 
3132 | 
0 | 
3 | 
| T33 | 
6011 | 
5832 | 
0 | 
3 | 
| T34 | 
2479 | 
2382 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
82648253 | 
17606 | 
0 | 
0 | 
| T4 | 
5279 | 
36 | 
0 | 
0 | 
| T5 | 
6781 | 
0 | 
0 | 
0 | 
| T6 | 
7706 | 
0 | 
0 | 
0 | 
| T28 | 
1279 | 
2 | 
0 | 
0 | 
| T29 | 
3857 | 
0 | 
0 | 
0 | 
| T30 | 
4789 | 
0 | 
0 | 
0 | 
| T31 | 
2808 | 
51 | 
0 | 
0 | 
| T32 | 
3352 | 
20 | 
0 | 
0 | 
| T33 | 
6011 | 
0 | 
0 | 
0 | 
| T34 | 
2479 | 
103 | 
0 | 
0 | 
| T123 | 
0 | 
8 | 
0 | 
0 | 
| T134 | 
0 | 
29 | 
0 | 
0 | 
| T153 | 
0 | 
53 | 
0 | 
0 | 
| T154 | 
0 | 
68 | 
0 | 
0 | 
| T155 | 
0 | 
45 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_io_div2_div_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_io_div2_div_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_io_div4_div_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_io_div4_div_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clkmgr_byp.u_io_ack_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| ALWAYS | 117 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
95                              // hence this mux can be implemented behaviorally.
96         4/4                  assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
           Tests:       T4 T31 T32  | T4 T31 T32  | T4 T31 T32  | T4 T31 T32 
97                            end
98                      
99                      // Note regarding SVAs below:
100                     //
101                     // 1) Without the sampled rst_ni pre-condition, this may cause false assertion failures right after
102                     // a reset release, since the "disable iff" condition with the rst_ni is sampled in the "observed"
103                     // SV scheduler region after all assignments have been evaluated (see also LRM section 16.12, page
104                     // 423). This is a simulation artifact due to reset synchronization in RTL, which releases rst_ni
105                     // on the active clock edge. This causes the assertion to evaluate although the reset was actually
106                     // 0 when entering this simulation cycle.
107                     //
108                     // 2) Similarly to 1) there can be sampling mismatches of the lc_en_i signal since that signal may
109                     // originate from a different clock domain. I.e., in cases where the lc_en_i signal changes exactly
110                     // at the same time that the clk_i signal rises, the SVA will not pick up that change in that clock
111                     // cycle, whereas RTL will because SVAs sample values in the "preponed" region. To that end we make
112                     // use of an RTL helper variable to sample the lc_en_i signal, hence ensuring that there are no
113                     // sampling mismatches.
114                     `ifdef INC_ASSERT
115                           mubi4_t mubi_in_sva_q;
116                           always_ff @(posedge clk_i) begin
117        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
118                           end
119                           `ASSERT(OutputIfUnstable_A, sig_unstable |-> mubi_o == {NumCopies{reset_value}})
120                           `ASSERT(OutputDelay_A,
121                                   rst_ni |-> ##[3:4] sig_unstable || mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}})
122                     `endif
123                         end else begin : gen_no_stable_chks
124                           assign mubi = mubi_sync;
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128                             mubi_in_sva_q <= mubi_i;
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T31 T32 
Cond Coverage for Instance : tb.dut.u_clkmgr_byp.u_io_ack_sync
 | Total | Covered | Percent | 
| Conditions | 8 | 8 | 100.00 | 
| Logical | 8 | 8 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[0].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[0] : gen_flops.gen_stable_chks.mubi_q[0])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T31,T32 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[1] : gen_flops.gen_stable_chks.mubi_q[1])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T31,T32 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[2] : gen_flops.gen_stable_chks.mubi_q[2])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T31,T32 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[3] : gen_flops.gen_stable_chks.mubi_q[3])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T31,T32 | 
Branch Coverage for Instance : tb.dut.u_clkmgr_byp.u_io_ack_sync
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        -1-  
                                                        ==>  
                                                        ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T31,T32 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T31,T32 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T31,T32 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T31,T32 | 
| 0 | 
Covered | 
T4,T5,T6 | 
Assert Coverage for Instance : tb.dut.u_clkmgr_byp.u_io_ack_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34965663 | 
0 | 
2355 | 
| T4 | 
1319 | 
1269 | 
0 | 
3 | 
| T5 | 
1695 | 
1648 | 
0 | 
3 | 
| T6 | 
1044 | 
1019 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
1111 | 
1066 | 
0 | 
3 | 
| T30 | 
1397 | 
1327 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
1677 | 
1565 | 
0 | 
3 | 
| T33 | 
1440 | 
1396 | 
0 | 
3 | 
| T34 | 
2557 | 
2457 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
10603 | 
0 | 
0 | 
| T4 | 
1319 | 
30 | 
0 | 
0 | 
| T5 | 
1695 | 
0 | 
0 | 
0 | 
| T6 | 
1044 | 
0 | 
0 | 
0 | 
| T28 | 
1332 | 
0 | 
0 | 
0 | 
| T29 | 
1111 | 
0 | 
0 | 
0 | 
| T30 | 
1397 | 
0 | 
0 | 
0 | 
| T31 | 
2924 | 
31 | 
0 | 
0 | 
| T32 | 
1677 | 
22 | 
0 | 
0 | 
| T33 | 
1440 | 
0 | 
0 | 
0 | 
| T34 | 
2557 | 
31 | 
0 | 
0 | 
| T123 | 
0 | 
9 | 
0 | 
0 | 
| T134 | 
0 | 
14 | 
0 | 
0 | 
| T153 | 
0 | 
21 | 
0 | 
0 | 
| T154 | 
0 | 
39 | 
0 | 
0 | 
| T155 | 
0 | 
4 | 
0 | 
0 | 
| T156 | 
0 | 
13 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clkmgr_byp.u_all_ack_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| ALWAYS | 117 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
95                              // hence this mux can be implemented behaviorally.
96         4/4                  assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
           Tests:       T4 T28 T31  | T4 T28 T31  | T4 T28 T31  | T4 T28 T31 
97                            end
98                      
99                      // Note regarding SVAs below:
100                     //
101                     // 1) Without the sampled rst_ni pre-condition, this may cause false assertion failures right after
102                     // a reset release, since the "disable iff" condition with the rst_ni is sampled in the "observed"
103                     // SV scheduler region after all assignments have been evaluated (see also LRM section 16.12, page
104                     // 423). This is a simulation artifact due to reset synchronization in RTL, which releases rst_ni
105                     // on the active clock edge. This causes the assertion to evaluate although the reset was actually
106                     // 0 when entering this simulation cycle.
107                     //
108                     // 2) Similarly to 1) there can be sampling mismatches of the lc_en_i signal since that signal may
109                     // originate from a different clock domain. I.e., in cases where the lc_en_i signal changes exactly
110                     // at the same time that the clk_i signal rises, the SVA will not pick up that change in that clock
111                     // cycle, whereas RTL will because SVAs sample values in the "preponed" region. To that end we make
112                     // use of an RTL helper variable to sample the lc_en_i signal, hence ensuring that there are no
113                     // sampling mismatches.
114                     `ifdef INC_ASSERT
115                           mubi4_t mubi_in_sva_q;
116                           always_ff @(posedge clk_i) begin
117        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
118                           end
119                           `ASSERT(OutputIfUnstable_A, sig_unstable |-> mubi_o == {NumCopies{reset_value}})
120                           `ASSERT(OutputDelay_A,
121                                   rst_ni |-> ##[3:4] sig_unstable || mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}})
122                     `endif
123                         end else begin : gen_no_stable_chks
124                           assign mubi = mubi_sync;
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128                             mubi_in_sva_q <= mubi_i;
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T28 T31 
Cond Coverage for Instance : tb.dut.u_clkmgr_byp.u_all_ack_sync
 | Total | Covered | Percent | 
| Conditions | 8 | 8 | 100.00 | 
| Logical | 8 | 8 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[0].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[0] : gen_flops.gen_stable_chks.mubi_q[0])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T28,T31 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[1] : gen_flops.gen_stable_chks.mubi_q[1])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T28,T31 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[2] : gen_flops.gen_stable_chks.mubi_q[2])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T28,T31 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[3] : gen_flops.gen_stable_chks.mubi_q[3])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T28,T31 | 
Branch Coverage for Instance : tb.dut.u_clkmgr_byp.u_all_ack_sync
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        -1-  
                                                        ==>  
                                                        ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T28,T31 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T28,T31 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T28,T31 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T28,T31 | 
| 0 | 
Covered | 
T4,T5,T6 | 
Assert Coverage for Instance : tb.dut.u_clkmgr_byp.u_all_ack_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34965663 | 
0 | 
2355 | 
| T4 | 
1319 | 
1269 | 
0 | 
3 | 
| T5 | 
1695 | 
1648 | 
0 | 
3 | 
| T6 | 
1044 | 
1019 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
1111 | 
1066 | 
0 | 
3 | 
| T30 | 
1397 | 
1327 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
1677 | 
1565 | 
0 | 
3 | 
| T33 | 
1440 | 
1396 | 
0 | 
3 | 
| T34 | 
2557 | 
2457 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
12401 | 
0 | 
0 | 
| T4 | 
1319 | 
25 | 
0 | 
0 | 
| T5 | 
1695 | 
0 | 
0 | 
0 | 
| T6 | 
1044 | 
0 | 
0 | 
0 | 
| T28 | 
1332 | 
2 | 
0 | 
0 | 
| T29 | 
1111 | 
0 | 
0 | 
0 | 
| T30 | 
1397 | 
0 | 
0 | 
0 | 
| T31 | 
2924 | 
23 | 
0 | 
0 | 
| T32 | 
1677 | 
37 | 
0 | 
0 | 
| T33 | 
1440 | 
0 | 
0 | 
0 | 
| T34 | 
2557 | 
44 | 
0 | 
0 | 
| T123 | 
0 | 
9 | 
0 | 
0 | 
| T134 | 
0 | 
16 | 
0 | 
0 | 
| T153 | 
0 | 
21 | 
0 | 
0 | 
| T154 | 
0 | 
41 | 
0 | 
0 | 
| T155 | 
0 | 
44 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_main_root_ctrl.u_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_main_root_ctrl.u_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
88593162 | 
0 | 
0 | 
| T4 | 
5500 | 
5374 | 
0 | 
0 | 
| T5 | 
7064 | 
6938 | 
0 | 
0 | 
| T6 | 
8027 | 
7972 | 
0 | 
0 | 
| T28 | 
1332 | 
1249 | 
0 | 
0 | 
| T29 | 
4210 | 
4099 | 
0 | 
0 | 
| T30 | 
4989 | 
4863 | 
0 | 
0 | 
| T31 | 
2924 | 
2841 | 
0 | 
0 | 
| T32 | 
3492 | 
3394 | 
0 | 
0 | 
| T33 | 
6262 | 
6193 | 
0 | 
0 | 
| T34 | 
2582 | 
2513 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
88593162 | 
0 | 
0 | 
| T4 | 
5500 | 
5374 | 
0 | 
0 | 
| T5 | 
7064 | 
6938 | 
0 | 
0 | 
| T6 | 
8027 | 
7972 | 
0 | 
0 | 
| T28 | 
1332 | 
1249 | 
0 | 
0 | 
| T29 | 
4210 | 
4099 | 
0 | 
0 | 
| T30 | 
4989 | 
4863 | 
0 | 
0 | 
| T31 | 
2924 | 
2841 | 
0 | 
0 | 
| T32 | 
3492 | 
3394 | 
0 | 
0 | 
| T33 | 
6262 | 
6193 | 
0 | 
0 | 
| T34 | 
2582 | 
2513 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_io_root_ctrl.u_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_io_root_ctrl.u_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
82648253 | 
80240641 | 
0 | 
0 | 
| T4 | 
5279 | 
5158 | 
0 | 
0 | 
| T5 | 
6781 | 
6660 | 
0 | 
0 | 
| T6 | 
7706 | 
7653 | 
0 | 
0 | 
| T28 | 
1279 | 
1200 | 
0 | 
0 | 
| T29 | 
3857 | 
3750 | 
0 | 
0 | 
| T30 | 
4789 | 
4668 | 
0 | 
0 | 
| T31 | 
2808 | 
2728 | 
0 | 
0 | 
| T32 | 
3352 | 
3259 | 
0 | 
0 | 
| T33 | 
6011 | 
5945 | 
0 | 
0 | 
| T34 | 
2479 | 
2413 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
82648253 | 
80240641 | 
0 | 
0 | 
| T4 | 
5279 | 
5158 | 
0 | 
0 | 
| T5 | 
6781 | 
6660 | 
0 | 
0 | 
| T6 | 
7706 | 
7653 | 
0 | 
0 | 
| T28 | 
1279 | 
1200 | 
0 | 
0 | 
| T29 | 
3857 | 
3750 | 
0 | 
0 | 
| T30 | 
4789 | 
4668 | 
0 | 
0 | 
| T31 | 
2808 | 
2728 | 
0 | 
0 | 
| T32 | 
3352 | 
3259 | 
0 | 
0 | 
| T33 | 
6011 | 
5945 | 
0 | 
0 | 
| T34 | 
2479 | 
2413 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_io_div2_root_ctrl.u_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_io_div2_root_ctrl.u_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
40333590 | 
40333590 | 
0 | 
0 | 
| T4 | 
2982 | 
2982 | 
0 | 
0 | 
| T5 | 
3330 | 
3330 | 
0 | 
0 | 
| T6 | 
3827 | 
3827 | 
0 | 
0 | 
| T28 | 
600 | 
600 | 
0 | 
0 | 
| T29 | 
1875 | 
1875 | 
0 | 
0 | 
| T30 | 
2334 | 
2334 | 
0 | 
0 | 
| T31 | 
1436 | 
1436 | 
0 | 
0 | 
| T32 | 
2798 | 
2798 | 
0 | 
0 | 
| T33 | 
2973 | 
2973 | 
0 | 
0 | 
| T34 | 
1393 | 
1393 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
40333590 | 
40333590 | 
0 | 
0 | 
| T4 | 
2982 | 
2982 | 
0 | 
0 | 
| T5 | 
3330 | 
3330 | 
0 | 
0 | 
| T6 | 
3827 | 
3827 | 
0 | 
0 | 
| T28 | 
600 | 
600 | 
0 | 
0 | 
| T29 | 
1875 | 
1875 | 
0 | 
0 | 
| T30 | 
2334 | 
2334 | 
0 | 
0 | 
| T31 | 
1436 | 
1436 | 
0 | 
0 | 
| T32 | 
2798 | 
2798 | 
0 | 
0 | 
| T33 | 
2973 | 
2973 | 
0 | 
0 | 
| T34 | 
1393 | 
1393 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_io_div4_root_ctrl.u_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_io_div4_root_ctrl.u_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
20166389 | 
20166389 | 
0 | 
0 | 
| T4 | 
1491 | 
1491 | 
0 | 
0 | 
| T5 | 
1665 | 
1665 | 
0 | 
0 | 
| T6 | 
1913 | 
1913 | 
0 | 
0 | 
| T28 | 
300 | 
300 | 
0 | 
0 | 
| T29 | 
938 | 
938 | 
0 | 
0 | 
| T30 | 
1167 | 
1167 | 
0 | 
0 | 
| T31 | 
716 | 
716 | 
0 | 
0 | 
| T32 | 
1398 | 
1398 | 
0 | 
0 | 
| T33 | 
1486 | 
1486 | 
0 | 
0 | 
| T34 | 
695 | 
695 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
20166389 | 
20166389 | 
0 | 
0 | 
| T4 | 
1491 | 
1491 | 
0 | 
0 | 
| T5 | 
1665 | 
1665 | 
0 | 
0 | 
| T6 | 
1913 | 
1913 | 
0 | 
0 | 
| T28 | 
300 | 
300 | 
0 | 
0 | 
| T29 | 
938 | 
938 | 
0 | 
0 | 
| T30 | 
1167 | 
1167 | 
0 | 
0 | 
| T31 | 
716 | 
716 | 
0 | 
0 | 
| T32 | 
1398 | 
1398 | 
0 | 
0 | 
| T33 | 
1486 | 
1486 | 
0 | 
0 | 
| T34 | 
695 | 
695 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_usb_root_ctrl.u_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_usb_root_ctrl.u_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
43744900 | 
42512736 | 
0 | 
0 | 
| T4 | 
2640 | 
2579 | 
0 | 
0 | 
| T5 | 
3391 | 
3330 | 
0 | 
0 | 
| T6 | 
3853 | 
3827 | 
0 | 
0 | 
| T28 | 
639 | 
599 | 
0 | 
0 | 
| T29 | 
1948 | 
1895 | 
0 | 
0 | 
| T30 | 
2395 | 
2334 | 
0 | 
0 | 
| T31 | 
1403 | 
1364 | 
0 | 
0 | 
| T32 | 
1677 | 
1630 | 
0 | 
0 | 
| T33 | 
3006 | 
2973 | 
0 | 
0 | 
| T34 | 
1240 | 
1207 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
43744900 | 
42512736 | 
0 | 
0 | 
| T4 | 
2640 | 
2579 | 
0 | 
0 | 
| T5 | 
3391 | 
3330 | 
0 | 
0 | 
| T6 | 
3853 | 
3827 | 
0 | 
0 | 
| T28 | 
639 | 
599 | 
0 | 
0 | 
| T29 | 
1948 | 
1895 | 
0 | 
0 | 
| T30 | 
2395 | 
2334 | 
0 | 
0 | 
| T31 | 
1403 | 
1364 | 
0 | 
0 | 
| T32 | 
1677 | 
1630 | 
0 | 
0 | 
| T33 | 
3006 | 
2973 | 
0 | 
0 | 
| T34 | 
1240 | 
1207 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_calib_rdy_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| ALWAYS | 128 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
123                         end else begin : gen_no_stable_chks
124        1/1                assign mubi = mubi_sync;
           Tests:       T4 T5 T6 
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        6/6              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_calib_rdy_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34965663 | 
0 | 
2355 | 
| T4 | 
1319 | 
1269 | 
0 | 
3 | 
| T5 | 
1695 | 
1648 | 
0 | 
3 | 
| T6 | 
1044 | 
1019 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
1111 | 
1066 | 
0 | 
3 | 
| T30 | 
1397 | 
1327 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
1677 | 
1565 | 
0 | 
3 | 
| T33 | 
1440 | 
1396 | 
0 | 
3 | 
| T34 | 
2557 | 
2457 | 
0 | 
3 | 
 
Line Coverage for Instance : tb.dut.u_io_meas.u_calib_rdy_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| ALWAYS | 128 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
123                         end else begin : gen_no_stable_chks
124        1/1                assign mubi = mubi_sync;
           Tests:       T4 T5 T6 
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_io_meas.u_calib_rdy_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34965663 | 
0 | 
2355 | 
| T4 | 
1319 | 
1269 | 
0 | 
3 | 
| T5 | 
1695 | 
1648 | 
0 | 
3 | 
| T6 | 
1044 | 
1019 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
1111 | 
1066 | 
0 | 
3 | 
| T30 | 
1397 | 
1327 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
1677 | 
1565 | 
0 | 
3 | 
| T33 | 
1440 | 
1396 | 
0 | 
3 | 
| T34 | 
2557 | 
2457 | 
0 | 
3 | 
 
Line Coverage for Instance : tb.dut.u_io_div2_meas.u_calib_rdy_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| ALWAYS | 128 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
123                         end else begin : gen_no_stable_chks
124        1/1                assign mubi = mubi_sync;
           Tests:       T4 T5 T6 
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_io_div2_meas.u_calib_rdy_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34965663 | 
0 | 
2355 | 
| T4 | 
1319 | 
1269 | 
0 | 
3 | 
| T5 | 
1695 | 
1648 | 
0 | 
3 | 
| T6 | 
1044 | 
1019 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
1111 | 
1066 | 
0 | 
3 | 
| T30 | 
1397 | 
1327 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
1677 | 
1565 | 
0 | 
3 | 
| T33 | 
1440 | 
1396 | 
0 | 
3 | 
| T34 | 
2557 | 
2457 | 
0 | 
3 | 
 
Line Coverage for Instance : tb.dut.u_io_div4_meas.u_calib_rdy_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| ALWAYS | 128 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
123                         end else begin : gen_no_stable_chks
124        1/1                assign mubi = mubi_sync;
           Tests:       T4 T5 T6 
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_io_div4_meas.u_calib_rdy_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34965663 | 
0 | 
2355 | 
| T4 | 
1319 | 
1269 | 
0 | 
3 | 
| T5 | 
1695 | 
1648 | 
0 | 
3 | 
| T6 | 
1044 | 
1019 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
1111 | 
1066 | 
0 | 
3 | 
| T30 | 
1397 | 
1327 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
1677 | 
1565 | 
0 | 
3 | 
| T33 | 
1440 | 
1396 | 
0 | 
3 | 
| T34 | 
2557 | 
2457 | 
0 | 
3 | 
 
Line Coverage for Instance : tb.dut.u_main_meas.u_calib_rdy_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| ALWAYS | 128 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
123                         end else begin : gen_no_stable_chks
124        1/1                assign mubi = mubi_sync;
           Tests:       T4 T5 T6 
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_main_meas.u_calib_rdy_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34965663 | 
0 | 
2355 | 
| T4 | 
1319 | 
1269 | 
0 | 
3 | 
| T5 | 
1695 | 
1648 | 
0 | 
3 | 
| T6 | 
1044 | 
1019 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
1111 | 
1066 | 
0 | 
3 | 
| T30 | 
1397 | 
1327 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
1677 | 
1565 | 
0 | 
3 | 
| T33 | 
1440 | 
1396 | 
0 | 
3 | 
| T34 | 
2557 | 
2457 | 
0 | 
3 | 
 
Line Coverage for Instance : tb.dut.u_usb_meas.u_calib_rdy_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| ALWAYS | 128 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
123                         end else begin : gen_no_stable_chks
124        1/1                assign mubi = mubi_sync;
           Tests:       T4 T5 T6 
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_usb_meas.u_calib_rdy_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34965663 | 
0 | 
2355 | 
| T4 | 
1319 | 
1269 | 
0 | 
3 | 
| T5 | 
1695 | 
1648 | 
0 | 
3 | 
| T6 | 
1044 | 
1019 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
1111 | 
1066 | 
0 | 
3 | 
| T30 | 
1397 | 
1327 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
1677 | 
1565 | 
0 | 
3 | 
| T33 | 
1440 | 
1396 | 
0 | 
3 | 
| T34 | 
2557 | 
2457 | 
0 | 
3 | 
 
Line Coverage for Instance : tb.dut.u_clk_io_div4_peri_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_io_div4_peri_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_io_div2_peri_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_io_div2_peri_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_io_peri_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_io_peri_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_usb_peri_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_usb_peri_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_aes_trans.u_idle_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| ALWAYS | 117 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
95                              // hence this mux can be implemented behaviorally.
96         4/4                  assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
           Tests:       T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6 
97                            end
98                      
99                      // Note regarding SVAs below:
100                     //
101                     // 1) Without the sampled rst_ni pre-condition, this may cause false assertion failures right after
102                     // a reset release, since the "disable iff" condition with the rst_ni is sampled in the "observed"
103                     // SV scheduler region after all assignments have been evaluated (see also LRM section 16.12, page
104                     // 423). This is a simulation artifact due to reset synchronization in RTL, which releases rst_ni
105                     // on the active clock edge. This causes the assertion to evaluate although the reset was actually
106                     // 0 when entering this simulation cycle.
107                     //
108                     // 2) Similarly to 1) there can be sampling mismatches of the lc_en_i signal since that signal may
109                     // originate from a different clock domain. I.e., in cases where the lc_en_i signal changes exactly
110                     // at the same time that the clk_i signal rises, the SVA will not pick up that change in that clock
111                     // cycle, whereas RTL will because SVAs sample values in the "preponed" region. To that end we make
112                     // use of an RTL helper variable to sample the lc_en_i signal, hence ensuring that there are no
113                     // sampling mismatches.
114                     `ifdef INC_ASSERT
115                           mubi4_t mubi_in_sva_q;
116                           always_ff @(posedge clk_i) begin
117        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
118                           end
119                           `ASSERT(OutputIfUnstable_A, sig_unstable |-> mubi_o == {NumCopies{reset_value}})
120                           `ASSERT(OutputDelay_A,
121                                   rst_ni |-> ##[3:4] sig_unstable || mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}})
122                     `endif
123                         end else begin : gen_no_stable_chks
124                           assign mubi = mubi_sync;
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128                             mubi_in_sva_q <= mubi_i;
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Cond Coverage for Instance : tb.dut.u_clk_main_aes_trans.u_idle_sync
 | Total | Covered | Percent | 
| Conditions | 8 | 8 | 100.00 | 
| Logical | 8 | 8 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[0].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[0] : gen_flops.gen_stable_chks.mubi_q[0])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[1] : gen_flops.gen_stable_chks.mubi_q[1])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[2] : gen_flops.gen_stable_chks.mubi_q[2])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[3] : gen_flops.gen_stable_chks.mubi_q[3])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
Branch Coverage for Instance : tb.dut.u_clk_main_aes_trans.u_idle_sync
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        -1-  
                                                        ==>  
                                                        ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
Assert Coverage for Instance : tb.dut.u_clk_main_aes_trans.u_idle_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85929277 | 
0 | 
2355 | 
| T4 | 
5500 | 
5299 | 
0 | 
3 | 
| T5 | 
7064 | 
6878 | 
0 | 
3 | 
| T6 | 
8027 | 
7855 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
4210 | 
4038 | 
0 | 
3 | 
| T30 | 
4989 | 
4746 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
3492 | 
3263 | 
0 | 
3 | 
| T33 | 
6262 | 
6076 | 
0 | 
3 | 
| T34 | 
2582 | 
2482 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
21428 | 
0 | 
0 | 
| T4 | 
5500 | 
7 | 
0 | 
0 | 
| T5 | 
7064 | 
3 | 
0 | 
0 | 
| T6 | 
8027 | 
11 | 
0 | 
0 | 
| T28 | 
1332 | 
3 | 
0 | 
0 | 
| T29 | 
4210 | 
17 | 
0 | 
0 | 
| T30 | 
4989 | 
15 | 
0 | 
0 | 
| T31 | 
2924 | 
17 | 
0 | 
0 | 
| T32 | 
3492 | 
7 | 
0 | 
0 | 
| T33 | 
6262 | 
18 | 
0 | 
0 | 
| T34 | 
2582 | 
16 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_aes_trans.u_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_main_aes_trans.u_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_hmac_trans.u_idle_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| ALWAYS | 117 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
95                              // hence this mux can be implemented behaviorally.
96         4/4                  assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
           Tests:       T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6 
97                            end
98                      
99                      // Note regarding SVAs below:
100                     //
101                     // 1) Without the sampled rst_ni pre-condition, this may cause false assertion failures right after
102                     // a reset release, since the "disable iff" condition with the rst_ni is sampled in the "observed"
103                     // SV scheduler region after all assignments have been evaluated (see also LRM section 16.12, page
104                     // 423). This is a simulation artifact due to reset synchronization in RTL, which releases rst_ni
105                     // on the active clock edge. This causes the assertion to evaluate although the reset was actually
106                     // 0 when entering this simulation cycle.
107                     //
108                     // 2) Similarly to 1) there can be sampling mismatches of the lc_en_i signal since that signal may
109                     // originate from a different clock domain. I.e., in cases where the lc_en_i signal changes exactly
110                     // at the same time that the clk_i signal rises, the SVA will not pick up that change in that clock
111                     // cycle, whereas RTL will because SVAs sample values in the "preponed" region. To that end we make
112                     // use of an RTL helper variable to sample the lc_en_i signal, hence ensuring that there are no
113                     // sampling mismatches.
114                     `ifdef INC_ASSERT
115                           mubi4_t mubi_in_sva_q;
116                           always_ff @(posedge clk_i) begin
117        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
118                           end
119                           `ASSERT(OutputIfUnstable_A, sig_unstable |-> mubi_o == {NumCopies{reset_value}})
120                           `ASSERT(OutputDelay_A,
121                                   rst_ni |-> ##[3:4] sig_unstable || mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}})
122                     `endif
123                         end else begin : gen_no_stable_chks
124                           assign mubi = mubi_sync;
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128                             mubi_in_sva_q <= mubi_i;
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Cond Coverage for Instance : tb.dut.u_clk_main_hmac_trans.u_idle_sync
 | Total | Covered | Percent | 
| Conditions | 8 | 8 | 100.00 | 
| Logical | 8 | 8 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[0].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[0] : gen_flops.gen_stable_chks.mubi_q[0])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[1] : gen_flops.gen_stable_chks.mubi_q[1])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[2] : gen_flops.gen_stable_chks.mubi_q[2])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[3] : gen_flops.gen_stable_chks.mubi_q[3])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
Branch Coverage for Instance : tb.dut.u_clk_main_hmac_trans.u_idle_sync
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        -1-  
                                                        ==>  
                                                        ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
Assert Coverage for Instance : tb.dut.u_clk_main_hmac_trans.u_idle_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85929277 | 
0 | 
2355 | 
| T4 | 
5500 | 
5299 | 
0 | 
3 | 
| T5 | 
7064 | 
6878 | 
0 | 
3 | 
| T6 | 
8027 | 
7855 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
4210 | 
4038 | 
0 | 
3 | 
| T30 | 
4989 | 
4746 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
3492 | 
3263 | 
0 | 
3 | 
| T33 | 
6262 | 
6076 | 
0 | 
3 | 
| T34 | 
2582 | 
2482 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
21351 | 
0 | 
0 | 
| T4 | 
5500 | 
7 | 
0 | 
0 | 
| T5 | 
7064 | 
3 | 
0 | 
0 | 
| T6 | 
8027 | 
21 | 
0 | 
0 | 
| T28 | 
1332 | 
3 | 
0 | 
0 | 
| T29 | 
4210 | 
21 | 
0 | 
0 | 
| T30 | 
4989 | 
8 | 
0 | 
0 | 
| T31 | 
2924 | 
13 | 
0 | 
0 | 
| T32 | 
3492 | 
5 | 
0 | 
0 | 
| T33 | 
6262 | 
21 | 
0 | 
0 | 
| T34 | 
2582 | 
20 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_hmac_trans.u_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_main_hmac_trans.u_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_kmac_trans.u_idle_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| ALWAYS | 117 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
95                              // hence this mux can be implemented behaviorally.
96         4/4                  assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
           Tests:       T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6 
97                            end
98                      
99                      // Note regarding SVAs below:
100                     //
101                     // 1) Without the sampled rst_ni pre-condition, this may cause false assertion failures right after
102                     // a reset release, since the "disable iff" condition with the rst_ni is sampled in the "observed"
103                     // SV scheduler region after all assignments have been evaluated (see also LRM section 16.12, page
104                     // 423). This is a simulation artifact due to reset synchronization in RTL, which releases rst_ni
105                     // on the active clock edge. This causes the assertion to evaluate although the reset was actually
106                     // 0 when entering this simulation cycle.
107                     //
108                     // 2) Similarly to 1) there can be sampling mismatches of the lc_en_i signal since that signal may
109                     // originate from a different clock domain. I.e., in cases where the lc_en_i signal changes exactly
110                     // at the same time that the clk_i signal rises, the SVA will not pick up that change in that clock
111                     // cycle, whereas RTL will because SVAs sample values in the "preponed" region. To that end we make
112                     // use of an RTL helper variable to sample the lc_en_i signal, hence ensuring that there are no
113                     // sampling mismatches.
114                     `ifdef INC_ASSERT
115                           mubi4_t mubi_in_sva_q;
116                           always_ff @(posedge clk_i) begin
117        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
118                           end
119                           `ASSERT(OutputIfUnstable_A, sig_unstable |-> mubi_o == {NumCopies{reset_value}})
120                           `ASSERT(OutputDelay_A,
121                                   rst_ni |-> ##[3:4] sig_unstable || mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}})
122                     `endif
123                         end else begin : gen_no_stable_chks
124                           assign mubi = mubi_sync;
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128                             mubi_in_sva_q <= mubi_i;
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Cond Coverage for Instance : tb.dut.u_clk_main_kmac_trans.u_idle_sync
 | Total | Covered | Percent | 
| Conditions | 8 | 8 | 100.00 | 
| Logical | 8 | 8 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[0].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[0] : gen_flops.gen_stable_chks.mubi_q[0])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[1] : gen_flops.gen_stable_chks.mubi_q[1])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[2] : gen_flops.gen_stable_chks.mubi_q[2])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[3] : gen_flops.gen_stable_chks.mubi_q[3])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
Branch Coverage for Instance : tb.dut.u_clk_main_kmac_trans.u_idle_sync
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        -1-  
                                                        ==>  
                                                        ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
Assert Coverage for Instance : tb.dut.u_clk_main_kmac_trans.u_idle_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85929277 | 
0 | 
2355 | 
| T4 | 
5500 | 
5299 | 
0 | 
3 | 
| T5 | 
7064 | 
6878 | 
0 | 
3 | 
| T6 | 
8027 | 
7855 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
4210 | 
4038 | 
0 | 
3 | 
| T30 | 
4989 | 
4746 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
3492 | 
3263 | 
0 | 
3 | 
| T33 | 
6262 | 
6076 | 
0 | 
3 | 
| T34 | 
2582 | 
2482 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
21102 | 
0 | 
0 | 
| T4 | 
5500 | 
11 | 
0 | 
0 | 
| T5 | 
7064 | 
3 | 
0 | 
0 | 
| T6 | 
8027 | 
15 | 
0 | 
0 | 
| T28 | 
1332 | 
1 | 
0 | 
0 | 
| T29 | 
4210 | 
13 | 
0 | 
0 | 
| T30 | 
4989 | 
15 | 
0 | 
0 | 
| T31 | 
2924 | 
15 | 
0 | 
0 | 
| T32 | 
3492 | 
13 | 
0 | 
0 | 
| T33 | 
6262 | 
25 | 
0 | 
0 | 
| T34 | 
2582 | 
8 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_kmac_trans.u_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_main_kmac_trans.u_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_otbn_trans.u_idle_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 96 | 1 | 1 | 100.00 | 
| ALWAYS | 117 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
95                              // hence this mux can be implemented behaviorally.
96         4/4                  assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
           Tests:       T4 T5 T6  | T4 T5 T6  | T4 T5 T6  | T4 T5 T6 
97                            end
98                      
99                      // Note regarding SVAs below:
100                     //
101                     // 1) Without the sampled rst_ni pre-condition, this may cause false assertion failures right after
102                     // a reset release, since the "disable iff" condition with the rst_ni is sampled in the "observed"
103                     // SV scheduler region after all assignments have been evaluated (see also LRM section 16.12, page
104                     // 423). This is a simulation artifact due to reset synchronization in RTL, which releases rst_ni
105                     // on the active clock edge. This causes the assertion to evaluate although the reset was actually
106                     // 0 when entering this simulation cycle.
107                     //
108                     // 2) Similarly to 1) there can be sampling mismatches of the lc_en_i signal since that signal may
109                     // originate from a different clock domain. I.e., in cases where the lc_en_i signal changes exactly
110                     // at the same time that the clk_i signal rises, the SVA will not pick up that change in that clock
111                     // cycle, whereas RTL will because SVAs sample values in the "preponed" region. To that end we make
112                     // use of an RTL helper variable to sample the lc_en_i signal, hence ensuring that there are no
113                     // sampling mismatches.
114                     `ifdef INC_ASSERT
115                           mubi4_t mubi_in_sva_q;
116                           always_ff @(posedge clk_i) begin
117        1/1                  mubi_in_sva_q <= mubi_i;
           Tests:       T4 T5 T6 
118                           end
119                           `ASSERT(OutputIfUnstable_A, sig_unstable |-> mubi_o == {NumCopies{reset_value}})
120                           `ASSERT(OutputDelay_A,
121                                   rst_ni |-> ##[3:4] sig_unstable || mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}})
122                     `endif
123                         end else begin : gen_no_stable_chks
124                           assign mubi = mubi_sync;
125                     `ifdef INC_ASSERT
126                           mubi4_t mubi_in_sva_q;
127                           always_ff @(posedge clk_i) begin
128                             mubi_in_sva_q <= mubi_i;
129                           end
130                           `ASSERT(OutputDelay_A,
131                                   rst_ni |-> ##3 (mubi_o == {NumCopies{$past(mubi_in_sva_q, 2)}} ||
132                                                   $past(mubi_in_sva_q, 2) != $past(mubi_in_sva_q, 1)))
133                     `endif
134                         end
135                       end else begin : gen_no_flops
136                     
137                         //VCS coverage off
138                         // pragma coverage off
139                     
140                         // This unused companion logic helps remove lint errors
141                         // for modules where clock and reset are used for assertions only
142                         // This logic will be removed for synthesis since it is unloaded.
143                         mubi4_t unused_logic;
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145                           if (!rst_ni) begin
146                              unused_logic <= MuBi4False;
147                           end else begin
148                              unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155                         assign mubi = MuBi4Width'(mubi_i);
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Cond Coverage for Instance : tb.dut.u_clk_main_otbn_trans.u_idle_sync
 | Total | Covered | Percent | 
| Conditions | 8 | 8 | 100.00 | 
| Logical | 8 | 8 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[0].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[0] : gen_flops.gen_stable_chks.mubi_q[0])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[1] : gen_flops.gen_stable_chks.mubi_q[1])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[2] : gen_flops.gen_stable_chks.mubi_q[2])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
 LINE       96
 EXPRESSION (((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? gen_flops.gen_stable_chks.reset_value[3] : gen_flops.gen_stable_chks.mubi_q[3])
             --------------------------------1--------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T5,T6 | 
| 1 | Covered | T4,T5,T6 | 
Branch Coverage for Instance : tb.dut.u_clk_main_otbn_trans.u_idle_sync
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
96 | 
2 | 
2 | 
100.00 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        -1-  
                                                        ==>  
                                                        ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[1].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[2].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
96                 assign mubi[k] = (|sig_unstable_buf) ? reset_value[k] : mubi_q[k];
                                                        
           Warning: the following expressions can not be annotated
           -1- ((|gen_flops.gen_stable_chks.gen_bufs_muxes[3].sig_unstable_buf)) ? ...;  
           
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T5,T6 | 
| 0 | 
Covered | 
T4,T5,T6 | 
Assert Coverage for Instance : tb.dut.u_clk_main_otbn_trans.u_idle_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85929277 | 
0 | 
2355 | 
| T4 | 
5500 | 
5299 | 
0 | 
3 | 
| T5 | 
7064 | 
6878 | 
0 | 
3 | 
| T6 | 
8027 | 
7855 | 
0 | 
3 | 
| T28 | 
1332 | 
1175 | 
0 | 
3 | 
| T29 | 
4210 | 
4038 | 
0 | 
3 | 
| T30 | 
4989 | 
4746 | 
0 | 
3 | 
| T31 | 
2924 | 
2795 | 
0 | 
3 | 
| T32 | 
3492 | 
3263 | 
0 | 
3 | 
| T33 | 
6262 | 
6076 | 
0 | 
3 | 
| T34 | 
2582 | 
2482 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
21201 | 
0 | 
0 | 
| T4 | 
5500 | 
13 | 
0 | 
0 | 
| T5 | 
7064 | 
3 | 
0 | 
0 | 
| T6 | 
8027 | 
23 | 
0 | 
0 | 
| T28 | 
1332 | 
1 | 
0 | 
0 | 
| T29 | 
4210 | 
13 | 
0 | 
0 | 
| T30 | 
4989 | 
22 | 
0 | 
0 | 
| T31 | 
2924 | 
19 | 
0 | 
0 | 
| T32 | 
3492 | 
5 | 
0 | 
0 | 
| T33 | 
6262 | 
21 | 
0 | 
0 | 
| T34 | 
2582 | 
15 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_otbn_trans.u_scanmode_sync
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| ALWAYS | 145 | 0 | 0 |  | 
| CONT_ASSIGN | 155 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 168 | 1 | 1 | 100.00 | 
144                         always_ff @(posedge clk_i or negedge rst_ni) begin
145        unreachable        if (!rst_ni) begin
146        unreachable           unused_logic <= MuBi4False;
147                           end else begin
148        unreachable           unused_logic <= mubi_i;
149                           end
150                         end
151                     
152                         //VCS coverage on
153                         // pragma coverage on
154                     
155        1/1              assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
156                     
157                         `ASSERT(OutputDelay_A, mubi_o == {NumCopies{mubi_i}})
158                       end
159                     
160                       for (genvar j = 0; j < NumCopies; j++) begin : gen_buffs
161                         logic [MuBi4Width-1:0] mubi_out;
162                         for (genvar k = 0; k < MuBi4Width; k++) begin : gen_bits
163                           prim_buf u_prim_buf (
164                             .in_i(mubi[k]),
165                             .out_o(mubi_out[k])
166                           );
167                         end
168        1/1              assign mubi_o[j] = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_main_otbn_trans.u_scanmode_sync
Assertion Details
NumCopiesMustBeGreaterZero_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
785 | 
785 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T28 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T30 | 
1 | 
1 | 
0 | 
0 | 
| T31 | 
1 | 
1 | 
0 | 
0 | 
| T32 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T34 | 
1 | 
1 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 |