Line Coverage for Module : 
prim_mubi8_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Module : 
prim_mubi8_sender
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Module : 
prim_mubi8_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
2147483647 | 
2147483647 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
2147483647 | 
2147483647 | 
0 | 
0 | 
| T1 | 
309624 | 
306774 | 
0 | 
0 | 
| T2 | 
609786 | 
595764 | 
0 | 
0 | 
| T3 | 
1452417 | 
1425570 | 
0 | 
0 | 
| T4 | 
586017 | 
570798 | 
0 | 
0 | 
| T5 | 
266760 | 
263283 | 
0 | 
0 | 
| T6 | 
2280627 | 
2235654 | 
0 | 
0 | 
| T7 | 
2077422 | 
2033703 | 
0 | 
0 | 
| T11 | 
358074 | 
354540 | 
0 | 
0 | 
| T12 | 
5620029 | 
5609541 | 
0 | 
0 | 
| T13 | 
1613955 | 
1587108 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 3 | 50.00 | 
| CONT_ASSIGN | 34 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 48 | 1 | 0 | 0.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 0 | 0.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         0/1     ==>    assign mubi = MuBi8Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         0/1     ==>      assign mubi_int = mubi;
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         0/1     ==>    assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T6 T7 T12 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T6 T7 T12 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T6 T7 T12 
Branch Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T12 T94 T129 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T12 T94 T129 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T12 T94 T129 
Branch Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T6 T7 T12 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T6 T7 T12 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T6 T7 T12 
Branch Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T6 T12 T94 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T6 T12 T94 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T6 T12 T94 
Branch Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T6 T7 T12 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T6 T7 T12 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T6 T7 T12 
Branch Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 6 | 6 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 48 | 1 | 1 | 100.00 | 
| ALWAYS | 55 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi8Width'(mubi_i);
           Tests:       T1 T2 T3 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi8Width),
40                            .ResetValue(MuBi8Width'(ResetValue))
41                          ) u_prim_flop (
42                            .clk_i,
43                            .rst_ni,
44                            .d_i   ( mubi     ),
45                            .q_o   ( mubi_int )
46                          );
47                        end else begin : gen_no_flops
48         1/1              assign mubi_int = mubi;
           Tests:       T1 T2 T3 
49                      
50                          // This unused companion logic helps remove lint errors
51                          // for modules where clock and reset are used for assertions only
52                          // This logic will be removed for sythesis since it is unloaded.
53                          mubi8_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55         1/1                if (!rst_ni) begin
           Tests:       T1 T2 T3 
56         1/1                   unused_logic <= MuBi8False;
           Tests:       T1 T2 T3 
57                            end else begin
58         1/1                   unused_logic <= mubi_i;
           Tests:       T1 T2 T3 
59                            end
60                          end
61                        end
62                      
63                        // second generation block determines output buffer type
64                        // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65                        // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66                        // 3. If not EnSecBuf and AsyncOn -> feed through
67                        if (EnSecBuf) begin : gen_sec_buf
68                          prim_sec_anchor_buf #(
69                            .Width(8)
70                          ) u_prim_sec_buf (
71                            .in_i(mubi_int),
72                            .out_o(mubi_out)
73                          );
74                        end else if (!AsyncOn) begin : gen_prim_buf
75                          prim_buf #(
76                            .Width(8)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82                          assign mubi_out = mubi_int;
83                        end
84                      
85         1/1            assign mubi_o = mubi8_t'(mubi_out);
           Tests:       T1 T2 T3 
Branch Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
55 | 
2 | 
2 | 
100.00 | 
55               if (!rst_ni) begin
                 -1-  
56                  unused_logic <= MuBi8False;
                    ==>
57               end else begin
58                  unused_logic <= mubi_i;
                    ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
87543204 | 
86701732 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
87543204 | 
86701732 | 
0 | 
0 | 
| T1 | 
5432 | 
5382 | 
0 | 
0 | 
| T2 | 
10698 | 
10452 | 
0 | 
0 | 
| T3 | 
25481 | 
25010 | 
0 | 
0 | 
| T4 | 
10281 | 
10014 | 
0 | 
0 | 
| T5 | 
4680 | 
4619 | 
0 | 
0 | 
| T6 | 
40011 | 
39222 | 
0 | 
0 | 
| T7 | 
36446 | 
35679 | 
0 | 
0 | 
| T11 | 
6282 | 
6220 | 
0 | 
0 | 
| T12 | 
98597 | 
98413 | 
0 | 
0 | 
| T13 | 
28315 | 
27844 | 
0 | 
0 |