Line Coverage for Module : 
prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Module : 
prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
856595622 | 
458547948 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
856595622 | 
458547948 | 
0 | 
0 | 
| T1 | 
357124 | 
71802 | 
0 | 
0 | 
| T2 | 
182522 | 
100193 | 
0 | 
0 | 
| T3 | 
250350 | 
170905 | 
0 | 
0 | 
| T4 | 
487520 | 
48175 | 
0 | 
0 | 
| T5 | 
432048 | 
315946 | 
0 | 
0 | 
| T6 | 
124784 | 
80572 | 
0 | 
0 | 
| T7 | 
268514 | 
68909 | 
0 | 
0 | 
| T8 | 
730726 | 
671281 | 
0 | 
0 | 
| T9 | 
174404 | 
103266 | 
0 | 
0 | 
| T10 | 
233616 | 
149409 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_por.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_por.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
52872612 | 
31711366 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
52872612 | 
31711366 | 
0 | 
0 | 
| T1 | 
22047 | 
5045 | 
0 | 
0 | 
| T2 | 
11271 | 
7076 | 
0 | 
0 | 
| T3 | 
15456 | 
11129 | 
0 | 
0 | 
| T4 | 
30094 | 
3395 | 
0 | 
0 | 
| T5 | 
26672 | 
23969 | 
0 | 
0 | 
| T6 | 
7704 | 
5013 | 
0 | 
0 | 
| T7 | 
16577 | 
4848 | 
0 | 
0 | 
| T8 | 
45109 | 
42420 | 
0 | 
0 | 
| T9 | 
10765 | 
6808 | 
0 | 
0 | 
| T10 | 
14421 | 
10125 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_por_io.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_por_io.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
50756297 | 
30441263 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
50756297 | 
30441263 | 
0 | 
0 | 
| T1 | 
21164 | 
4843 | 
0 | 
0 | 
| T2 | 
10817 | 
6790 | 
0 | 
0 | 
| T3 | 
14835 | 
10683 | 
0 | 
0 | 
| T4 | 
28881 | 
3260 | 
0 | 
0 | 
| T5 | 
25603 | 
23010 | 
0 | 
0 | 
| T6 | 
7396 | 
4812 | 
0 | 
0 | 
| T7 | 
15912 | 
4653 | 
0 | 
0 | 
| T8 | 
43302 | 
40721 | 
0 | 
0 | 
| T9 | 
10336 | 
6539 | 
0 | 
0 | 
| T10 | 
13843 | 
9718 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_por_io_div2.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_por_io_div2.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
25379288 | 
15217267 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
25379288 | 
15217267 | 
0 | 
0 | 
| T1 | 
10582 | 
2421 | 
0 | 
0 | 
| T2 | 
5408 | 
3393 | 
0 | 
0 | 
| T3 | 
7417 | 
5340 | 
0 | 
0 | 
| T4 | 
14445 | 
1625 | 
0 | 
0 | 
| T5 | 
12801 | 
11504 | 
0 | 
0 | 
| T6 | 
3697 | 
2405 | 
0 | 
0 | 
| T7 | 
7955 | 
2325 | 
0 | 
0 | 
| T8 | 
21652 | 
20362 | 
0 | 
0 | 
| T9 | 
5169 | 
3269 | 
0 | 
0 | 
| T10 | 
6923 | 
4860 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_por_io_div4.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_por_io_div4.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
7605023 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
7605023 | 
0 | 
0 | 
| T1 | 
5289 | 
1209 | 
0 | 
0 | 
| T2 | 
2702 | 
1695 | 
0 | 
0 | 
| T3 | 
3709 | 
2670 | 
0 | 
0 | 
| T4 | 
7222 | 
807 | 
0 | 
0 | 
| T5 | 
6400 | 
5752 | 
0 | 
0 | 
| T6 | 
1848 | 
1203 | 
0 | 
0 | 
| T7 | 
3978 | 
1162 | 
0 | 
0 | 
| T8 | 
10824 | 
10180 | 
0 | 
0 | 
| T9 | 
2583 | 
1634 | 
0 | 
0 | 
| T10 | 
3461 | 
2430 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_por_usb.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_por_usb.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
25378930 | 
15217063 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
25378930 | 
15217063 | 
0 | 
0 | 
| T1 | 
10581 | 
2421 | 
0 | 
0 | 
| T2 | 
5407 | 
3392 | 
0 | 
0 | 
| T3 | 
7417 | 
5340 | 
0 | 
0 | 
| T4 | 
14452 | 
1625 | 
0 | 
0 | 
| T5 | 
12801 | 
11504 | 
0 | 
0 | 
| T6 | 
3697 | 
2405 | 
0 | 
0 | 
| T7 | 
7956 | 
2325 | 
0 | 
0 | 
| T8 | 
21652 | 
20362 | 
0 | 
0 | 
| T9 | 
5168 | 
3268 | 
0 | 
0 | 
| T10 | 
6922 | 
4859 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_lc.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_lc.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
52872612 | 
28094403 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
52872612 | 
28094403 | 
0 | 
0 | 
| T1 | 
22047 | 
5033 | 
0 | 
0 | 
| T2 | 
11271 | 
6088 | 
0 | 
0 | 
| T3 | 
15456 | 
10532 | 
0 | 
0 | 
| T4 | 
30094 | 
3282 | 
0 | 
0 | 
| T5 | 
26672 | 
18591 | 
0 | 
0 | 
| T6 | 
7704 | 
5008 | 
0 | 
0 | 
| T7 | 
16577 | 
4838 | 
0 | 
0 | 
| T8 | 
45109 | 
42415 | 
0 | 
0 | 
| T9 | 
10765 | 
6400 | 
0 | 
0 | 
| T10 | 
14421 | 
9126 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_lc.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_lc.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
52872612 | 
27377194 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
52872612 | 
27377194 | 
0 | 
0 | 
| T1 | 
22047 | 
3865 | 
0 | 
0 | 
| T2 | 
11271 | 
5922 | 
0 | 
0 | 
| T3 | 
15456 | 
10365 | 
0 | 
0 | 
| T4 | 
30094 | 
2615 | 
0 | 
0 | 
| T5 | 
26672 | 
18384 | 
0 | 
0 | 
| T6 | 
7704 | 
4942 | 
0 | 
0 | 
| T7 | 
16577 | 
3705 | 
0 | 
0 | 
| T8 | 
45109 | 
42348 | 
0 | 
0 | 
| T9 | 
10765 | 
6232 | 
0 | 
0 | 
| T10 | 
14421 | 
8961 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_lc_shadowed.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_lc_shadowed.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
52872612 | 
28094361 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
52872612 | 
28094361 | 
0 | 
0 | 
| T1 | 
22047 | 
5033 | 
0 | 
0 | 
| T2 | 
11271 | 
6088 | 
0 | 
0 | 
| T3 | 
15456 | 
10532 | 
0 | 
0 | 
| T4 | 
30094 | 
3283 | 
0 | 
0 | 
| T5 | 
26672 | 
18591 | 
0 | 
0 | 
| T6 | 
7704 | 
5008 | 
0 | 
0 | 
| T7 | 
16577 | 
4838 | 
0 | 
0 | 
| T8 | 
45109 | 
42415 | 
0 | 
0 | 
| T9 | 
10765 | 
6400 | 
0 | 
0 | 
| T10 | 
14421 | 
9126 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_lc_shadowed.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_lc_shadowed.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
52872612 | 
27377605 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
52872612 | 
27377605 | 
0 | 
0 | 
| T1 | 
22047 | 
3865 | 
0 | 
0 | 
| T2 | 
11271 | 
5922 | 
0 | 
0 | 
| T3 | 
15456 | 
10365 | 
0 | 
0 | 
| T4 | 
30094 | 
2616 | 
0 | 
0 | 
| T5 | 
26672 | 
18384 | 
0 | 
0 | 
| T6 | 
7704 | 
4942 | 
0 | 
0 | 
| T7 | 
16577 | 
3705 | 
0 | 
0 | 
| T8 | 
45109 | 
42348 | 
0 | 
0 | 
| T9 | 
10765 | 
6232 | 
0 | 
0 | 
| T10 | 
14421 | 
8961 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_lc_aon.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_lc_aon.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
1602345 | 
833117 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1602345 | 
833117 | 
0 | 
0 | 
| T1 | 
661 | 
149 | 
0 | 
0 | 
| T2 | 
337 | 
177 | 
0 | 
0 | 
| T3 | 
462 | 
310 | 
0 | 
0 | 
| T4 | 
906 | 
86 | 
0 | 
0 | 
| T5 | 
799 | 
542 | 
0 | 
0 | 
| T6 | 
230 | 
149 | 
0 | 
0 | 
| T7 | 
495 | 
143 | 
0 | 
0 | 
| T8 | 
1352 | 
1271 | 
0 | 
0 | 
| T9 | 
323 | 
187 | 
0 | 
0 | 
| T10 | 
432 | 
267 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_lc_io.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_lc_io.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
50756297 | 
26970716 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
50756297 | 
26970716 | 
0 | 
0 | 
| T1 | 
21164 | 
4831 | 
0 | 
0 | 
| T2 | 
10817 | 
5840 | 
0 | 
0 | 
| T3 | 
14835 | 
10109 | 
0 | 
0 | 
| T4 | 
28881 | 
3191 | 
0 | 
0 | 
| T5 | 
25603 | 
17845 | 
0 | 
0 | 
| T6 | 
7396 | 
4807 | 
0 | 
0 | 
| T7 | 
15912 | 
4643 | 
0 | 
0 | 
| T8 | 
43302 | 
40716 | 
0 | 
0 | 
| T9 | 
10336 | 
6145 | 
0 | 
0 | 
| T10 | 
13843 | 
8760 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_lc_io.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_lc_io.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
50756297 | 
26282457 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
50756297 | 
26282457 | 
0 | 
0 | 
| T1 | 
21164 | 
3711 | 
0 | 
0 | 
| T2 | 
10817 | 
5680 | 
0 | 
0 | 
| T3 | 
14835 | 
9949 | 
0 | 
0 | 
| T4 | 
28881 | 
2551 | 
0 | 
0 | 
| T5 | 
25603 | 
17645 | 
0 | 
0 | 
| T6 | 
7396 | 
4743 | 
0 | 
0 | 
| T7 | 
15912 | 
3555 | 
0 | 
0 | 
| T8 | 
43302 | 
40652 | 
0 | 
0 | 
| T9 | 
10336 | 
5985 | 
0 | 
0 | 
| T10 | 
13843 | 
8600 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_lc_io_div2.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_lc_io_div2.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
25379288 | 
13475376 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
25379288 | 
13475376 | 
0 | 
0 | 
| T1 | 
10582 | 
2415 | 
0 | 
0 | 
| T2 | 
5408 | 
2917 | 
0 | 
0 | 
| T3 | 
7417 | 
5052 | 
0 | 
0 | 
| T4 | 
14445 | 
1595 | 
0 | 
0 | 
| T5 | 
12801 | 
8914 | 
0 | 
0 | 
| T6 | 
3697 | 
2403 | 
0 | 
0 | 
| T7 | 
7955 | 
2321 | 
0 | 
0 | 
| T8 | 
21652 | 
20359 | 
0 | 
0 | 
| T9 | 
5169 | 
3071 | 
0 | 
0 | 
| T10 | 
6923 | 
4378 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_lc_io_div2.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_lc_io_div2.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
25379288 | 
13131289 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
25379288 | 
13131289 | 
0 | 
0 | 
| T1 | 
10582 | 
1855 | 
0 | 
0 | 
| T2 | 
5408 | 
2837 | 
0 | 
0 | 
| T3 | 
7417 | 
4972 | 
0 | 
0 | 
| T4 | 
14445 | 
1275 | 
0 | 
0 | 
| T5 | 
12801 | 
8814 | 
0 | 
0 | 
| T6 | 
3697 | 
2371 | 
0 | 
0 | 
| T7 | 
7955 | 
1777 | 
0 | 
0 | 
| T8 | 
21652 | 
20327 | 
0 | 
0 | 
| T9 | 
5169 | 
2991 | 
0 | 
0 | 
| T10 | 
6923 | 
4298 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_lc_io_div4.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_lc_io_div4.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
6709937 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
6709937 | 
0 | 
0 | 
| T1 | 
5289 | 
1205 | 
0 | 
0 | 
| T2 | 
2702 | 
1450 | 
0 | 
0 | 
| T3 | 
3709 | 
2519 | 
0 | 
0 | 
| T4 | 
7222 | 
777 | 
0 | 
0 | 
| T5 | 
6400 | 
4431 | 
0 | 
0 | 
| T6 | 
1848 | 
1201 | 
0 | 
0 | 
| T7 | 
3978 | 
1158 | 
0 | 
0 | 
| T8 | 
10824 | 
10178 | 
0 | 
0 | 
| T9 | 
2583 | 
1528 | 
0 | 
0 | 
| T10 | 
3461 | 
2182 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_lc_io_div4.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_lc_io_div4.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
6537849 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
6537849 | 
0 | 
0 | 
| T1 | 
5289 | 
925 | 
0 | 
0 | 
| T2 | 
2702 | 
1410 | 
0 | 
0 | 
| T3 | 
3709 | 
2479 | 
0 | 
0 | 
| T4 | 
7222 | 
617 | 
0 | 
0 | 
| T5 | 
6400 | 
4381 | 
0 | 
0 | 
| T6 | 
1848 | 
1185 | 
0 | 
0 | 
| T7 | 
3978 | 
886 | 
0 | 
0 | 
| T8 | 
10824 | 
10162 | 
0 | 
0 | 
| T9 | 
2583 | 
1488 | 
0 | 
0 | 
| T10 | 
3461 | 
2142 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_lc_io_div4_shadowed.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_lc_io_div4_shadowed.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
6709937 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
6709937 | 
0 | 
0 | 
| T1 | 
5289 | 
1205 | 
0 | 
0 | 
| T2 | 
2702 | 
1450 | 
0 | 
0 | 
| T3 | 
3709 | 
2519 | 
0 | 
0 | 
| T4 | 
7222 | 
777 | 
0 | 
0 | 
| T5 | 
6400 | 
4431 | 
0 | 
0 | 
| T6 | 
1848 | 
1201 | 
0 | 
0 | 
| T7 | 
3978 | 
1158 | 
0 | 
0 | 
| T8 | 
10824 | 
10178 | 
0 | 
0 | 
| T9 | 
2583 | 
1528 | 
0 | 
0 | 
| T10 | 
3461 | 
2182 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_lc_io_div4_shadowed.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_lc_io_div4_shadowed.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
6537849 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
6537849 | 
0 | 
0 | 
| T1 | 
5289 | 
925 | 
0 | 
0 | 
| T2 | 
2702 | 
1410 | 
0 | 
0 | 
| T3 | 
3709 | 
2479 | 
0 | 
0 | 
| T4 | 
7222 | 
617 | 
0 | 
0 | 
| T5 | 
6400 | 
4381 | 
0 | 
0 | 
| T6 | 
1848 | 
1185 | 
0 | 
0 | 
| T7 | 
3978 | 
886 | 
0 | 
0 | 
| T8 | 
10824 | 
10162 | 
0 | 
0 | 
| T9 | 
2583 | 
1488 | 
0 | 
0 | 
| T10 | 
3461 | 
2142 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_lc_usb.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_lc_usb.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
25378930 | 
13475310 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
25378930 | 
13475310 | 
0 | 
0 | 
| T1 | 
10581 | 
2415 | 
0 | 
0 | 
| T2 | 
5407 | 
2916 | 
0 | 
0 | 
| T3 | 
7417 | 
5052 | 
0 | 
0 | 
| T4 | 
14452 | 
1595 | 
0 | 
0 | 
| T5 | 
12801 | 
8914 | 
0 | 
0 | 
| T6 | 
3697 | 
2403 | 
0 | 
0 | 
| T7 | 
7956 | 
2321 | 
0 | 
0 | 
| T8 | 
21652 | 
20359 | 
0 | 
0 | 
| T9 | 
5168 | 
3070 | 
0 | 
0 | 
| T10 | 
6922 | 
4377 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_lc_usb.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_lc_usb.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
25378930 | 
13131193 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
25378930 | 
13131193 | 
0 | 
0 | 
| T1 | 
10581 | 
1855 | 
0 | 
0 | 
| T2 | 
5407 | 
2836 | 
0 | 
0 | 
| T3 | 
7417 | 
4972 | 
0 | 
0 | 
| T4 | 
14452 | 
1275 | 
0 | 
0 | 
| T5 | 
12801 | 
8814 | 
0 | 
0 | 
| T6 | 
3697 | 
2371 | 
0 | 
0 | 
| T7 | 
7956 | 
1777 | 
0 | 
0 | 
| T8 | 
21652 | 
20327 | 
0 | 
0 | 
| T9 | 
5168 | 
2990 | 
0 | 
0 | 
| T10 | 
6922 | 
4297 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_sys.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_sys.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
52872612 | 
27081519 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
52872612 | 
27081519 | 
0 | 
0 | 
| T1 | 
22047 | 
3865 | 
0 | 
0 | 
| T2 | 
11271 | 
5893 | 
0 | 
0 | 
| T3 | 
15456 | 
10261 | 
0 | 
0 | 
| T4 | 
30094 | 
2657 | 
0 | 
0 | 
| T5 | 
26672 | 
18038 | 
0 | 
0 | 
| T6 | 
7704 | 
4942 | 
0 | 
0 | 
| T7 | 
16577 | 
3705 | 
0 | 
0 | 
| T8 | 
45109 | 
42348 | 
0 | 
0 | 
| T9 | 
10765 | 
6115 | 
0 | 
0 | 
| T10 | 
14421 | 
8835 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_daon_sys_io_div4.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_daon_sys_io_div4.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
6638610 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
6638610 | 
0 | 
0 | 
| T1 | 
5289 | 
1205 | 
0 | 
0 | 
| T2 | 
2702 | 
1443 | 
0 | 
0 | 
| T3 | 
3709 | 
2494 | 
0 | 
0 | 
| T4 | 
7222 | 
787 | 
0 | 
0 | 
| T5 | 
6400 | 
4349 | 
0 | 
0 | 
| T6 | 
1848 | 
1201 | 
0 | 
0 | 
| T7 | 
3978 | 
1158 | 
0 | 
0 | 
| T8 | 
10824 | 
10178 | 
0 | 
0 | 
| T9 | 
2583 | 
1500 | 
0 | 
0 | 
| T10 | 
3461 | 
2152 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_spi_device.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_spi_device.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
6404851 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
6404851 | 
0 | 
0 | 
| T1 | 
5289 | 
925 | 
0 | 
0 | 
| T2 | 
2702 | 
1410 | 
0 | 
0 | 
| T3 | 
3709 | 
2479 | 
0 | 
0 | 
| T4 | 
7222 | 
627 | 
0 | 
0 | 
| T5 | 
6400 | 
4369 | 
0 | 
0 | 
| T6 | 
1848 | 
1185 | 
0 | 
0 | 
| T7 | 
3978 | 
886 | 
0 | 
0 | 
| T8 | 
10824 | 
9270 | 
0 | 
0 | 
| T9 | 
2583 | 
1455 | 
0 | 
0 | 
| T10 | 
3461 | 
2142 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_spi_host0.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_spi_host0.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
50756297 | 
25778505 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
50756297 | 
25778505 | 
0 | 
0 | 
| T1 | 
21164 | 
3711 | 
0 | 
0 | 
| T2 | 
10817 | 
5680 | 
0 | 
0 | 
| T3 | 
14835 | 
9949 | 
0 | 
0 | 
| T4 | 
28881 | 
2551 | 
0 | 
0 | 
| T5 | 
25603 | 
17645 | 
0 | 
0 | 
| T6 | 
7396 | 
4743 | 
0 | 
0 | 
| T7 | 
15912 | 
3555 | 
0 | 
0 | 
| T8 | 
43302 | 
34680 | 
0 | 
0 | 
| T9 | 
10336 | 
5985 | 
0 | 
0 | 
| T10 | 
13843 | 
8600 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_spi_host1.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_spi_host1.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
25379288 | 
12882767 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
25379288 | 
12882767 | 
0 | 
0 | 
| T1 | 
10582 | 
1855 | 
0 | 
0 | 
| T2 | 
5408 | 
2837 | 
0 | 
0 | 
| T3 | 
7417 | 
4972 | 
0 | 
0 | 
| T4 | 
14445 | 
1275 | 
0 | 
0 | 
| T5 | 
12801 | 
8814 | 
0 | 
0 | 
| T6 | 
3697 | 
2371 | 
0 | 
0 | 
| T7 | 
7955 | 
1777 | 
0 | 
0 | 
| T8 | 
21652 | 
18714 | 
0 | 
0 | 
| T9 | 
5169 | 
2991 | 
0 | 
0 | 
| T10 | 
6923 | 
4298 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_usb.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_usb.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
25378930 | 
12874129 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
25378930 | 
12874129 | 
0 | 
0 | 
| T1 | 
10581 | 
1855 | 
0 | 
0 | 
| T2 | 
5407 | 
2836 | 
0 | 
0 | 
| T3 | 
7417 | 
4972 | 
0 | 
0 | 
| T4 | 
14452 | 
1275 | 
0 | 
0 | 
| T5 | 
12801 | 
8814 | 
0 | 
0 | 
| T6 | 
3697 | 
2371 | 
0 | 
0 | 
| T7 | 
7956 | 
1777 | 
0 | 
0 | 
| T8 | 
21652 | 
17814 | 
0 | 
0 | 
| T9 | 
5168 | 
2937 | 
0 | 
0 | 
| T10 | 
6922 | 
4297 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_usb_aon.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_usb_aon.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
1602345 | 
794906 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1602345 | 
794906 | 
0 | 
0 | 
| T1 | 
661 | 
114 | 
0 | 
0 | 
| T2 | 
337 | 
171 | 
0 | 
0 | 
| T3 | 
462 | 
305 | 
0 | 
0 | 
| T4 | 
906 | 
66 | 
0 | 
0 | 
| T5 | 
799 | 
535 | 
0 | 
0 | 
| T6 | 
230 | 
147 | 
0 | 
0 | 
| T7 | 
495 | 
109 | 
0 | 
0 | 
| T8 | 
1352 | 
1074 | 
0 | 
0 | 
| T9 | 
323 | 
181 | 
0 | 
0 | 
| T10 | 
432 | 
262 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_i2c0.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_i2c0.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
6411107 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
6411107 | 
0 | 
0 | 
| T1 | 
5289 | 
925 | 
0 | 
0 | 
| T2 | 
2702 | 
1410 | 
0 | 
0 | 
| T3 | 
3709 | 
2479 | 
0 | 
0 | 
| T4 | 
7222 | 
627 | 
0 | 
0 | 
| T5 | 
6400 | 
4381 | 
0 | 
0 | 
| T6 | 
1848 | 
1185 | 
0 | 
0 | 
| T7 | 
3978 | 
886 | 
0 | 
0 | 
| T8 | 
10824 | 
8700 | 
0 | 
0 | 
| T9 | 
2583 | 
1465 | 
0 | 
0 | 
| T10 | 
3461 | 
2142 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_i2c1.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_i2c1.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
6414872 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
6414872 | 
0 | 
0 | 
| T1 | 
5289 | 
925 | 
0 | 
0 | 
| T2 | 
2702 | 
1390 | 
0 | 
0 | 
| T3 | 
3709 | 
2479 | 
0 | 
0 | 
| T4 | 
7222 | 
627 | 
0 | 
0 | 
| T5 | 
6400 | 
4381 | 
0 | 
0 | 
| T6 | 
1848 | 
1185 | 
0 | 
0 | 
| T7 | 
3978 | 
886 | 
0 | 
0 | 
| T8 | 
10824 | 
8913 | 
0 | 
0 | 
| T9 | 
2583 | 
1488 | 
0 | 
0 | 
| T10 | 
3461 | 
2142 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_d0_i2c2.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.u_d0_i2c2.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
12689251 | 
6414068 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
12689251 | 
6414068 | 
0 | 
0 | 
| T1 | 
5289 | 
925 | 
0 | 
0 | 
| T2 | 
2702 | 
1410 | 
0 | 
0 | 
| T3 | 
3709 | 
2479 | 
0 | 
0 | 
| T4 | 
7222 | 
627 | 
0 | 
0 | 
| T5 | 
6400 | 
4381 | 
0 | 
0 | 
| T6 | 
1848 | 
1185 | 
0 | 
0 | 
| T7 | 
3978 | 
886 | 
0 | 
0 | 
| T8 | 
10824 | 
8784 | 
0 | 
0 | 
| T9 | 
2583 | 
1488 | 
0 | 
0 | 
| T10 | 
3461 | 
2142 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_rst_por_aon[0].gen_rst_por_aon_normal.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.gen_rst_por_aon[0].gen_rst_por_aon_normal.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
1602345 | 
970140 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1602345 | 
970140 | 
0 | 
0 | 
| T1 | 
661 | 
153 | 
0 | 
0 | 
| T2 | 
337 | 
214 | 
0 | 
0 | 
| T3 | 
462 | 
336 | 
0 | 
0 | 
| T4 | 
906 | 
106 | 
0 | 
0 | 
| T5 | 
799 | 
720 | 
0 | 
0 | 
| T6 | 
230 | 
151 | 
0 | 
0 | 
| T7 | 
495 | 
147 | 
0 | 
0 | 
| T8 | 
1352 | 
1273 | 
0 | 
0 | 
| T9 | 
323 | 
206 | 
0 | 
0 | 
| T10 | 
432 | 
305 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.gen_rst_por_aon[1].gen_rst_por_domain.u_prim_mubi4_sender
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 2 | 2 | 100.00 | 
| CONT_ASSIGN | 34 | 0 | 0 |  | 
| 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         unreachable    assign mubi = MuBi4Width'(mubi_i);
35                      
36                        // first generation block decides whether a flop should be present
37                        if (AsyncOn) begin : gen_flops
38                          prim_flop #(
39                            .Width(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:       T1 T2 T3 
83                        end
84                      
85         1/1            assign mubi_o = mubi4_t'(mubi_out);
           Tests:       T1 T2 T3 
Assert Coverage for Instance : tb.dut.gen_rst_por_aon[1].gen_rst_por_domain.u_prim_mubi4_sender
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
OutputsKnown_A | 
1602345 | 
951899 | 
0 | 
0 | 
OutputsKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1602345 | 
951899 | 
0 | 
0 | 
| T1 | 
661 | 
118 | 
0 | 
0 | 
| T2 | 
337 | 
210 | 
0 | 
0 | 
| T3 | 
462 | 
332 | 
0 | 
0 | 
| T4 | 
906 | 
86 | 
0 | 
0 | 
| T5 | 
799 | 
718 | 
0 | 
0 | 
| T6 | 
230 | 
149 | 
0 | 
0 | 
| T7 | 
495 | 
113 | 
0 | 
0 | 
| T8 | 
1352 | 
1271 | 
0 | 
0 | 
| T9 | 
323 | 
202 | 
0 | 
0 | 
| T10 | 
432 | 
301 | 
0 | 
0 |