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 | 
22540 | 
22540 | 
0 | 
0 | 
| T1 | 
28 | 
28 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1514679025 | 
1429307493 | 
0 | 
0 | 
| T1 | 
1602107 | 
1599601 | 
0 | 
0 | 
| T4 | 
62292 | 
59623 | 
0 | 
0 | 
| T5 | 
171174 | 
167763 | 
0 | 
0 | 
| T6 | 
215126 | 
213368 | 
0 | 
0 | 
| T28 | 
68210 | 
67137 | 
0 | 
0 | 
| T29 | 
77628 | 
74280 | 
0 | 
0 | 
| T30 | 
73337 | 
69703 | 
0 | 
0 | 
| T31 | 
67095 | 
65091 | 
0 | 
0 | 
| T32 | 
79353 | 
76056 | 
0 | 
0 | 
| T33 | 
66864 | 
65336 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
231337476 | 
215205876 | 
0 | 
14490 | 
| T1 | 
167820 | 
167532 | 
0 | 
18 | 
| T4 | 
14316 | 
13626 | 
0 | 
18 | 
| T5 | 
14766 | 
14412 | 
0 | 
18 | 
| T6 | 
5028 | 
4962 | 
0 | 
18 | 
| T28 | 
6984 | 
6852 | 
0 | 
18 | 
| T29 | 
12186 | 
11580 | 
0 | 
18 | 
| T30 | 
11202 | 
10572 | 
0 | 
18 | 
| T31 | 
15396 | 
14880 | 
0 | 
18 | 
| T32 | 
17892 | 
17070 | 
0 | 
18 | 
| T33 | 
6408 | 
6222 | 
0 | 
18 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
477217414 | 
448482629 | 
0 | 
16905 | 
| T1 | 
551366 | 
550348 | 
0 | 
21 | 
| T4 | 
16606 | 
15806 | 
0 | 
21 | 
| T5 | 
60423 | 
59026 | 
0 | 
21 | 
| T6 | 
84929 | 
84054 | 
0 | 
21 | 
| T28 | 
23536 | 
23065 | 
0 | 
21 | 
| T29 | 
24219 | 
23020 | 
0 | 
21 | 
| T30 | 
23019 | 
21743 | 
0 | 
21 | 
| T31 | 
17860 | 
17261 | 
0 | 
21 | 
| T32 | 
21374 | 
20391 | 
0 | 
21 | 
| T33 | 
23335 | 
22703 | 
0 | 
21 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
477217414 | 
125371 | 
0 | 
0 | 
| T1 | 
551366 | 
4 | 
0 | 
0 | 
| T4 | 
9544 | 
16 | 
0 | 
0 | 
| T5 | 
60423 | 
209 | 
0 | 
0 | 
| T6 | 
84929 | 
54 | 
0 | 
0 | 
| T28 | 
23536 | 
56 | 
0 | 
0 | 
| T29 | 
24219 | 
88 | 
0 | 
0 | 
| T30 | 
23019 | 
176 | 
0 | 
0 | 
| T31 | 
17860 | 
172 | 
0 | 
0 | 
| T32 | 
21374 | 
205 | 
0 | 
0 | 
| T33 | 
23335 | 
40 | 
0 | 
0 | 
| T51 | 
13593 | 
184 | 
0 | 
0 | 
| T52 | 
0 | 
24 | 
0 | 
0 | 
| T69 | 
0 | 
47 | 
0 | 
0 | 
| T70 | 
0 | 
35 | 
0 | 
0 | 
| T72 | 
0 | 
69 | 
0 | 
0 | 
| T73 | 
0 | 
162 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
806124135 | 
765527626 | 
0 | 
0 | 
| T1 | 
882921 | 
881682 | 
0 | 
0 | 
| T4 | 
31370 | 
30152 | 
0 | 
0 | 
| T5 | 
95985 | 
94286 | 
0 | 
0 | 
| T6 | 
125169 | 
124313 | 
0 | 
0 | 
| T28 | 
37690 | 
37181 | 
0 | 
0 | 
| T29 | 
41223 | 
39641 | 
0 | 
0 | 
| T30 | 
39116 | 
37349 | 
0 | 
0 | 
| T31 | 
33839 | 
32911 | 
0 | 
0 | 
| T32 | 
40087 | 
38556 | 
0 | 
0 | 
| T33 | 
37121 | 
36372 | 
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:       T5 T30 T31  | T5 T30 T31  | T5 T30 T31  | T5 T30 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:       T5 T30 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 | T5,T30,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 | T5,T30,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 | T5,T30,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 | T5,T30,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 | 
T5,T30,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 | 
T5,T30,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 | 
T5,T30,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 | 
T5,T30,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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
73311726 | 
68872623 | 
0 | 
0 | 
| T1 | 
95886 | 
95711 | 
0 | 
0 | 
| T4 | 
2290 | 
2183 | 
0 | 
0 | 
| T5 | 
10741 | 
10497 | 
0 | 
0 | 
| T6 | 
16113 | 
15951 | 
0 | 
0 | 
| T28 | 
4248 | 
4168 | 
0 | 
0 | 
| T29 | 
3901 | 
3711 | 
0 | 
0 | 
| T30 | 
3733 | 
3530 | 
0 | 
0 | 
| T31 | 
2464 | 
2384 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
4103 | 
3996 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
73311726 | 
68865741 | 
0 | 
2415 | 
| T1 | 
95886 | 
95708 | 
0 | 
3 | 
| T4 | 
2290 | 
2180 | 
0 | 
3 | 
| T5 | 
10741 | 
10494 | 
0 | 
3 | 
| T6 | 
16113 | 
15948 | 
0 | 
3 | 
| T28 | 
4248 | 
4165 | 
0 | 
3 | 
| T29 | 
3901 | 
3708 | 
0 | 
3 | 
| T30 | 
3733 | 
3527 | 
0 | 
3 | 
| T31 | 
2464 | 
2381 | 
0 | 
3 | 
| T32 | 
2982 | 
2845 | 
0 | 
3 | 
| T33 | 
4103 | 
3993 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
73311726 | 
18493 | 
0 | 
0 | 
| T1 | 
95886 | 
0 | 
0 | 
0 | 
| T5 | 
10741 | 
63 | 
0 | 
0 | 
| T6 | 
16113 | 
0 | 
0 | 
0 | 
| T28 | 
4248 | 
0 | 
0 | 
0 | 
| T29 | 
3901 | 
0 | 
0 | 
0 | 
| T30 | 
3733 | 
48 | 
0 | 
0 | 
| T31 | 
2464 | 
43 | 
0 | 
0 | 
| T32 | 
2982 | 
0 | 
0 | 
0 | 
| T33 | 
4103 | 
17 | 
0 | 
0 | 
| T51 | 
8939 | 
58 | 
0 | 
0 | 
| T52 | 
0 | 
10 | 
0 | 
0 | 
| T69 | 
0 | 
21 | 
0 | 
0 | 
| T70 | 
0 | 
11 | 
0 | 
0 | 
| T72 | 
0 | 
34 | 
0 | 
0 | 
| T73 | 
0 | 
95 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
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:       T5 T30 T31  | T5 T30 T31  | T5 T30 T31  | T5 T30 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:       T5 T30 T31 
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 | T5,T30,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 | T5,T30,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 | T5,T30,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 | T5,T30,T31 | 
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 | 
T5,T30,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 | 
T5,T30,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 | 
T5,T30,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 | 
T5,T30,T31 | 
| 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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35867646 | 
0 | 
2415 | 
| T1 | 
27970 | 
27922 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
2461 | 
2402 | 
0 | 
3 | 
| T6 | 
838 | 
827 | 
0 | 
3 | 
| T28 | 
1164 | 
1142 | 
0 | 
3 | 
| T29 | 
2031 | 
1930 | 
0 | 
3 | 
| T30 | 
1867 | 
1762 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
2982 | 
2845 | 
0 | 
3 | 
| T33 | 
1068 | 
1037 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
11225 | 
0 | 
0 | 
| T1 | 
27970 | 
0 | 
0 | 
0 | 
| T5 | 
2461 | 
40 | 
0 | 
0 | 
| T6 | 
838 | 
0 | 
0 | 
0 | 
| T28 | 
1164 | 
0 | 
0 | 
0 | 
| T29 | 
2031 | 
0 | 
0 | 
0 | 
| T30 | 
1867 | 
32 | 
0 | 
0 | 
| T31 | 
2566 | 
7 | 
0 | 
0 | 
| T32 | 
2982 | 
0 | 
0 | 
0 | 
| T33 | 
1068 | 
6 | 
0 | 
0 | 
| T51 | 
2327 | 
69 | 
0 | 
0 | 
| T52 | 
0 | 
3 | 
0 | 
0 | 
| T69 | 
0 | 
17 | 
0 | 
0 | 
| T70 | 
0 | 
12 | 
0 | 
0 | 
| T72 | 
0 | 
2 | 
0 | 
0 | 
| T73 | 
0 | 
36 | 
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:       T5 T30 T31  | T5 T30 T31  | T5 T30 T31  | T5 T30 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:       T5 T30 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 | T5,T30,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 | T5,T30,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 | T5,T30,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 | T5,T30,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 | 
T5,T30,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 | 
T5,T30,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 | 
T5,T30,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 | 
T5,T30,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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35867646 | 
0 | 
2415 | 
| T1 | 
27970 | 
27922 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
2461 | 
2402 | 
0 | 
3 | 
| T6 | 
838 | 
827 | 
0 | 
3 | 
| T28 | 
1164 | 
1142 | 
0 | 
3 | 
| T29 | 
2031 | 
1930 | 
0 | 
3 | 
| T30 | 
1867 | 
1762 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
2982 | 
2845 | 
0 | 
3 | 
| T33 | 
1068 | 
1037 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
12761 | 
0 | 
0 | 
| T1 | 
27970 | 
0 | 
0 | 
0 | 
| T5 | 
2461 | 
44 | 
0 | 
0 | 
| T6 | 
838 | 
0 | 
0 | 
0 | 
| T28 | 
1164 | 
0 | 
0 | 
0 | 
| T29 | 
2031 | 
0 | 
0 | 
0 | 
| T30 | 
1867 | 
20 | 
0 | 
0 | 
| T31 | 
2566 | 
42 | 
0 | 
0 | 
| T32 | 
2982 | 
0 | 
0 | 
0 | 
| T33 | 
1068 | 
5 | 
0 | 
0 | 
| T51 | 
2327 | 
57 | 
0 | 
0 | 
| T52 | 
0 | 
11 | 
0 | 
0 | 
| T69 | 
0 | 
9 | 
0 | 
0 | 
| T70 | 
0 | 
12 | 
0 | 
0 | 
| T72 | 
0 | 
33 | 
0 | 
0 | 
| T73 | 
0 | 
31 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
79375951 | 
0 | 
0 | 
| T1 | 
99885 | 
99788 | 
0 | 
0 | 
| T4 | 
2386 | 
2345 | 
0 | 
0 | 
| T5 | 
11190 | 
11049 | 
0 | 
0 | 
| T6 | 
16785 | 
16731 | 
0 | 
0 | 
| T28 | 
4240 | 
4214 | 
0 | 
0 | 
| T29 | 
4064 | 
3981 | 
0 | 
0 | 
| T30 | 
3888 | 
3762 | 
0 | 
0 | 
| T31 | 
2566 | 
2526 | 
0 | 
0 | 
| T32 | 
3107 | 
3039 | 
0 | 
0 | 
| T33 | 
4274 | 
4219 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
79375951 | 
0 | 
0 | 
| T1 | 
99885 | 
99788 | 
0 | 
0 | 
| T4 | 
2386 | 
2345 | 
0 | 
0 | 
| T5 | 
11190 | 
11049 | 
0 | 
0 | 
| T6 | 
16785 | 
16731 | 
0 | 
0 | 
| T28 | 
4240 | 
4214 | 
0 | 
0 | 
| T29 | 
4064 | 
3981 | 
0 | 
0 | 
| T30 | 
3888 | 
3762 | 
0 | 
0 | 
| T31 | 
2566 | 
2526 | 
0 | 
0 | 
| T32 | 
3107 | 
3039 | 
0 | 
0 | 
| T33 | 
4274 | 
4219 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
73311726 | 
71124907 | 
0 | 
0 | 
| T1 | 
95886 | 
95793 | 
0 | 
0 | 
| T4 | 
2290 | 
2252 | 
0 | 
0 | 
| T5 | 
10741 | 
10606 | 
0 | 
0 | 
| T6 | 
16113 | 
16061 | 
0 | 
0 | 
| T28 | 
4248 | 
4223 | 
0 | 
0 | 
| T29 | 
3901 | 
3821 | 
0 | 
0 | 
| T30 | 
3733 | 
3612 | 
0 | 
0 | 
| T31 | 
2464 | 
2425 | 
0 | 
0 | 
| T32 | 
2982 | 
2916 | 
0 | 
0 | 
| T33 | 
4103 | 
4051 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
73311726 | 
71124907 | 
0 | 
0 | 
| T1 | 
95886 | 
95793 | 
0 | 
0 | 
| T4 | 
2290 | 
2252 | 
0 | 
0 | 
| T5 | 
10741 | 
10606 | 
0 | 
0 | 
| T6 | 
16113 | 
16061 | 
0 | 
0 | 
| T28 | 
4248 | 
4223 | 
0 | 
0 | 
| T29 | 
3901 | 
3821 | 
0 | 
0 | 
| T30 | 
3733 | 
3612 | 
0 | 
0 | 
| T31 | 
2464 | 
2425 | 
0 | 
0 | 
| T32 | 
2982 | 
2916 | 
0 | 
0 | 
| T33 | 
4103 | 
4051 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
35897717 | 
35897717 | 
0 | 
0 | 
| T1 | 
47897 | 
47897 | 
0 | 
0 | 
| T4 | 
1126 | 
1126 | 
0 | 
0 | 
| T5 | 
6106 | 
6106 | 
0 | 
0 | 
| T6 | 
8031 | 
8031 | 
0 | 
0 | 
| T28 | 
2112 | 
2112 | 
0 | 
0 | 
| T29 | 
1911 | 
1911 | 
0 | 
0 | 
| T30 | 
1916 | 
1916 | 
0 | 
0 | 
| T31 | 
1280 | 
1280 | 
0 | 
0 | 
| T32 | 
1458 | 
1458 | 
0 | 
0 | 
| T33 | 
2126 | 
2126 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
35897717 | 
35897717 | 
0 | 
0 | 
| T1 | 
47897 | 
47897 | 
0 | 
0 | 
| T4 | 
1126 | 
1126 | 
0 | 
0 | 
| T5 | 
6106 | 
6106 | 
0 | 
0 | 
| T6 | 
8031 | 
8031 | 
0 | 
0 | 
| T28 | 
2112 | 
2112 | 
0 | 
0 | 
| T29 | 
1911 | 
1911 | 
0 | 
0 | 
| T30 | 
1916 | 
1916 | 
0 | 
0 | 
| T31 | 
1280 | 
1280 | 
0 | 
0 | 
| T32 | 
1458 | 
1458 | 
0 | 
0 | 
| T33 | 
2126 | 
2126 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
17948391 | 
17948391 | 
0 | 
0 | 
| T1 | 
23948 | 
23948 | 
0 | 
0 | 
| T4 | 
563 | 
563 | 
0 | 
0 | 
| T5 | 
3052 | 
3052 | 
0 | 
0 | 
| T6 | 
4015 | 
4015 | 
0 | 
0 | 
| T28 | 
1056 | 
1056 | 
0 | 
0 | 
| T29 | 
955 | 
955 | 
0 | 
0 | 
| T30 | 
958 | 
958 | 
0 | 
0 | 
| T31 | 
638 | 
638 | 
0 | 
0 | 
| T32 | 
729 | 
729 | 
0 | 
0 | 
| T33 | 
1062 | 
1062 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
17948391 | 
17948391 | 
0 | 
0 | 
| T1 | 
23948 | 
23948 | 
0 | 
0 | 
| T4 | 
563 | 
563 | 
0 | 
0 | 
| T5 | 
3052 | 
3052 | 
0 | 
0 | 
| T6 | 
4015 | 
4015 | 
0 | 
0 | 
| T28 | 
1056 | 
1056 | 
0 | 
0 | 
| T29 | 
955 | 
955 | 
0 | 
0 | 
| T30 | 
958 | 
958 | 
0 | 
0 | 
| T31 | 
638 | 
638 | 
0 | 
0 | 
| T32 | 
729 | 
729 | 
0 | 
0 | 
| T33 | 
1062 | 
1062 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
39137330 | 
38022878 | 
0 | 
0 | 
| T1 | 
47945 | 
47898 | 
0 | 
0 | 
| T4 | 
1145 | 
1126 | 
0 | 
0 | 
| T5 | 
5370 | 
5303 | 
0 | 
0 | 
| T6 | 
8057 | 
8031 | 
0 | 
0 | 
| T28 | 
2090 | 
2078 | 
0 | 
0 | 
| T29 | 
1950 | 
1911 | 
0 | 
0 | 
| T30 | 
1867 | 
1807 | 
0 | 
0 | 
| T31 | 
1231 | 
1212 | 
0 | 
0 | 
| T32 | 
1491 | 
1458 | 
0 | 
0 | 
| T33 | 
2052 | 
2026 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
39137330 | 
38022878 | 
0 | 
0 | 
| T1 | 
47945 | 
47898 | 
0 | 
0 | 
| T4 | 
1145 | 
1126 | 
0 | 
0 | 
| T5 | 
5370 | 
5303 | 
0 | 
0 | 
| T6 | 
8057 | 
8031 | 
0 | 
0 | 
| T28 | 
2090 | 
2078 | 
0 | 
0 | 
| T29 | 
1950 | 
1911 | 
0 | 
0 | 
| T30 | 
1867 | 
1807 | 
0 | 
0 | 
| T31 | 
1231 | 
1212 | 
0 | 
0 | 
| T32 | 
1491 | 
1458 | 
0 | 
0 | 
| T33 | 
2052 | 
2026 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35867646 | 
0 | 
2415 | 
| T1 | 
27970 | 
27922 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
2461 | 
2402 | 
0 | 
3 | 
| T6 | 
838 | 
827 | 
0 | 
3 | 
| T28 | 
1164 | 
1142 | 
0 | 
3 | 
| T29 | 
2031 | 
1930 | 
0 | 
3 | 
| T30 | 
1867 | 
1762 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
2982 | 
2845 | 
0 | 
3 | 
| T33 | 
1068 | 
1037 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35867646 | 
0 | 
2415 | 
| T1 | 
27970 | 
27922 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
2461 | 
2402 | 
0 | 
3 | 
| T6 | 
838 | 
827 | 
0 | 
3 | 
| T28 | 
1164 | 
1142 | 
0 | 
3 | 
| T29 | 
2031 | 
1930 | 
0 | 
3 | 
| T30 | 
1867 | 
1762 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
2982 | 
2845 | 
0 | 
3 | 
| T33 | 
1068 | 
1037 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35867646 | 
0 | 
2415 | 
| T1 | 
27970 | 
27922 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
2461 | 
2402 | 
0 | 
3 | 
| T6 | 
838 | 
827 | 
0 | 
3 | 
| T28 | 
1164 | 
1142 | 
0 | 
3 | 
| T29 | 
2031 | 
1930 | 
0 | 
3 | 
| T30 | 
1867 | 
1762 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
2982 | 
2845 | 
0 | 
3 | 
| T33 | 
1068 | 
1037 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35867646 | 
0 | 
2415 | 
| T1 | 
27970 | 
27922 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
2461 | 
2402 | 
0 | 
3 | 
| T6 | 
838 | 
827 | 
0 | 
3 | 
| T28 | 
1164 | 
1142 | 
0 | 
3 | 
| T29 | 
2031 | 
1930 | 
0 | 
3 | 
| T30 | 
1867 | 
1762 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
2982 | 
2845 | 
0 | 
3 | 
| T33 | 
1068 | 
1037 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35867646 | 
0 | 
2415 | 
| T1 | 
27970 | 
27922 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
2461 | 
2402 | 
0 | 
3 | 
| T6 | 
838 | 
827 | 
0 | 
3 | 
| T28 | 
1164 | 
1142 | 
0 | 
3 | 
| T29 | 
2031 | 
1930 | 
0 | 
3 | 
| T30 | 
1867 | 
1762 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
2982 | 
2845 | 
0 | 
3 | 
| T33 | 
1068 | 
1037 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_flops.gen_no_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35867646 | 
0 | 
2415 | 
| T1 | 
27970 | 
27922 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
2461 | 
2402 | 
0 | 
3 | 
| T6 | 
838 | 
827 | 
0 | 
3 | 
| T28 | 
1164 | 
1142 | 
0 | 
3 | 
| T29 | 
2031 | 
1930 | 
0 | 
3 | 
| T30 | 
1867 | 
1762 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
2982 | 
2845 | 
0 | 
3 | 
| T33 | 
1068 | 
1037 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76970399 | 
0 | 
2415 | 
| T1 | 
99885 | 
99699 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
11190 | 
10932 | 
0 | 
3 | 
| T6 | 
16785 | 
16613 | 
0 | 
3 | 
| T28 | 
4240 | 
4154 | 
0 | 
3 | 
| T29 | 
4064 | 
3863 | 
0 | 
3 | 
| T30 | 
3888 | 
3673 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
3107 | 
2964 | 
0 | 
3 | 
| T33 | 
4274 | 
4159 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
20683 | 
0 | 
0 | 
| T1 | 
99885 | 
1 | 
0 | 
0 | 
| T4 | 
2386 | 
4 | 
0 | 
0 | 
| T5 | 
11190 | 
15 | 
0 | 
0 | 
| T6 | 
16785 | 
17 | 
0 | 
0 | 
| T28 | 
4240 | 
13 | 
0 | 
0 | 
| T29 | 
4064 | 
19 | 
0 | 
0 | 
| T30 | 
3888 | 
22 | 
0 | 
0 | 
| T31 | 
2566 | 
18 | 
0 | 
0 | 
| T32 | 
3107 | 
51 | 
0 | 
0 | 
| T33 | 
4274 | 
1 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76970399 | 
0 | 
2415 | 
| T1 | 
99885 | 
99699 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
11190 | 
10932 | 
0 | 
3 | 
| T6 | 
16785 | 
16613 | 
0 | 
3 | 
| T28 | 
4240 | 
4154 | 
0 | 
3 | 
| T29 | 
4064 | 
3863 | 
0 | 
3 | 
| T30 | 
3888 | 
3673 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
3107 | 
2964 | 
0 | 
3 | 
| T33 | 
4274 | 
4159 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
20768 | 
0 | 
0 | 
| T1 | 
99885 | 
1 | 
0 | 
0 | 
| T4 | 
2386 | 
4 | 
0 | 
0 | 
| T5 | 
11190 | 
13 | 
0 | 
0 | 
| T6 | 
16785 | 
15 | 
0 | 
0 | 
| T28 | 
4240 | 
21 | 
0 | 
0 | 
| T29 | 
4064 | 
19 | 
0 | 
0 | 
| T30 | 
3888 | 
16 | 
0 | 
0 | 
| T31 | 
2566 | 
16 | 
0 | 
0 | 
| T32 | 
3107 | 
50 | 
0 | 
0 | 
| T33 | 
4274 | 
3 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76970399 | 
0 | 
2415 | 
| T1 | 
99885 | 
99699 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
11190 | 
10932 | 
0 | 
3 | 
| T6 | 
16785 | 
16613 | 
0 | 
3 | 
| T28 | 
4240 | 
4154 | 
0 | 
3 | 
| T29 | 
4064 | 
3863 | 
0 | 
3 | 
| T30 | 
3888 | 
3673 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
3107 | 
2964 | 
0 | 
3 | 
| T33 | 
4274 | 
4159 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
20740 | 
0 | 
0 | 
| T1 | 
99885 | 
1 | 
0 | 
0 | 
| T4 | 
2386 | 
4 | 
0 | 
0 | 
| T5 | 
11190 | 
13 | 
0 | 
0 | 
| T6 | 
16785 | 
13 | 
0 | 
0 | 
| T28 | 
4240 | 
9 | 
0 | 
0 | 
| T29 | 
4064 | 
23 | 
0 | 
0 | 
| T30 | 
3888 | 
22 | 
0 | 
0 | 
| T31 | 
2566 | 
26 | 
0 | 
0 | 
| T32 | 
3107 | 
53 | 
0 | 
0 | 
| T33 | 
4274 | 
5 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
gen_flops.gen_stable_chks.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76970399 | 
0 | 
2415 | 
| T1 | 
99885 | 
99699 | 
0 | 
3 | 
| T4 | 
2386 | 
2271 | 
0 | 
3 | 
| T5 | 
11190 | 
10932 | 
0 | 
3 | 
| T6 | 
16785 | 
16613 | 
0 | 
3 | 
| T28 | 
4240 | 
4154 | 
0 | 
3 | 
| T29 | 
4064 | 
3863 | 
0 | 
3 | 
| T30 | 
3888 | 
3673 | 
0 | 
3 | 
| T31 | 
2566 | 
2480 | 
0 | 
3 | 
| T32 | 
3107 | 
2964 | 
0 | 
3 | 
| T33 | 
4274 | 
4159 | 
0 | 
3 | 
gen_flops.gen_stable_chks.OutputIfUnstable_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
20701 | 
0 | 
0 | 
| T1 | 
99885 | 
1 | 
0 | 
0 | 
| T4 | 
2386 | 
4 | 
0 | 
0 | 
| T5 | 
11190 | 
21 | 
0 | 
0 | 
| T6 | 
16785 | 
9 | 
0 | 
0 | 
| T28 | 
4240 | 
13 | 
0 | 
0 | 
| T29 | 
4064 | 
27 | 
0 | 
0 | 
| T30 | 
3888 | 
16 | 
0 | 
0 | 
| T31 | 
2566 | 
20 | 
0 | 
0 | 
| T32 | 
3107 | 
51 | 
0 | 
0 | 
| T33 | 
4274 | 
3 | 
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 | 
805 | 
805 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
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 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
gen_no_flops.OutputDelay_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 |