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:       T4 T28 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:       T4 T28 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 | 
1075079645 | 
1014850628 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1075079645 | 
1014850628 | 
0 | 
0 | 
| T4 | 
64723 | 
62690 | 
0 | 
0 | 
| T5 | 
81133 | 
79263 | 
0 | 
0 | 
| T6 | 
89718 | 
87934 | 
0 | 
0 | 
| T28 | 
18224 | 
16256 | 
0 | 
0 | 
| T29 | 
47705 | 
45967 | 
0 | 
0 | 
| T30 | 
57829 | 
55274 | 
0 | 
0 | 
| T31 | 
40474 | 
38896 | 
0 | 
0 | 
| T32 | 
47229 | 
44646 | 
0 | 
0 | 
| T33 | 
71816 | 
69845 | 
0 | 
0 | 
| T34 | 
36167 | 
34956 | 
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:       T4 T31 T32 
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:       T4 T31 T32 
Assert Coverage for Instance : tb.dut.u_clkmgr_byp.u_io_byp_req
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
38016723 | 
34972854 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
 
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:       T4 T28 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:       T4 T28 T31 
Assert Coverage for Instance : tb.dut.u_clkmgr_byp.u_all_byp_req
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
38016723 | 
34972854 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
 
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:       T4 T28 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 | 
38016723 | 
34972854 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
38016723 | 
34972854 | 
0 | 
0 | 
| T4 | 
1319 | 
1272 | 
0 | 
0 | 
| T5 | 
1695 | 
1651 | 
0 | 
0 | 
| T6 | 
1044 | 
1022 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
1111 | 
1069 | 
0 | 
0 | 
| T30 | 
1397 | 
1330 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
1440 | 
1399 | 
0 | 
0 | 
| T34 | 
2557 | 
2460 | 
0 | 
0 | 
 
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 | 
20166389 | 
19543746 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
20166389 | 
19543746 | 
0 | 
0 | 
| T4 | 
1491 | 
1474 | 
0 | 
0 | 
| T5 | 
1665 | 
1651 | 
0 | 
0 | 
| T6 | 
1913 | 
1886 | 
0 | 
0 | 
| T28 | 
300 | 
283 | 
0 | 
0 | 
| T29 | 
938 | 
924 | 
0 | 
0 | 
| T30 | 
1167 | 
1139 | 
0 | 
0 | 
| T31 | 
716 | 
706 | 
0 | 
0 | 
| T32 | 
1398 | 
1367 | 
0 | 
0 | 
| T33 | 
1486 | 
1458 | 
0 | 
0 | 
| T34 | 
695 | 
688 | 
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 | 
91151739 | 
85936334 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
 
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 | 
43744900 | 
41230611 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
43744900 | 
41230611 | 
0 | 
0 | 
| T4 | 
2640 | 
2545 | 
0 | 
0 | 
| T5 | 
3391 | 
3303 | 
0 | 
0 | 
| T6 | 
3853 | 
3772 | 
0 | 
0 | 
| T28 | 
639 | 
565 | 
0 | 
0 | 
| T29 | 
1948 | 
1867 | 
0 | 
0 | 
| T30 | 
2395 | 
2280 | 
0 | 
0 | 
| T31 | 
1403 | 
1343 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
3006 | 
2918 | 
0 | 
0 | 
| T34 | 
1240 | 
1193 | 
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 | 
82648253 | 
77750734 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
82648253 | 
77750734 | 
0 | 
0 | 
| T4 | 
5279 | 
5090 | 
0 | 
0 | 
| T5 | 
6781 | 
6605 | 
0 | 
0 | 
| T6 | 
7706 | 
7544 | 
0 | 
0 | 
| T28 | 
1279 | 
1131 | 
0 | 
0 | 
| T29 | 
3857 | 
3695 | 
0 | 
0 | 
| T30 | 
4789 | 
4558 | 
0 | 
0 | 
| T31 | 
2808 | 
2687 | 
0 | 
0 | 
| T32 | 
3352 | 
3135 | 
0 | 
0 | 
| T33 | 
6011 | 
5835 | 
0 | 
0 | 
| T34 | 
2479 | 
2385 | 
0 | 
0 | 
 
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 | 
40333590 | 
39088194 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
40333590 | 
39088194 | 
0 | 
0 | 
| T4 | 
2982 | 
2948 | 
0 | 
0 | 
| T5 | 
3330 | 
3302 | 
0 | 
0 | 
| T6 | 
3827 | 
3772 | 
0 | 
0 | 
| T28 | 
600 | 
565 | 
0 | 
0 | 
| T29 | 
1875 | 
1847 | 
0 | 
0 | 
| T30 | 
2334 | 
2279 | 
0 | 
0 | 
| T31 | 
1436 | 
1415 | 
0 | 
0 | 
| T32 | 
2798 | 
2736 | 
0 | 
0 | 
| T33 | 
2973 | 
2918 | 
0 | 
0 | 
| T34 | 
1393 | 
1379 | 
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 | 
20166389 | 
19543746 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
20166389 | 
19543746 | 
0 | 
0 | 
| T4 | 
1491 | 
1474 | 
0 | 
0 | 
| T5 | 
1665 | 
1651 | 
0 | 
0 | 
| T6 | 
1913 | 
1886 | 
0 | 
0 | 
| T28 | 
300 | 
283 | 
0 | 
0 | 
| T29 | 
938 | 
924 | 
0 | 
0 | 
| T30 | 
1167 | 
1139 | 
0 | 
0 | 
| T31 | 
716 | 
706 | 
0 | 
0 | 
| T32 | 
1398 | 
1367 | 
0 | 
0 | 
| T33 | 
1486 | 
1458 | 
0 | 
0 | 
| T34 | 
695 | 
688 | 
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 | 
91151739 | 
85936334 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
 
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 | 
20166389 | 
19543746 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
20166389 | 
19543746 | 
0 | 
0 | 
| T4 | 
1491 | 
1474 | 
0 | 
0 | 
| T5 | 
1665 | 
1651 | 
0 | 
0 | 
| T6 | 
1913 | 
1886 | 
0 | 
0 | 
| T28 | 
300 | 
283 | 
0 | 
0 | 
| T29 | 
938 | 
924 | 
0 | 
0 | 
| T30 | 
1167 | 
1139 | 
0 | 
0 | 
| T31 | 
716 | 
706 | 
0 | 
0 | 
| T32 | 
1398 | 
1367 | 
0 | 
0 | 
| T33 | 
1486 | 
1458 | 
0 | 
0 | 
| T34 | 
695 | 
688 | 
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 | 
20166389 | 
19543746 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
20166389 | 
19543746 | 
0 | 
0 | 
| T4 | 
1491 | 
1474 | 
0 | 
0 | 
| T5 | 
1665 | 
1651 | 
0 | 
0 | 
| T6 | 
1913 | 
1886 | 
0 | 
0 | 
| T28 | 
300 | 
283 | 
0 | 
0 | 
| T29 | 
938 | 
924 | 
0 | 
0 | 
| T30 | 
1167 | 
1139 | 
0 | 
0 | 
| T31 | 
716 | 
706 | 
0 | 
0 | 
| T32 | 
1398 | 
1367 | 
0 | 
0 | 
| T33 | 
1486 | 
1458 | 
0 | 
0 | 
| T34 | 
695 | 
688 | 
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 | 
40333590 | 
39088194 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
40333590 | 
39088194 | 
0 | 
0 | 
| T4 | 
2982 | 
2948 | 
0 | 
0 | 
| T5 | 
3330 | 
3302 | 
0 | 
0 | 
| T6 | 
3827 | 
3772 | 
0 | 
0 | 
| T28 | 
600 | 
565 | 
0 | 
0 | 
| T29 | 
1875 | 
1847 | 
0 | 
0 | 
| T30 | 
2334 | 
2279 | 
0 | 
0 | 
| T31 | 
1436 | 
1415 | 
0 | 
0 | 
| T32 | 
2798 | 
2736 | 
0 | 
0 | 
| T33 | 
2973 | 
2918 | 
0 | 
0 | 
| T34 | 
1393 | 
1379 | 
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 | 
82648253 | 
77750734 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
82648253 | 
77750734 | 
0 | 
0 | 
| T4 | 
5279 | 
5090 | 
0 | 
0 | 
| T5 | 
6781 | 
6605 | 
0 | 
0 | 
| T6 | 
7706 | 
7544 | 
0 | 
0 | 
| T28 | 
1279 | 
1131 | 
0 | 
0 | 
| T29 | 
3857 | 
3695 | 
0 | 
0 | 
| T30 | 
4789 | 
4558 | 
0 | 
0 | 
| T31 | 
2808 | 
2687 | 
0 | 
0 | 
| T32 | 
3352 | 
3135 | 
0 | 
0 | 
| T33 | 
6011 | 
5835 | 
0 | 
0 | 
| T34 | 
2479 | 
2385 | 
0 | 
0 | 
 
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 | 
43744900 | 
41230611 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
43744900 | 
41230611 | 
0 | 
0 | 
| T4 | 
2640 | 
2545 | 
0 | 
0 | 
| T5 | 
3391 | 
3303 | 
0 | 
0 | 
| T6 | 
3853 | 
3772 | 
0 | 
0 | 
| T28 | 
639 | 
565 | 
0 | 
0 | 
| T29 | 
1948 | 
1867 | 
0 | 
0 | 
| T30 | 
2395 | 
2280 | 
0 | 
0 | 
| T31 | 
1403 | 
1343 | 
0 | 
0 | 
| T32 | 
1677 | 
1568 | 
0 | 
0 | 
| T33 | 
3006 | 
2918 | 
0 | 
0 | 
| T34 | 
1240 | 
1193 | 
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 | 
91151739 | 
85936334 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
 
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 | 
91151739 | 
85936334 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
 
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 | 
91151739 | 
85936334 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 | 
 
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 | 
91151739 | 
85936334 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
91151739 | 
85936334 | 
0 | 
0 | 
| T4 | 
5500 | 
5302 | 
0 | 
0 | 
| T5 | 
7064 | 
6881 | 
0 | 
0 | 
| T6 | 
8027 | 
7858 | 
0 | 
0 | 
| T28 | 
1332 | 
1178 | 
0 | 
0 | 
| T29 | 
4210 | 
4041 | 
0 | 
0 | 
| T30 | 
4989 | 
4749 | 
0 | 
0 | 
| T31 | 
2924 | 
2798 | 
0 | 
0 | 
| T32 | 
3492 | 
3266 | 
0 | 
0 | 
| T33 | 
6262 | 
6079 | 
0 | 
0 | 
| T34 | 
2582 | 
2485 | 
0 | 
0 |