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 |
872746028 |
470569963 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
872746028 |
470569963 |
0 |
0 |
T1 |
191600 |
55212 |
0 |
0 |
T2 |
110170 |
57841 |
0 |
0 |
T3 |
120782 |
76504 |
0 |
0 |
T4 |
232580 |
160837 |
0 |
0 |
T5 |
202322 |
119807 |
0 |
0 |
T6 |
485764 |
46323 |
0 |
0 |
T7 |
527036 |
473104 |
0 |
0 |
T8 |
254358 |
50055 |
0 |
0 |
T9 |
103790 |
59137 |
0 |
0 |
T10 |
198942 |
129559 |
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 |
53869403 |
32483069 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
53869403 |
32483069 |
0 |
0 |
T1 |
11828 |
3612 |
0 |
0 |
T2 |
6802 |
4116 |
0 |
0 |
T3 |
7457 |
4764 |
0 |
0 |
T4 |
14358 |
10349 |
0 |
0 |
T5 |
12493 |
8306 |
0 |
0 |
T6 |
29979 |
3266 |
0 |
0 |
T7 |
32535 |
29811 |
0 |
0 |
T8 |
15702 |
3532 |
0 |
0 |
T9 |
6408 |
3692 |
0 |
0 |
T10 |
12282 |
9564 |
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 |
51712842 |
31182462 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
51712842 |
31182462 |
0 |
0 |
T1 |
11355 |
3467 |
0 |
0 |
T2 |
6531 |
3952 |
0 |
0 |
T3 |
7160 |
4574 |
0 |
0 |
T4 |
13783 |
9935 |
0 |
0 |
T5 |
11992 |
7973 |
0 |
0 |
T6 |
28795 |
3137 |
0 |
0 |
T7 |
31233 |
28618 |
0 |
0 |
T8 |
15074 |
3390 |
0 |
0 |
T9 |
6152 |
3544 |
0 |
0 |
T10 |
11790 |
9181 |
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 |
25857601 |
15587528 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
25857601 |
15587528 |
0 |
0 |
T1 |
5677 |
1733 |
0 |
0 |
T2 |
3264 |
1976 |
0 |
0 |
T3 |
3579 |
2287 |
0 |
0 |
T4 |
6892 |
4967 |
0 |
0 |
T5 |
5993 |
3982 |
0 |
0 |
T6 |
14390 |
1557 |
0 |
0 |
T7 |
15616 |
14309 |
0 |
0 |
T8 |
7537 |
1694 |
0 |
0 |
T9 |
3075 |
1771 |
0 |
0 |
T10 |
5895 |
4590 |
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 |
12928335 |
7790602 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
7790602 |
0 |
0 |
T1 |
2838 |
865 |
0 |
0 |
T2 |
1631 |
987 |
0 |
0 |
T3 |
1788 |
1142 |
0 |
0 |
T4 |
3444 |
2483 |
0 |
0 |
T5 |
2996 |
1992 |
0 |
0 |
T6 |
7197 |
782 |
0 |
0 |
T7 |
7807 |
7154 |
0 |
0 |
T8 |
3767 |
846 |
0 |
0 |
T9 |
1537 |
885 |
0 |
0 |
T10 |
2947 |
2295 |
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 |
25857430 |
15587701 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
25857430 |
15587701 |
0 |
0 |
T1 |
5677 |
1733 |
0 |
0 |
T2 |
3264 |
1976 |
0 |
0 |
T3 |
3579 |
2287 |
0 |
0 |
T4 |
6894 |
4968 |
0 |
0 |
T5 |
5993 |
3982 |
0 |
0 |
T6 |
14394 |
1557 |
0 |
0 |
T7 |
15616 |
14309 |
0 |
0 |
T8 |
7537 |
1694 |
0 |
0 |
T9 |
3076 |
1771 |
0 |
0 |
T10 |
5894 |
4590 |
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 |
53869403 |
28848226 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
53869403 |
28848226 |
0 |
0 |
T1 |
11828 |
3596 |
0 |
0 |
T2 |
6802 |
3507 |
0 |
0 |
T3 |
7457 |
4756 |
0 |
0 |
T4 |
14358 |
9952 |
0 |
0 |
T5 |
12493 |
7305 |
0 |
0 |
T6 |
29979 |
3173 |
0 |
0 |
T7 |
32535 |
29807 |
0 |
0 |
T8 |
15702 |
3518 |
0 |
0 |
T9 |
6408 |
3685 |
0 |
0 |
T10 |
12282 |
7718 |
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 |
53869403 |
28127376 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
53869403 |
28127376 |
0 |
0 |
T1 |
11828 |
3228 |
0 |
0 |
T2 |
6802 |
3414 |
0 |
0 |
T3 |
7457 |
4690 |
0 |
0 |
T4 |
14358 |
9787 |
0 |
0 |
T5 |
12493 |
7139 |
0 |
0 |
T6 |
29979 |
2508 |
0 |
0 |
T7 |
32535 |
29740 |
0 |
0 |
T8 |
15702 |
2685 |
0 |
0 |
T9 |
6408 |
3618 |
0 |
0 |
T10 |
12282 |
7592 |
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 |
53869403 |
28848373 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
53869403 |
28848373 |
0 |
0 |
T1 |
11828 |
3596 |
0 |
0 |
T2 |
6802 |
3507 |
0 |
0 |
T3 |
7457 |
4756 |
0 |
0 |
T4 |
14358 |
9952 |
0 |
0 |
T5 |
12493 |
7305 |
0 |
0 |
T6 |
29979 |
3172 |
0 |
0 |
T7 |
32535 |
29807 |
0 |
0 |
T8 |
15702 |
3518 |
0 |
0 |
T9 |
6408 |
3685 |
0 |
0 |
T10 |
12282 |
7718 |
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 |
53869403 |
28127420 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
53869403 |
28127420 |
0 |
0 |
T1 |
11828 |
3228 |
0 |
0 |
T2 |
6802 |
3414 |
0 |
0 |
T3 |
7457 |
4690 |
0 |
0 |
T4 |
14358 |
9787 |
0 |
0 |
T5 |
12493 |
7139 |
0 |
0 |
T6 |
29979 |
2509 |
0 |
0 |
T7 |
32535 |
29740 |
0 |
0 |
T8 |
15702 |
2685 |
0 |
0 |
T9 |
6408 |
3618 |
0 |
0 |
T10 |
12282 |
7592 |
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 |
1633692 |
856912 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
1633692 |
856912 |
0 |
0 |
T1 |
354 |
106 |
0 |
0 |
T2 |
203 |
101 |
0 |
0 |
T3 |
222 |
141 |
0 |
0 |
T4 |
429 |
291 |
0 |
0 |
T5 |
373 |
211 |
0 |
0 |
T6 |
901 |
82 |
0 |
0 |
T7 |
974 |
893 |
0 |
0 |
T8 |
471 |
104 |
0 |
0 |
T9 |
190 |
109 |
0 |
0 |
T10 |
366 |
224 |
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 |
51712842 |
27694754 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
51712842 |
27694754 |
0 |
0 |
T1 |
11355 |
3451 |
0 |
0 |
T2 |
6531 |
3365 |
0 |
0 |
T3 |
7160 |
4566 |
0 |
0 |
T4 |
13783 |
9553 |
0 |
0 |
T5 |
11992 |
7011 |
0 |
0 |
T6 |
28795 |
3088 |
0 |
0 |
T7 |
31233 |
28614 |
0 |
0 |
T8 |
15074 |
3376 |
0 |
0 |
T9 |
6152 |
3537 |
0 |
0 |
T10 |
11790 |
7408 |
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 |
51712842 |
27002203 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
51712842 |
27002203 |
0 |
0 |
T1 |
11355 |
3099 |
0 |
0 |
T2 |
6531 |
3277 |
0 |
0 |
T3 |
7160 |
4502 |
0 |
0 |
T4 |
13783 |
9393 |
0 |
0 |
T5 |
11992 |
6851 |
0 |
0 |
T6 |
28795 |
2448 |
0 |
0 |
T7 |
31233 |
28550 |
0 |
0 |
T8 |
15074 |
2576 |
0 |
0 |
T9 |
6152 |
3473 |
0 |
0 |
T10 |
11790 |
7288 |
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 |
25857601 |
13837095 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
25857601 |
13837095 |
0 |
0 |
T1 |
5677 |
1725 |
0 |
0 |
T2 |
3264 |
1681 |
0 |
0 |
T3 |
3579 |
2283 |
0 |
0 |
T4 |
6892 |
4775 |
0 |
0 |
T5 |
5993 |
3500 |
0 |
0 |
T6 |
14390 |
1537 |
0 |
0 |
T7 |
15616 |
14307 |
0 |
0 |
T8 |
7537 |
1688 |
0 |
0 |
T9 |
3075 |
1768 |
0 |
0 |
T10 |
5895 |
3700 |
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 |
25857601 |
13491111 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
25857601 |
13491111 |
0 |
0 |
T1 |
5677 |
1549 |
0 |
0 |
T2 |
3264 |
1637 |
0 |
0 |
T3 |
3579 |
2251 |
0 |
0 |
T4 |
6892 |
4695 |
0 |
0 |
T5 |
5993 |
3420 |
0 |
0 |
T6 |
14390 |
1217 |
0 |
0 |
T7 |
15616 |
14275 |
0 |
0 |
T8 |
7537 |
1288 |
0 |
0 |
T9 |
3075 |
1736 |
0 |
0 |
T10 |
5895 |
3640 |
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 |
12928335 |
6890906 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
6890906 |
0 |
0 |
T1 |
2838 |
861 |
0 |
0 |
T2 |
1631 |
835 |
0 |
0 |
T3 |
1788 |
1140 |
0 |
0 |
T4 |
3444 |
2379 |
0 |
0 |
T5 |
2996 |
1743 |
0 |
0 |
T6 |
7197 |
752 |
0 |
0 |
T7 |
7807 |
7152 |
0 |
0 |
T8 |
3767 |
842 |
0 |
0 |
T9 |
1537 |
883 |
0 |
0 |
T10 |
2947 |
1839 |
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 |
12928335 |
6717826 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
6717826 |
0 |
0 |
T1 |
2838 |
773 |
0 |
0 |
T2 |
1631 |
813 |
0 |
0 |
T3 |
1788 |
1124 |
0 |
0 |
T4 |
3444 |
2339 |
0 |
0 |
T5 |
2996 |
1703 |
0 |
0 |
T6 |
7197 |
592 |
0 |
0 |
T7 |
7807 |
7136 |
0 |
0 |
T8 |
3767 |
642 |
0 |
0 |
T9 |
1537 |
867 |
0 |
0 |
T10 |
2947 |
1809 |
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 |
12928335 |
6890906 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
6890906 |
0 |
0 |
T1 |
2838 |
861 |
0 |
0 |
T2 |
1631 |
835 |
0 |
0 |
T3 |
1788 |
1140 |
0 |
0 |
T4 |
3444 |
2379 |
0 |
0 |
T5 |
2996 |
1743 |
0 |
0 |
T6 |
7197 |
752 |
0 |
0 |
T7 |
7807 |
7152 |
0 |
0 |
T8 |
3767 |
842 |
0 |
0 |
T9 |
1537 |
883 |
0 |
0 |
T10 |
2947 |
1839 |
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 |
12928335 |
6717826 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
6717826 |
0 |
0 |
T1 |
2838 |
773 |
0 |
0 |
T2 |
1631 |
813 |
0 |
0 |
T3 |
1788 |
1124 |
0 |
0 |
T4 |
3444 |
2339 |
0 |
0 |
T5 |
2996 |
1703 |
0 |
0 |
T6 |
7197 |
592 |
0 |
0 |
T7 |
7807 |
7136 |
0 |
0 |
T8 |
3767 |
642 |
0 |
0 |
T9 |
1537 |
867 |
0 |
0 |
T10 |
2947 |
1809 |
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 |
25857430 |
13837325 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
25857430 |
13837325 |
0 |
0 |
T1 |
5677 |
1725 |
0 |
0 |
T2 |
3264 |
1681 |
0 |
0 |
T3 |
3579 |
2283 |
0 |
0 |
T4 |
6894 |
4776 |
0 |
0 |
T5 |
5993 |
3500 |
0 |
0 |
T6 |
14394 |
1537 |
0 |
0 |
T7 |
15616 |
14307 |
0 |
0 |
T8 |
7537 |
1688 |
0 |
0 |
T9 |
3076 |
1768 |
0 |
0 |
T10 |
5894 |
3700 |
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 |
25857430 |
13490929 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
25857430 |
13490929 |
0 |
0 |
T1 |
5677 |
1549 |
0 |
0 |
T2 |
3264 |
1637 |
0 |
0 |
T3 |
3579 |
2251 |
0 |
0 |
T4 |
6894 |
4696 |
0 |
0 |
T5 |
5993 |
3420 |
0 |
0 |
T6 |
14394 |
1217 |
0 |
0 |
T7 |
15616 |
14275 |
0 |
0 |
T8 |
7537 |
1288 |
0 |
0 |
T9 |
3076 |
1736 |
0 |
0 |
T10 |
5894 |
3640 |
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 |
53869403 |
27830870 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
53869403 |
27830870 |
0 |
0 |
T1 |
11828 |
3228 |
0 |
0 |
T2 |
6802 |
3360 |
0 |
0 |
T3 |
7457 |
4690 |
0 |
0 |
T4 |
14358 |
9649 |
0 |
0 |
T5 |
12493 |
7034 |
0 |
0 |
T6 |
29979 |
2550 |
0 |
0 |
T7 |
32535 |
29740 |
0 |
0 |
T8 |
15702 |
2685 |
0 |
0 |
T9 |
6408 |
3618 |
0 |
0 |
T10 |
12282 |
7430 |
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 |
12928335 |
6819436 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
6819436 |
0 |
0 |
T1 |
2838 |
861 |
0 |
0 |
T2 |
1631 |
822 |
0 |
0 |
T3 |
1788 |
1140 |
0 |
0 |
T4 |
3444 |
2346 |
0 |
0 |
T5 |
2996 |
1718 |
0 |
0 |
T6 |
7197 |
762 |
0 |
0 |
T7 |
7807 |
7152 |
0 |
0 |
T8 |
3767 |
842 |
0 |
0 |
T9 |
1537 |
883 |
0 |
0 |
T10 |
2947 |
1800 |
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 |
12928335 |
6565903 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
6565903 |
0 |
0 |
T1 |
2838 |
773 |
0 |
0 |
T2 |
1631 |
801 |
0 |
0 |
T3 |
1788 |
1124 |
0 |
0 |
T4 |
3444 |
2339 |
0 |
0 |
T5 |
2996 |
1703 |
0 |
0 |
T6 |
7197 |
602 |
0 |
0 |
T7 |
7807 |
6422 |
0 |
0 |
T8 |
3767 |
642 |
0 |
0 |
T9 |
1537 |
867 |
0 |
0 |
T10 |
2947 |
1808 |
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 |
51712842 |
26413537 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
51712842 |
26413537 |
0 |
0 |
T1 |
11355 |
3099 |
0 |
0 |
T2 |
6531 |
3277 |
0 |
0 |
T3 |
7160 |
4502 |
0 |
0 |
T4 |
13783 |
9393 |
0 |
0 |
T5 |
11992 |
6851 |
0 |
0 |
T6 |
28795 |
2448 |
0 |
0 |
T7 |
31233 |
26049 |
0 |
0 |
T8 |
15074 |
2576 |
0 |
0 |
T9 |
6152 |
3473 |
0 |
0 |
T10 |
11790 |
7288 |
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 |
25857601 |
13200830 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
25857601 |
13200830 |
0 |
0 |
T1 |
5677 |
1549 |
0 |
0 |
T2 |
3264 |
1637 |
0 |
0 |
T3 |
3579 |
2251 |
0 |
0 |
T4 |
6892 |
4695 |
0 |
0 |
T5 |
5993 |
3364 |
0 |
0 |
T6 |
14390 |
1217 |
0 |
0 |
T7 |
15616 |
13173 |
0 |
0 |
T8 |
7537 |
1288 |
0 |
0 |
T9 |
3075 |
1736 |
0 |
0 |
T10 |
5895 |
3640 |
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 |
25857430 |
13197202 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
25857430 |
13197202 |
0 |
0 |
T1 |
5677 |
1549 |
0 |
0 |
T2 |
3264 |
1637 |
0 |
0 |
T3 |
3579 |
2251 |
0 |
0 |
T4 |
6894 |
4696 |
0 |
0 |
T5 |
5993 |
3420 |
0 |
0 |
T6 |
14394 |
1217 |
0 |
0 |
T7 |
15616 |
12288 |
0 |
0 |
T8 |
7537 |
1288 |
0 |
0 |
T9 |
3076 |
1736 |
0 |
0 |
T10 |
5894 |
3640 |
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 |
1633692 |
817214 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
1633692 |
817214 |
0 |
0 |
T1 |
354 |
95 |
0 |
0 |
T2 |
203 |
98 |
0 |
0 |
T3 |
222 |
139 |
0 |
0 |
T4 |
429 |
287 |
0 |
0 |
T5 |
373 |
204 |
0 |
0 |
T6 |
901 |
62 |
0 |
0 |
T7 |
974 |
797 |
0 |
0 |
T8 |
471 |
79 |
0 |
0 |
T9 |
190 |
107 |
0 |
0 |
T10 |
366 |
218 |
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 |
12928335 |
6583094 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
6583094 |
0 |
0 |
T1 |
2838 |
773 |
0 |
0 |
T2 |
1631 |
813 |
0 |
0 |
T3 |
1788 |
1124 |
0 |
0 |
T4 |
3444 |
2339 |
0 |
0 |
T5 |
2996 |
1703 |
0 |
0 |
T6 |
7197 |
602 |
0 |
0 |
T7 |
7807 |
6244 |
0 |
0 |
T8 |
3767 |
642 |
0 |
0 |
T9 |
1537 |
867 |
0 |
0 |
T10 |
2947 |
1809 |
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 |
12928335 |
6575331 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
6575331 |
0 |
0 |
T1 |
2838 |
773 |
0 |
0 |
T2 |
1631 |
813 |
0 |
0 |
T3 |
1788 |
1124 |
0 |
0 |
T4 |
3444 |
2339 |
0 |
0 |
T5 |
2996 |
1683 |
0 |
0 |
T6 |
7197 |
602 |
0 |
0 |
T7 |
7807 |
6152 |
0 |
0 |
T8 |
3767 |
642 |
0 |
0 |
T9 |
1537 |
867 |
0 |
0 |
T10 |
2947 |
1809 |
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 |
12928335 |
6585042 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
12928335 |
6585042 |
0 |
0 |
T1 |
2838 |
773 |
0 |
0 |
T2 |
1631 |
813 |
0 |
0 |
T3 |
1788 |
1124 |
0 |
0 |
T4 |
3444 |
2339 |
0 |
0 |
T5 |
2996 |
1703 |
0 |
0 |
T6 |
7197 |
602 |
0 |
0 |
T7 |
7807 |
6207 |
0 |
0 |
T8 |
3767 |
642 |
0 |
0 |
T9 |
1537 |
867 |
0 |
0 |
T10 |
2947 |
1809 |
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 |
1633692 |
994645 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
1633692 |
994645 |
0 |
0 |
T1 |
354 |
110 |
0 |
0 |
T2 |
203 |
124 |
0 |
0 |
T3 |
222 |
143 |
0 |
0 |
T4 |
429 |
312 |
0 |
0 |
T5 |
373 |
250 |
0 |
0 |
T6 |
901 |
102 |
0 |
0 |
T7 |
974 |
895 |
0 |
0 |
T8 |
471 |
108 |
0 |
0 |
T9 |
190 |
111 |
0 |
0 |
T10 |
366 |
287 |
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 |
1633692 |
976309 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
1633692 |
976309 |
0 |
0 |
T1 |
354 |
99 |
0 |
0 |
T2 |
203 |
122 |
0 |
0 |
T3 |
222 |
141 |
0 |
0 |
T4 |
429 |
308 |
0 |
0 |
T5 |
373 |
246 |
0 |
0 |
T6 |
901 |
82 |
0 |
0 |
T7 |
974 |
893 |
0 |
0 |
T8 |
471 |
83 |
0 |
0 |
T9 |
190 |
109 |
0 |
0 |
T10 |
366 |
285 |
0 |
0 |