Line Coverage for Module : 
otp_ctrl_ecc_reg ( parameter Width=64,Depth=9,Aw=4,EccWidth=8 + Width=64,Depth=2,Aw=1,EccWidth=8 + Width=64,Depth=5,Aw=3,EccWidth=8 + Width=64,Depth=11,Aw=4,EccWidth=8 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 60 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
59                          always_comb begin : p_write
60         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
61         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
62         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
63                      
64         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
65         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
66         1/1                  rdata_o = data_q[addr_i];
           Tests:       T1 T2 T3 
67         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
68         1/1                    {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
           Tests:       T1 T2 T3 
69                              end
                        MISSING_ELSE
70                            end
                        MISSING_ELSE
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Line Coverage for Module : 
otp_ctrl_ecc_reg ( parameter Width=64,Depth=1,Aw=1,EccWidth=8 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 46 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
45                          always_comb begin : p_write
46         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
47         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
48         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
49                      
50         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
51         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
52         1/1                  rdata_o = data_q[0];
           Tests:       T1 T2 T3 
53         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
54         1/1                    {ecc_d[0], data_d[0]} = ecc_enc;
           Tests:       T1 T2 T3 
55                              end
                        MISSING_ELSE
56                            end
                   ==>  MISSING_ELSE
57                          end
58                        end else begin : gen_multiple_words
59                          always_comb begin : p_write
60                            data_o = data_q;
61                            data_d = data_q;
62                            ecc_d  = ecc_q;
63                      
64                            rdata_o = '0;
65                            if (32'(addr_i) < Depth) begin
66                              rdata_o = data_q[addr_i];
67                              if (wren_i) begin
68                                {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
69                              end
70                            end
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Module : 
otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
5 | 
100.00 | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
3 | 
100.00 | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Covered | 
T25 | 
Assert Coverage for Module : 
otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1055945869 | 
1046356388 | 
0 | 
0 | 
| T1 | 
69806 | 
68926 | 
0 | 
0 | 
| T2 | 
228569 | 
224257 | 
0 | 
0 | 
| T3 | 
181786 | 
178068 | 
0 | 
0 | 
| T4 | 
456940 | 
452364 | 
0 | 
0 | 
| T5 | 
274824 | 
268048 | 
0 | 
0 | 
| T6 | 
338536 | 
337766 | 
0 | 
0 | 
| T10 | 
489192 | 
488367 | 
0 | 
0 | 
| T11 | 
230186 | 
225082 | 
0 | 
0 | 
| T12 | 
453167 | 
450901 | 
0 | 
0 | 
| T13 | 
811789 | 
798039 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1055945869 | 
1046356388 | 
0 | 
0 | 
| T1 | 
69806 | 
68926 | 
0 | 
0 | 
| T2 | 
228569 | 
224257 | 
0 | 
0 | 
| T3 | 
181786 | 
178068 | 
0 | 
0 | 
| T4 | 
456940 | 
452364 | 
0 | 
0 | 
| T5 | 
274824 | 
268048 | 
0 | 
0 | 
| T6 | 
338536 | 
337766 | 
0 | 
0 | 
| T10 | 
489192 | 
488367 | 
0 | 
0 | 
| T11 | 
230186 | 
225082 | 
0 | 
0 | 
| T12 | 
453167 | 
450901 | 
0 | 
0 | 
| T13 | 
811789 | 
798039 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1055945869 | 
1046356388 | 
0 | 
0 | 
| T1 | 
69806 | 
68926 | 
0 | 
0 | 
| T2 | 
228569 | 
224257 | 
0 | 
0 | 
| T3 | 
181786 | 
178068 | 
0 | 
0 | 
| T4 | 
456940 | 
452364 | 
0 | 
0 | 
| T5 | 
274824 | 
268048 | 
0 | 
0 | 
| T6 | 
338536 | 
337766 | 
0 | 
0 | 
| T10 | 
489192 | 
488367 | 
0 | 
0 | 
| T11 | 
230186 | 
225082 | 
0 | 
0 | 
| T12 | 
453167 | 
450901 | 
0 | 
0 | 
| T13 | 
811789 | 
798039 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1055945869 | 
1046356388 | 
0 | 
0 | 
| T1 | 
69806 | 
68926 | 
0 | 
0 | 
| T2 | 
228569 | 
224257 | 
0 | 
0 | 
| T3 | 
181786 | 
178068 | 
0 | 
0 | 
| T4 | 
456940 | 
452364 | 
0 | 
0 | 
| T5 | 
274824 | 
268048 | 
0 | 
0 | 
| T6 | 
338536 | 
337766 | 
0 | 
0 | 
| T10 | 
489192 | 
488367 | 
0 | 
0 | 
| T11 | 
230186 | 
225082 | 
0 | 
0 | 
| T12 | 
453167 | 
450901 | 
0 | 
0 | 
| T13 | 
811789 | 
798039 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1055945869 | 
1046356388 | 
0 | 
0 | 
| T1 | 
69806 | 
68926 | 
0 | 
0 | 
| T2 | 
228569 | 
224257 | 
0 | 
0 | 
| T3 | 
181786 | 
178068 | 
0 | 
0 | 
| T4 | 
456940 | 
452364 | 
0 | 
0 | 
| T5 | 
274824 | 
268048 | 
0 | 
0 | 
| T6 | 
338536 | 
337766 | 
0 | 
0 | 
| T10 | 
489192 | 
488367 | 
0 | 
0 | 
| T11 | 
230186 | 
225082 | 
0 | 
0 | 
| T12 | 
453167 | 
450901 | 
0 | 
0 | 
| T13 | 
811789 | 
798039 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12320 | 
12320 | 
0 | 
0 | 
| T1 | 
11 | 
11 | 
0 | 
0 | 
| T2 | 
11 | 
11 | 
0 | 
0 | 
| T3 | 
11 | 
11 | 
0 | 
0 | 
| T4 | 
11 | 
11 | 
0 | 
0 | 
| T5 | 
11 | 
11 | 
0 | 
0 | 
| T6 | 
11 | 
11 | 
0 | 
0 | 
| T10 | 
11 | 
11 | 
0 | 
0 | 
| T11 | 
11 | 
11 | 
0 | 
0 | 
| T12 | 
11 | 
11 | 
0 | 
0 | 
| T13 | 
11 | 
11 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 46 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
45                          always_comb begin : p_write
46         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
47         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
48         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
49                      
50         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
51         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
52         1/1                  rdata_o = data_q[0];
           Tests:       T1 T2 T3 
53         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
54         1/1                    {ecc_d[0], data_d[0]} = ecc_enc;
           Tests:       T1 T2 T3 
55                              end
                        MISSING_ELSE
56                            end
                   ==>  MISSING_ELSE
57                          end
58                        end else begin : gen_multiple_words
59                          always_comb begin : p_write
60                            data_o = data_q;
61                            data_d = data_q;
62                            ecc_d  = ecc_q;
63                      
64                            rdata_o = '0;
65                            if (32'(addr_i) < Depth) begin
66                              rdata_o = data_q[addr_i];
67                              if (wren_i) begin
68                                {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
69                              end
70                            end
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
4 | 
80.00  | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
2 | 
66.67  | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Not Covered | 
 | 
Assert Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 46 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
45                          always_comb begin : p_write
46         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
47         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
48         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
49                      
50         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
51         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
52         1/1                  rdata_o = data_q[0];
           Tests:       T1 T2 T3 
53         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
54         1/1                    {ecc_d[0], data_d[0]} = ecc_enc;
           Tests:       T1 T2 T3 
55                              end
                        MISSING_ELSE
56                            end
                   ==>  MISSING_ELSE
57                          end
58                        end else begin : gen_multiple_words
59                          always_comb begin : p_write
60                            data_o = data_q;
61                            data_d = data_q;
62                            ecc_d  = ecc_q;
63                      
64                            rdata_o = '0;
65                            if (32'(addr_i) < Depth) begin
66                              rdata_o = data_q[addr_i];
67                              if (wren_i) begin
68                                {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
69                              end
70                            end
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
4 | 
80.00  | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
2 | 
66.67  | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Not Covered | 
 | 
Assert Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 46 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
45                          always_comb begin : p_write
46         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
47         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
48         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
49                      
50         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
51         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
52         1/1                  rdata_o = data_q[0];
           Tests:       T1 T2 T3 
53         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
54         1/1                    {ecc_d[0], data_d[0]} = ecc_enc;
           Tests:       T1 T2 T3 
55                              end
                        MISSING_ELSE
56                            end
                   ==>  MISSING_ELSE
57                          end
58                        end else begin : gen_multiple_words
59                          always_comb begin : p_write
60                            data_o = data_q;
61                            data_d = data_q;
62                            ecc_d  = ecc_q;
63                      
64                            rdata_o = '0;
65                            if (32'(addr_i) < Depth) begin
66                              rdata_o = data_q[addr_i];
67                              if (wren_i) begin
68                                {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
69                              end
70                            end
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
4 | 
80.00  | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
2 | 
66.67  | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Not Covered | 
 | 
Assert Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 46 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
45                          always_comb begin : p_write
46         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
47         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
48         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
49                      
50         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
51         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
52         1/1                  rdata_o = data_q[0];
           Tests:       T1 T2 T3 
53         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
54         1/1                    {ecc_d[0], data_d[0]} = ecc_enc;
           Tests:       T1 T2 T3 
55                              end
                        MISSING_ELSE
56                            end
                   ==>  MISSING_ELSE
57                          end
58                        end else begin : gen_multiple_words
59                          always_comb begin : p_write
60                            data_o = data_q;
61                            data_d = data_q;
62                            ecc_d  = ecc_q;
63                      
64                            rdata_o = '0;
65                            if (32'(addr_i) < Depth) begin
66                              rdata_o = data_q[addr_i];
67                              if (wren_i) begin
68                                {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
69                              end
70                            end
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
4 | 
80.00  | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
2 | 
66.67  | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Not Covered | 
 | 
Assert Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 46 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
45                          always_comb begin : p_write
46         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
47         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
48         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
49                      
50         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
51         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
52         1/1                  rdata_o = data_q[0];
           Tests:       T1 T2 T3 
53         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
54         1/1                    {ecc_d[0], data_d[0]} = ecc_enc;
           Tests:       T1 T2 T3 
55                              end
                        MISSING_ELSE
56                            end
                   ==>  MISSING_ELSE
57                          end
58                        end else begin : gen_multiple_words
59                          always_comb begin : p_write
60                            data_o = data_q;
61                            data_d = data_q;
62                            ecc_d  = ecc_q;
63                      
64                            rdata_o = '0;
65                            if (32'(addr_i) < Depth) begin
66                              rdata_o = data_q[addr_i];
67                              if (wren_i) begin
68                                {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
69                              end
70                            end
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
4 | 
80.00  | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
2 | 
66.67  | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Not Covered | 
 | 
Assert Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.gen_ecc_reg.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 60 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
59                          always_comb begin : p_write
60         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
61         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
62         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
63                      
64         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
65         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
66         1/1                  rdata_o = data_q[addr_i];
           Tests:       T1 T2 T3 
67         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
68         1/1                    {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
           Tests:       T1 T2 T3 
69                              end
                        MISSING_ELSE
70                            end
                        MISSING_ELSE
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
5 | 
100.00 | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
3 | 
100.00 | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Covered | 
T25 | 
Assert Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 60 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
59                          always_comb begin : p_write
60         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
61         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
62         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
63                      
64         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
65         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
66         1/1                  rdata_o = data_q[addr_i];
           Tests:       T1 T2 T3 
67         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
68         1/1                    {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
           Tests:       T1 T2 T3 
69                              end
                        MISSING_ELSE
70                            end
                   ==>  MISSING_ELSE
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
4 | 
4 | 
100.00 | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
2 | 
2 | 
100.00 | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==> (Excluded)
Exclude Annotation: VC_COV_UNR
Branches:
| -1- | -2- | Status | Tests | Exclude Annotation | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
 | 
| 0 | 
- | 
Excluded | 
 | 
VC_COV_UNR | 
Assert Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 60 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
59                          always_comb begin : p_write
60         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
61         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
62         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
63                      
64         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
65         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
66         1/1                  rdata_o = data_q[addr_i];
           Tests:       T1 T2 T3 
67         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
68         1/1                    {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
           Tests:       T1 T2 T3 
69                              end
                        MISSING_ELSE
70                            end
                        MISSING_ELSE
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
5 | 
100.00 | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
3 | 
100.00 | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Covered | 
T25 | 
Assert Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 60 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
59                          always_comb begin : p_write
60         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
61         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
62         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
63                      
64         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
65         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
66         1/1                  rdata_o = data_q[addr_i];
           Tests:       T1 T2 T3 
67         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
68         1/1                    {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
           Tests:       T1 T2 T3 
69                              end
                        MISSING_ELSE
70                            end
                        MISSING_ELSE
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
5 | 
100.00 | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
3 | 
100.00 | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Covered | 
T25 | 
Assert Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 60 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
59                          always_comb begin : p_write
60         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
61         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
62         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
63                      
64         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
65         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
66         1/1                  rdata_o = data_q[addr_i];
           Tests:       T1 T2 T3 
67         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
68         1/1                    {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
           Tests:       T1 T2 T3 
69                              end
                        MISSING_ELSE
70                            end
                        MISSING_ELSE
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
5 | 
100.00 | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
3 | 
100.00 | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Covered | 
T25 | 
Assert Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 14 | 14 | 100.00 | 
| ALWAYS | 60 | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 87 | 1 | 1 | 100.00 | 
| ALWAYS | 90 | 5 | 5 | 100.00 | 
59                          always_comb begin : p_write
60         1/1                data_o = data_q;
           Tests:       T1 T2 T3 
61         1/1                data_d = data_q;
           Tests:       T1 T2 T3 
62         1/1                ecc_d  = ecc_q;
           Tests:       T1 T2 T3 
63                      
64         1/1                rdata_o = '0;
           Tests:       T1 T2 T3 
65         1/1                if (32'(addr_i) < Depth) begin
           Tests:       T1 T2 T3 
66         1/1                  rdata_o = data_q[addr_i];
           Tests:       T1 T2 T3 
67         1/1                  if (wren_i) begin
           Tests:       T1 T2 T3 
68         1/1                    {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
           Tests:       T1 T2 T3 
69                              end
                        MISSING_ELSE
70                            end
                        MISSING_ELSE
71                          end
72                        end
73                      
74                        // Concurrent ECC checks.
75                        logic [Depth-1:0][1:0] err;
76                        for (genvar k = 0; k < Depth; k++) begin : gen_ecc_dec
77                          prim_secded_inv_72_64_dec u_prim_secded_inv_72_64_dec (
78                            .data_i({ecc_q[k], data_q[k]}),
79                            // We only rely on the error detection mechanism,
80                            // and not on error correction.
81                            .data_o(),
82                            .syndrome_o(),
83                            .err_o(err[k])
84                          );
85                        end
86                      
87         1/1            assign ecc_err_o = |err;
           Tests:       T1 T2 T3 
88                      
89                        always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs
90         1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
91         1/1                ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
           Tests:       T1 T2 T3 
92         1/1                data_q <= '0;
           Tests:       T1 T2 T3 
93                          end else begin
94         1/1                ecc_q  <= ecc_d;
           Tests:       T1 T2 T3 
95         1/1                data_q <= data_d;
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_otp_ctrl_ecc_reg
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
5 | 
5 | 
100.00 | 
| IF | 
90 | 
2 | 
2 | 
100.00 | 
| IF | 
65 | 
3 | 
3 | 
100.00 | 
90             if (!rst_ni) begin
               -1-  
91               ecc_q  <= {Depth{prim_secded_pkg::SecdedInv7264ZeroEcc}};
                 ==>
92               data_q <= '0;
93             end else begin
94               ecc_q  <= ecc_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
65               if (32'(addr_i) < Depth) begin
                 -1-  
66                 rdata_o = data_q[addr_i];
67                 if (wren_i) begin
                   -2-  
68                   {ecc_d[addr_i], data_d[addr_i]} = ecc_enc;
                     ==>
69                 end
                   MISSING_ELSE
                   ==>
70               end
                 MISSING_ELSE
                 ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
1 | 
Covered | 
T1,T2,T3 | 
| 1 | 
0 | 
Covered | 
T1,T2,T3 | 
| 0 | 
- | 
Covered | 
T25 | 
Assert Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_otp_ctrl_ecc_reg
Assertion Details
DataKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
DataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccErrKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
EccKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
RDataOutKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
95995079 | 
95123308 | 
0 | 
0 | 
| T1 | 
6346 | 
6266 | 
0 | 
0 | 
| T2 | 
20779 | 
20387 | 
0 | 
0 | 
| T3 | 
16526 | 
16188 | 
0 | 
0 | 
| T4 | 
41540 | 
41124 | 
0 | 
0 | 
| T5 | 
24984 | 
24368 | 
0 | 
0 | 
| T6 | 
30776 | 
30706 | 
0 | 
0 | 
| T10 | 
44472 | 
44397 | 
0 | 
0 | 
| T11 | 
20926 | 
20462 | 
0 | 
0 | 
| T12 | 
41197 | 
40991 | 
0 | 
0 | 
| T13 | 
73799 | 
72549 | 
0 | 
0 | 
WidthMustBe64bit_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1120 | 
1120 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T11 | 
1 | 
1 | 
0 | 
0 | 
| T12 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 |