Line Coverage for Module :
prim_mubi8_sender
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Module :
prim_mubi8_sender
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Module :
prim_mubi8_sender
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
2147483647 |
2147483647 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
2147483647 |
2147483647 |
0 |
0 |
T1 |
273885 |
270294 |
0 |
0 |
T2 |
534774 |
520581 |
0 |
0 |
T3 |
1468491 |
1442442 |
0 |
0 |
T4 |
1108707 |
1085109 |
0 |
0 |
T5 |
1722540 |
1701963 |
0 |
0 |
T6 |
1958121 |
1936347 |
0 |
0 |
T7 |
193800 |
188670 |
0 |
0 |
T22 |
1224873 |
1221396 |
0 |
0 |
T23 |
625974 |
610128 |
0 |
0 |
T24 |
937878 |
928188 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[5].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[6].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[7].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[8].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[10].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 3 | 50.00 |
CONT_ASSIGN | 34 | 1 | 0 | 0.00 |
CONT_ASSIGN | 48 | 1 | 0 | 0.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 0 | 0.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 0/1 ==> assign mubi = MuBi8Width'(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(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 0/1 ==> 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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 0/1 ==> assign mubi_o = mubi8_t'(mubi_out);
Branch Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[10].gen_lifecycle.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T6 T5
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T4 T6 T5
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T6 T5
Branch Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T6 T5
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T4 T6 T5
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T6 T5
Branch Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T5 T15
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T4 T5 T15
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T5 T15
Branch Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T6 T5
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T4 T6 T5
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T6 T5
Branch Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T5 T15
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T4 T5 T15
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T5 T15
Branch Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_bufs[9].u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[0].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[1].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[2].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[3].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[4].gen_unbuffered.u_part_unbuf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[5].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[6].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[7].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[8].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_write_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.u_prim_mubi8_sender_read_lock_pre
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_write_lock.u_prim_mubi8_sender_write_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T1 T2 T3
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(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 1/1 assign mubi_int = mubi;
Tests: T1 T2 T3
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 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
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(8)
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(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T1 T2 T3
Branch Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
Branches |
|
2 |
2 |
100.00 |
IF |
55 |
2 |
2 |
100.00 |
55 if (!rst_ni) begin
-1-
56 unused_logic <= MuBi8False;
==>
57 end else begin
58 unused_logic <= mubi_i;
==>
Branches:
-1- | Status | Tests |
1 |
Covered |
T1,T2,T3 |
0 |
Covered |
T1,T2,T3 |
Assert Coverage for Instance : tb.dut.gen_partitions[9].gen_buffered.u_part_buf.gen_digest_read_lock.u_prim_mubi8_sender_read_lock
Assertion Details
Name | Attempts | Real Successes | Failures | Incomplete |
OutputsKnown_A |
96891327 |
96062358 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
96891327 |
96062358 |
0 |
0 |
T1 |
4805 |
4742 |
0 |
0 |
T2 |
9382 |
9133 |
0 |
0 |
T3 |
25763 |
25306 |
0 |
0 |
T4 |
19451 |
19037 |
0 |
0 |
T5 |
30220 |
29859 |
0 |
0 |
T6 |
34353 |
33971 |
0 |
0 |
T7 |
3400 |
3310 |
0 |
0 |
T22 |
21489 |
21428 |
0 |
0 |
T23 |
10982 |
10704 |
0 |
0 |
T24 |
16454 |
16284 |
0 |
0 |