Line Coverage for Module : 
prim_mubi4_sender ( parameter AsyncOn=1,EnSecBuf=1,ResetValue=9 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T5 T30 T31 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
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 = mubi4_t'(mubi_out);
           Tests:       T5 T30 T31 
Line Coverage for Module : 
prim_mubi4_sender ( parameter AsyncOn=1,EnSecBuf=0,ResetValue=6 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Module : 
prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
974345642 | 
920075607 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
974345642 | 
920075607 | 
0 | 
0 | 
| T1 | 
1162468 | 
1160543 | 
0 | 
0 | 
| T4 | 
32848 | 
31380 | 
0 | 
0 | 
| T5 | 
131165 | 
128517 | 
0 | 
0 | 
| T6 | 
183686 | 
181942 | 
0 | 
0 | 
| T28 | 
50056 | 
49149 | 
0 | 
0 | 
| T29 | 
49821 | 
47549 | 
0 | 
0 | 
| T30 | 
47793 | 
45439 | 
0 | 
0 | 
| T31 | 
35596 | 
34529 | 
0 | 
0 | 
| T32 | 
42366 | 
40586 | 
0 | 
0 | 
| T33 | 
49658 | 
48468 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clkmgr_byp.u_io_byp_req
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T5 T30 T31 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
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 = mubi4_t'(mubi_out);
           Tests:       T5 T30 T31 
Assert Coverage for Instance : tb.dut.u_clkmgr_byp.u_io_byp_req
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
38556246 | 
35874731 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clkmgr_byp.u_all_byp_req
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T5 T30 T31 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
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 = mubi4_t'(mubi_out);
           Tests:       T5 T30 T31 
Assert Coverage for Instance : tb.dut.u_clkmgr_byp.u_all_byp_req
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
38556246 | 
35874731 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clkmgr_byp.u_hi_speed_sel
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T5 T30 T31 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clkmgr_byp.u_hi_speed_sel
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
38556246 | 
35874731 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38556246 | 
35874731 | 
0 | 
0 | 
| T1 | 
27970 | 
27925 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
2461 | 
2405 | 
0 | 
0 | 
| T6 | 
838 | 
830 | 
0 | 
0 | 
| T28 | 
1164 | 
1145 | 
0 | 
0 | 
| T29 | 
2031 | 
1933 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
1068 | 
1040 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div4_infra
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div4_infra
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
17948391 | 
17385163 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
17948391 | 
17385163 | 
0 | 
0 | 
| T1 | 
23948 | 
23927 | 
0 | 
0 | 
| T4 | 
563 | 
546 | 
0 | 
0 | 
| T5 | 
3052 | 
3025 | 
0 | 
0 | 
| T6 | 
4015 | 
3987 | 
0 | 
0 | 
| T28 | 
1056 | 
1042 | 
0 | 
0 | 
| T29 | 
955 | 
927 | 
0 | 
0 | 
| T30 | 
958 | 
937 | 
0 | 
0 | 
| T31 | 
638 | 
628 | 
0 | 
0 | 
| T32 | 
729 | 
712 | 
0 | 
0 | 
| T33 | 
1062 | 
1048 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_main_infra
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_main_infra
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
81698299 | 
76977349 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_usb_infra
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_usb_infra
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
39137330 | 
36879607 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
39137330 | 
36879607 | 
0 | 
0 | 
| T1 | 
47945 | 
47857 | 
0 | 
0 | 
| T4 | 
1145 | 
1091 | 
0 | 
0 | 
| T5 | 
5370 | 
5248 | 
0 | 
0 | 
| T6 | 
8057 | 
7977 | 
0 | 
0 | 
| T28 | 
2090 | 
2050 | 
0 | 
0 | 
| T29 | 
1950 | 
1856 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
1231 | 
1192 | 
0 | 
0 | 
| T32 | 
1491 | 
1424 | 
0 | 
0 | 
| T33 | 
2052 | 
1998 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_infra
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_infra
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
73311726 | 
68872623 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
73311726 | 
68872623 | 
0 | 
0 | 
| T1 | 
95886 | 
95711 | 
0 | 
0 | 
| T4 | 
2290 | 
2183 | 
0 | 
0 | 
| T5 | 
10741 | 
10497 | 
0 | 
0 | 
| T6 | 
16113 | 
15951 | 
0 | 
0 | 
| T28 | 
4248 | 
4168 | 
0 | 
0 | 
| T29 | 
3901 | 
3711 | 
0 | 
0 | 
| T30 | 
3733 | 
3530 | 
0 | 
0 | 
| T31 | 
2464 | 
2384 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
4103 | 
3996 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div2_infra
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div2_infra
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
35897717 | 
34771104 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
35897717 | 
34771104 | 
0 | 
0 | 
| T1 | 
47897 | 
47856 | 
0 | 
0 | 
| T4 | 
1126 | 
1091 | 
0 | 
0 | 
| T5 | 
6106 | 
6051 | 
0 | 
0 | 
| T6 | 
8031 | 
7976 | 
0 | 
0 | 
| T28 | 
2112 | 
2084 | 
0 | 
0 | 
| T29 | 
1911 | 
1856 | 
0 | 
0 | 
| T30 | 
1916 | 
1875 | 
0 | 
0 | 
| T31 | 
1280 | 
1259 | 
0 | 
0 | 
| T32 | 
1458 | 
1424 | 
0 | 
0 | 
| T33 | 
2126 | 
2098 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div4_secure
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div4_secure
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
17948391 | 
17385163 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
17948391 | 
17385163 | 
0 | 
0 | 
| T1 | 
23948 | 
23927 | 
0 | 
0 | 
| T4 | 
563 | 
546 | 
0 | 
0 | 
| T5 | 
3052 | 
3025 | 
0 | 
0 | 
| T6 | 
4015 | 
3987 | 
0 | 
0 | 
| T28 | 
1056 | 
1042 | 
0 | 
0 | 
| T29 | 
955 | 
927 | 
0 | 
0 | 
| T30 | 
958 | 
937 | 
0 | 
0 | 
| T31 | 
638 | 
628 | 
0 | 
0 | 
| T32 | 
729 | 
712 | 
0 | 
0 | 
| T33 | 
1062 | 
1048 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_main_secure
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_main_secure
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
81698299 | 
76977349 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div4_timers
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div4_timers
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
17948391 | 
17385163 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
17948391 | 
17385163 | 
0 | 
0 | 
| T1 | 
23948 | 
23927 | 
0 | 
0 | 
| T4 | 
563 | 
546 | 
0 | 
0 | 
| T5 | 
3052 | 
3025 | 
0 | 
0 | 
| T6 | 
4015 | 
3987 | 
0 | 
0 | 
| T28 | 
1056 | 
1042 | 
0 | 
0 | 
| T29 | 
955 | 
927 | 
0 | 
0 | 
| T30 | 
958 | 
937 | 
0 | 
0 | 
| T31 | 
638 | 
628 | 
0 | 
0 | 
| T32 | 
729 | 
712 | 
0 | 
0 | 
| T33 | 
1062 | 
1048 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div4_peri
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div4_peri
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
17948391 | 
17385163 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
17948391 | 
17385163 | 
0 | 
0 | 
| T1 | 
23948 | 
23927 | 
0 | 
0 | 
| T4 | 
563 | 
546 | 
0 | 
0 | 
| T5 | 
3052 | 
3025 | 
0 | 
0 | 
| T6 | 
4015 | 
3987 | 
0 | 
0 | 
| T28 | 
1056 | 
1042 | 
0 | 
0 | 
| T29 | 
955 | 
927 | 
0 | 
0 | 
| T30 | 
958 | 
937 | 
0 | 
0 | 
| T31 | 
638 | 
628 | 
0 | 
0 | 
| T32 | 
729 | 
712 | 
0 | 
0 | 
| T33 | 
1062 | 
1048 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div2_peri
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_div2_peri
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
35897717 | 
34771104 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
35897717 | 
34771104 | 
0 | 
0 | 
| T1 | 
47897 | 
47856 | 
0 | 
0 | 
| T4 | 
1126 | 
1091 | 
0 | 
0 | 
| T5 | 
6106 | 
6051 | 
0 | 
0 | 
| T6 | 
8031 | 
7976 | 
0 | 
0 | 
| T28 | 
2112 | 
2084 | 
0 | 
0 | 
| T29 | 
1911 | 
1856 | 
0 | 
0 | 
| T30 | 
1916 | 
1875 | 
0 | 
0 | 
| T31 | 
1280 | 
1259 | 
0 | 
0 | 
| T32 | 
1458 | 
1424 | 
0 | 
0 | 
| T33 | 
2126 | 
2098 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_peri
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_io_peri
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
73311726 | 
68872623 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
73311726 | 
68872623 | 
0 | 
0 | 
| T1 | 
95886 | 
95711 | 
0 | 
0 | 
| T4 | 
2290 | 
2183 | 
0 | 
0 | 
| T5 | 
10741 | 
10497 | 
0 | 
0 | 
| T6 | 
16113 | 
15951 | 
0 | 
0 | 
| T28 | 
4248 | 
4168 | 
0 | 
0 | 
| T29 | 
3901 | 
3711 | 
0 | 
0 | 
| T30 | 
3733 | 
3530 | 
0 | 
0 | 
| T31 | 
2464 | 
2384 | 
0 | 
0 | 
| T32 | 
2982 | 
2848 | 
0 | 
0 | 
| T33 | 
4103 | 
3996 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_usb_peri
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_prim_mubi4_sender_clk_usb_peri
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
39137330 | 
36879607 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
39137330 | 
36879607 | 
0 | 
0 | 
| T1 | 
47945 | 
47857 | 
0 | 
0 | 
| T4 | 
1145 | 
1091 | 
0 | 
0 | 
| T5 | 
5370 | 
5248 | 
0 | 
0 | 
| T6 | 
8057 | 
7977 | 
0 | 
0 | 
| T28 | 
2090 | 
2050 | 
0 | 
0 | 
| T29 | 
1950 | 
1856 | 
0 | 
0 | 
| T30 | 
1867 | 
1765 | 
0 | 
0 | 
| T31 | 
1231 | 
1192 | 
0 | 
0 | 
| T32 | 
1491 | 
1424 | 
0 | 
0 | 
| T33 | 
2052 | 
1998 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_aes_trans.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_main_aes_trans.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
81698299 | 
76977349 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_hmac_trans.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_main_hmac_trans.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
81698299 | 
76977349 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_kmac_trans.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_main_kmac_trans.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
81698299 | 
76977349 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_clk_main_otbn_trans.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 34 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 82 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
33                        logic [MuBi4Width-1:0] mubi, mubi_int, mubi_out;
34         1/1            assign mubi = MuBi4Width'(mubi_i);
           Tests:       T4 T5 T6 
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(MuBi4Width),
40                            .ResetValue(MuBi4Width'(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                          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                          mubi4_t unused_logic;
54                          always_ff @(posedge clk_i or negedge rst_ni) begin
55                            if (!rst_ni) begin
56                               unused_logic <= MuBi4False;
57                            end else begin
58                               unused_logic <= mubi_i;
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(4)
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(4)
77                          ) u_prim_buf (
78                            .in_i(mubi_int),
79                            .out_o(mubi_out)
80                          );
81                        end else begin : gen_feedthru
82         1/1              assign mubi_out = mubi_int;
           Tests:       T4 T5 T6 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T4 T5 T6 
Assert Coverage for Instance : tb.dut.u_clk_main_otbn_trans.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
81698299 | 
76977349 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
81698299 | 
76977349 | 
0 | 
0 | 
| T1 | 
99885 | 
99702 | 
0 | 
0 | 
| T4 | 
2386 | 
2274 | 
0 | 
0 | 
| T5 | 
11190 | 
10935 | 
0 | 
0 | 
| T6 | 
16785 | 
16616 | 
0 | 
0 | 
| T28 | 
4240 | 
4157 | 
0 | 
0 | 
| T29 | 
4064 | 
3866 | 
0 | 
0 | 
| T30 | 
3888 | 
3676 | 
0 | 
0 | 
| T31 | 
2566 | 
2483 | 
0 | 
0 | 
| T32 | 
3107 | 
2967 | 
0 | 
0 | 
| T33 | 
4274 | 
4162 | 
0 | 
0 |