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 |
787040980 |
423010767 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
787040980 |
423010767 |
0 |
0 |
T1 |
172714 |
63756 |
0 |
0 |
T2 |
272626 |
187108 |
0 |
0 |
T3 |
139102 |
94616 |
0 |
0 |
T4 |
245128 |
173592 |
0 |
0 |
T5 |
138362 |
67874 |
0 |
0 |
T6 |
315538 |
241409 |
0 |
0 |
T7 |
485800 |
46077 |
0 |
0 |
T8 |
187192 |
113541 |
0 |
0 |
T9 |
485956 |
45790 |
0 |
0 |
T10 |
612772 |
553298 |
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 |
48579864 |
29293334 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
48579864 |
29293334 |
0 |
0 |
T1 |
10663 |
4564 |
0 |
0 |
T2 |
16831 |
14160 |
0 |
0 |
T3 |
8589 |
5881 |
0 |
0 |
T4 |
15136 |
11115 |
0 |
0 |
T5 |
8543 |
4406 |
0 |
0 |
T6 |
19480 |
15485 |
0 |
0 |
T7 |
29980 |
3266 |
0 |
0 |
T8 |
11556 |
7595 |
0 |
0 |
T9 |
30002 |
3228 |
0 |
0 |
T10 |
37827 |
35106 |
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 |
46634603 |
28120560 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
46634603 |
28120560 |
0 |
0 |
T1 |
10236 |
4381 |
0 |
0 |
T2 |
16156 |
13593 |
0 |
0 |
T3 |
8244 |
5646 |
0 |
0 |
T4 |
14523 |
10663 |
0 |
0 |
T5 |
8201 |
4230 |
0 |
0 |
T6 |
18698 |
14864 |
0 |
0 |
T7 |
28802 |
3134 |
0 |
0 |
T8 |
11097 |
7293 |
0 |
0 |
T9 |
28794 |
3097 |
0 |
0 |
T10 |
36313 |
33700 |
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 |
23318350 |
14056819 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
23318350 |
14056819 |
0 |
0 |
T1 |
5118 |
2189 |
0 |
0 |
T2 |
8077 |
6796 |
0 |
0 |
T3 |
4121 |
2822 |
0 |
0 |
T4 |
7264 |
5334 |
0 |
0 |
T5 |
4100 |
2115 |
0 |
0 |
T6 |
9349 |
7432 |
0 |
0 |
T7 |
14398 |
1560 |
0 |
0 |
T8 |
5545 |
3643 |
0 |
0 |
T9 |
14398 |
1542 |
0 |
0 |
T10 |
18157 |
16850 |
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 |
11658812 |
7025852 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
7025852 |
0 |
0 |
T1 |
2558 |
1094 |
0 |
0 |
T2 |
4038 |
3398 |
0 |
0 |
T3 |
2060 |
1411 |
0 |
0 |
T4 |
3630 |
2666 |
0 |
0 |
T5 |
2048 |
1056 |
0 |
0 |
T6 |
4673 |
3715 |
0 |
0 |
T7 |
7194 |
777 |
0 |
0 |
T8 |
2772 |
1821 |
0 |
0 |
T9 |
7198 |
775 |
0 |
0 |
T10 |
9077 |
8425 |
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 |
23318412 |
14057201 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
23318412 |
14057201 |
0 |
0 |
T1 |
5117 |
2189 |
0 |
0 |
T2 |
8078 |
6796 |
0 |
0 |
T3 |
4121 |
2822 |
0 |
0 |
T4 |
7264 |
5334 |
0 |
0 |
T5 |
4100 |
2115 |
0 |
0 |
T6 |
9352 |
7435 |
0 |
0 |
T7 |
14392 |
1560 |
0 |
0 |
T8 |
5546 |
3644 |
0 |
0 |
T9 |
14397 |
1542 |
0 |
0 |
T10 |
18157 |
16850 |
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 |
48579864 |
25933319 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
48579864 |
25933319 |
0 |
0 |
T1 |
10663 |
4554 |
0 |
0 |
T2 |
16831 |
11029 |
0 |
0 |
T3 |
8589 |
5875 |
0 |
0 |
T4 |
15136 |
10743 |
0 |
0 |
T5 |
8543 |
4395 |
0 |
0 |
T6 |
19480 |
14885 |
0 |
0 |
T7 |
29980 |
3154 |
0 |
0 |
T8 |
11556 |
6989 |
0 |
0 |
T9 |
30002 |
3143 |
0 |
0 |
T10 |
37827 |
35101 |
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 |
48579864 |
25277612 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
48579864 |
25277612 |
0 |
0 |
T1 |
10663 |
3354 |
0 |
0 |
T2 |
16831 |
10886 |
0 |
0 |
T3 |
8589 |
5808 |
0 |
0 |
T4 |
15136 |
10577 |
0 |
0 |
T5 |
8543 |
3996 |
0 |
0 |
T6 |
19480 |
14720 |
0 |
0 |
T7 |
29980 |
2488 |
0 |
0 |
T8 |
11556 |
6823 |
0 |
0 |
T9 |
30002 |
2476 |
0 |
0 |
T10 |
37827 |
35034 |
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 |
48579864 |
25933557 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
48579864 |
25933557 |
0 |
0 |
T1 |
10663 |
4554 |
0 |
0 |
T2 |
16831 |
11029 |
0 |
0 |
T3 |
8589 |
5875 |
0 |
0 |
T4 |
15136 |
10743 |
0 |
0 |
T5 |
8543 |
4395 |
0 |
0 |
T6 |
19480 |
14885 |
0 |
0 |
T7 |
29980 |
3154 |
0 |
0 |
T8 |
11556 |
6989 |
0 |
0 |
T9 |
30002 |
3142 |
0 |
0 |
T10 |
37827 |
35101 |
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 |
48579864 |
25277534 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
48579864 |
25277534 |
0 |
0 |
T1 |
10663 |
3354 |
0 |
0 |
T2 |
16831 |
10886 |
0 |
0 |
T3 |
8589 |
5808 |
0 |
0 |
T4 |
15136 |
10577 |
0 |
0 |
T5 |
8543 |
3996 |
0 |
0 |
T6 |
19480 |
14720 |
0 |
0 |
T7 |
29980 |
2489 |
0 |
0 |
T8 |
11556 |
6823 |
0 |
0 |
T9 |
30002 |
2475 |
0 |
0 |
T10 |
37827 |
35034 |
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 |
1472054 |
769009 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
1472054 |
769009 |
0 |
0 |
T1 |
318 |
134 |
0 |
0 |
T2 |
504 |
322 |
0 |
0 |
T3 |
256 |
175 |
0 |
0 |
T4 |
452 |
316 |
0 |
0 |
T5 |
255 |
130 |
0 |
0 |
T6 |
583 |
442 |
0 |
0 |
T7 |
903 |
82 |
0 |
0 |
T8 |
346 |
204 |
0 |
0 |
T9 |
902 |
81 |
0 |
0 |
T10 |
1133 |
1052 |
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 |
46634603 |
24896388 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
46634603 |
24896388 |
0 |
0 |
T1 |
10236 |
4371 |
0 |
0 |
T2 |
16156 |
10587 |
0 |
0 |
T3 |
8244 |
5639 |
0 |
0 |
T4 |
14523 |
10307 |
0 |
0 |
T5 |
8201 |
4220 |
0 |
0 |
T6 |
18698 |
14288 |
0 |
0 |
T7 |
28802 |
3068 |
0 |
0 |
T8 |
11097 |
6713 |
0 |
0 |
T9 |
28794 |
3054 |
0 |
0 |
T10 |
36313 |
33696 |
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 |
46634603 |
24266992 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
46634603 |
24266992 |
0 |
0 |
T1 |
10236 |
3219 |
0 |
0 |
T2 |
16156 |
10451 |
0 |
0 |
T3 |
8244 |
5575 |
0 |
0 |
T4 |
14523 |
10147 |
0 |
0 |
T5 |
8201 |
3836 |
0 |
0 |
T6 |
18698 |
14128 |
0 |
0 |
T7 |
28802 |
2428 |
0 |
0 |
T8 |
11097 |
6553 |
0 |
0 |
T9 |
28794 |
2414 |
0 |
0 |
T10 |
36313 |
33632 |
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 |
23318350 |
12438641 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
23318350 |
12438641 |
0 |
0 |
T1 |
5118 |
2185 |
0 |
0 |
T2 |
8077 |
5289 |
0 |
0 |
T3 |
4121 |
2819 |
0 |
0 |
T4 |
7264 |
5154 |
0 |
0 |
T5 |
4100 |
2109 |
0 |
0 |
T6 |
9349 |
7142 |
0 |
0 |
T7 |
14398 |
1530 |
0 |
0 |
T8 |
5545 |
3351 |
0 |
0 |
T9 |
14398 |
1522 |
0 |
0 |
T10 |
18157 |
16848 |
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 |
23318350 |
12124209 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
23318350 |
12124209 |
0 |
0 |
T1 |
5118 |
1609 |
0 |
0 |
T2 |
8077 |
5221 |
0 |
0 |
T3 |
4121 |
2787 |
0 |
0 |
T4 |
7264 |
5074 |
0 |
0 |
T5 |
4100 |
1917 |
0 |
0 |
T6 |
9349 |
7062 |
0 |
0 |
T7 |
14398 |
1210 |
0 |
0 |
T8 |
5545 |
3271 |
0 |
0 |
T9 |
14398 |
1202 |
0 |
0 |
T10 |
18157 |
16816 |
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 |
11658812 |
6194566 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
6194566 |
0 |
0 |
T1 |
2558 |
1090 |
0 |
0 |
T2 |
4038 |
2630 |
0 |
0 |
T3 |
2060 |
1409 |
0 |
0 |
T4 |
3630 |
2568 |
0 |
0 |
T5 |
2048 |
1052 |
0 |
0 |
T6 |
4673 |
3563 |
0 |
0 |
T7 |
7194 |
747 |
0 |
0 |
T8 |
2772 |
1668 |
0 |
0 |
T9 |
7198 |
745 |
0 |
0 |
T10 |
9077 |
8423 |
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 |
11658812 |
6037176 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
6037176 |
0 |
0 |
T1 |
2558 |
802 |
0 |
0 |
T2 |
4038 |
2596 |
0 |
0 |
T3 |
2060 |
1393 |
0 |
0 |
T4 |
3630 |
2528 |
0 |
0 |
T5 |
2048 |
956 |
0 |
0 |
T6 |
4673 |
3523 |
0 |
0 |
T7 |
7194 |
587 |
0 |
0 |
T8 |
2772 |
1628 |
0 |
0 |
T9 |
7198 |
585 |
0 |
0 |
T10 |
9077 |
8407 |
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 |
11658812 |
6194566 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
6194566 |
0 |
0 |
T1 |
2558 |
1090 |
0 |
0 |
T2 |
4038 |
2630 |
0 |
0 |
T3 |
2060 |
1409 |
0 |
0 |
T4 |
3630 |
2568 |
0 |
0 |
T5 |
2048 |
1052 |
0 |
0 |
T6 |
4673 |
3563 |
0 |
0 |
T7 |
7194 |
747 |
0 |
0 |
T8 |
2772 |
1668 |
0 |
0 |
T9 |
7198 |
745 |
0 |
0 |
T10 |
9077 |
8423 |
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 |
11658812 |
6037176 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
6037176 |
0 |
0 |
T1 |
2558 |
802 |
0 |
0 |
T2 |
4038 |
2596 |
0 |
0 |
T3 |
2060 |
1393 |
0 |
0 |
T4 |
3630 |
2528 |
0 |
0 |
T5 |
2048 |
956 |
0 |
0 |
T6 |
4673 |
3523 |
0 |
0 |
T7 |
7194 |
587 |
0 |
0 |
T8 |
2772 |
1628 |
0 |
0 |
T9 |
7198 |
585 |
0 |
0 |
T10 |
9077 |
8407 |
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 |
23318412 |
12438962 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
23318412 |
12438962 |
0 |
0 |
T1 |
5117 |
2185 |
0 |
0 |
T2 |
8078 |
5289 |
0 |
0 |
T3 |
4121 |
2819 |
0 |
0 |
T4 |
7264 |
5154 |
0 |
0 |
T5 |
4100 |
2109 |
0 |
0 |
T6 |
9352 |
7145 |
0 |
0 |
T7 |
14392 |
1530 |
0 |
0 |
T8 |
5546 |
3352 |
0 |
0 |
T9 |
14397 |
1522 |
0 |
0 |
T10 |
18157 |
16848 |
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 |
23318412 |
12124038 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
23318412 |
12124038 |
0 |
0 |
T1 |
5117 |
1609 |
0 |
0 |
T2 |
8078 |
5221 |
0 |
0 |
T3 |
4121 |
2787 |
0 |
0 |
T4 |
7264 |
5074 |
0 |
0 |
T5 |
4100 |
1917 |
0 |
0 |
T6 |
9352 |
7065 |
0 |
0 |
T7 |
14392 |
1210 |
0 |
0 |
T8 |
5546 |
3272 |
0 |
0 |
T9 |
14397 |
1202 |
0 |
0 |
T10 |
18157 |
16816 |
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 |
48579864 |
25003334 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
48579864 |
25003334 |
0 |
0 |
T1 |
10663 |
3354 |
0 |
0 |
T2 |
16831 |
10688 |
0 |
0 |
T3 |
8589 |
5808 |
0 |
0 |
T4 |
15136 |
10490 |
0 |
0 |
T5 |
8543 |
3996 |
0 |
0 |
T6 |
19480 |
14685 |
0 |
0 |
T7 |
29980 |
2530 |
0 |
0 |
T8 |
11556 |
6776 |
0 |
0 |
T9 |
30002 |
2517 |
0 |
0 |
T10 |
37827 |
35034 |
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 |
11658812 |
6128492 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
6128492 |
0 |
0 |
T1 |
2558 |
1090 |
0 |
0 |
T2 |
4038 |
2582 |
0 |
0 |
T3 |
2060 |
1409 |
0 |
0 |
T4 |
3630 |
2547 |
0 |
0 |
T5 |
2048 |
1052 |
0 |
0 |
T6 |
4673 |
3555 |
0 |
0 |
T7 |
7194 |
757 |
0 |
0 |
T8 |
2772 |
1657 |
0 |
0 |
T9 |
7198 |
755 |
0 |
0 |
T10 |
9077 |
8423 |
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 |
11658812 |
5880456 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
5880456 |
0 |
0 |
T1 |
2558 |
802 |
0 |
0 |
T2 |
4038 |
2585 |
0 |
0 |
T3 |
2060 |
1393 |
0 |
0 |
T4 |
3630 |
2528 |
0 |
0 |
T5 |
2048 |
956 |
0 |
0 |
T6 |
4673 |
3395 |
0 |
0 |
T7 |
7194 |
597 |
0 |
0 |
T8 |
2772 |
1628 |
0 |
0 |
T9 |
7198 |
595 |
0 |
0 |
T10 |
9077 |
7499 |
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 |
46634603 |
23664579 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
46634603 |
23664579 |
0 |
0 |
T1 |
10236 |
3219 |
0 |
0 |
T2 |
16156 |
10451 |
0 |
0 |
T3 |
8244 |
5575 |
0 |
0 |
T4 |
14523 |
10147 |
0 |
0 |
T5 |
8201 |
3836 |
0 |
0 |
T6 |
18698 |
14128 |
0 |
0 |
T7 |
28802 |
2428 |
0 |
0 |
T8 |
11097 |
6553 |
0 |
0 |
T9 |
28794 |
2414 |
0 |
0 |
T10 |
36313 |
29419 |
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 |
23318350 |
11827528 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
23318350 |
11827528 |
0 |
0 |
T1 |
5118 |
1609 |
0 |
0 |
T2 |
8077 |
5221 |
0 |
0 |
T3 |
4121 |
2787 |
0 |
0 |
T4 |
7264 |
5074 |
0 |
0 |
T5 |
4100 |
1917 |
0 |
0 |
T6 |
9349 |
7062 |
0 |
0 |
T7 |
14398 |
1210 |
0 |
0 |
T8 |
5545 |
3214 |
0 |
0 |
T9 |
14398 |
1202 |
0 |
0 |
T10 |
18157 |
13936 |
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 |
23318412 |
11828350 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
23318412 |
11828350 |
0 |
0 |
T1 |
5117 |
1609 |
0 |
0 |
T2 |
8078 |
5221 |
0 |
0 |
T3 |
4121 |
2787 |
0 |
0 |
T4 |
7264 |
5074 |
0 |
0 |
T5 |
4100 |
1917 |
0 |
0 |
T6 |
9352 |
7065 |
0 |
0 |
T7 |
14392 |
1210 |
0 |
0 |
T8 |
5546 |
3272 |
0 |
0 |
T9 |
14397 |
1202 |
0 |
0 |
T10 |
18157 |
14169 |
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 |
1472054 |
731608 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
1472054 |
731608 |
0 |
0 |
T1 |
318 |
98 |
0 |
0 |
T2 |
504 |
319 |
0 |
0 |
T3 |
256 |
173 |
0 |
0 |
T4 |
452 |
312 |
0 |
0 |
T5 |
255 |
118 |
0 |
0 |
T6 |
583 |
437 |
0 |
0 |
T7 |
903 |
62 |
0 |
0 |
T8 |
346 |
194 |
0 |
0 |
T9 |
902 |
61 |
0 |
0 |
T10 |
1133 |
877 |
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 |
11658812 |
5897737 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
5897737 |
0 |
0 |
T1 |
2558 |
802 |
0 |
0 |
T2 |
4038 |
2596 |
0 |
0 |
T3 |
2060 |
1393 |
0 |
0 |
T4 |
3630 |
2528 |
0 |
0 |
T5 |
2048 |
956 |
0 |
0 |
T6 |
4673 |
3523 |
0 |
0 |
T7 |
7194 |
597 |
0 |
0 |
T8 |
2772 |
1628 |
0 |
0 |
T9 |
7198 |
595 |
0 |
0 |
T10 |
9077 |
6974 |
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 |
11658812 |
5891065 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
5891065 |
0 |
0 |
T1 |
2558 |
802 |
0 |
0 |
T2 |
4038 |
2596 |
0 |
0 |
T3 |
2060 |
1393 |
0 |
0 |
T4 |
3630 |
2528 |
0 |
0 |
T5 |
2048 |
956 |
0 |
0 |
T6 |
4673 |
3523 |
0 |
0 |
T7 |
7194 |
597 |
0 |
0 |
T8 |
2772 |
1628 |
0 |
0 |
T9 |
7198 |
595 |
0 |
0 |
T10 |
9077 |
7101 |
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 |
11658812 |
5885013 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
11658812 |
5885013 |
0 |
0 |
T1 |
2558 |
802 |
0 |
0 |
T2 |
4038 |
2596 |
0 |
0 |
T3 |
2060 |
1393 |
0 |
0 |
T4 |
3630 |
2528 |
0 |
0 |
T5 |
2048 |
956 |
0 |
0 |
T6 |
4673 |
3523 |
0 |
0 |
T7 |
7194 |
597 |
0 |
0 |
T8 |
2772 |
1609 |
0 |
0 |
T9 |
7198 |
595 |
0 |
0 |
T10 |
9077 |
7191 |
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 |
1472054 |
895876 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
1472054 |
895876 |
0 |
0 |
T1 |
318 |
138 |
0 |
0 |
T2 |
504 |
425 |
0 |
0 |
T3 |
256 |
177 |
0 |
0 |
T4 |
452 |
335 |
0 |
0 |
T5 |
255 |
134 |
0 |
0 |
T6 |
583 |
466 |
0 |
0 |
T7 |
903 |
102 |
0 |
0 |
T8 |
346 |
229 |
0 |
0 |
T9 |
902 |
101 |
0 |
0 |
T10 |
1133 |
1054 |
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 |
1472054 |
879218 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
1472054 |
879218 |
0 |
0 |
T1 |
318 |
102 |
0 |
0 |
T2 |
504 |
423 |
0 |
0 |
T3 |
256 |
175 |
0 |
0 |
T4 |
452 |
331 |
0 |
0 |
T5 |
255 |
122 |
0 |
0 |
T6 |
583 |
462 |
0 |
0 |
T7 |
903 |
82 |
0 |
0 |
T8 |
346 |
225 |
0 |
0 |
T9 |
902 |
81 |
0 |
0 |
T10 |
1133 |
1052 |
0 |
0 |