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 |
264024 |
259863 |
0 |
0 |
T2 |
674082 |
658179 |
0 |
0 |
T3 |
448020 |
445056 |
0 |
0 |
T4 |
878028 |
865488 |
0 |
0 |
T5 |
1955499 |
1933155 |
0 |
0 |
T6 |
2393829 |
2371428 |
0 |
0 |
T7 |
1279137 |
1261809 |
0 |
0 |
T11 |
790989 |
773262 |
0 |
0 |
T12 |
704634 |
693063 |
0 |
0 |
T13 |
1413030 |
1384131 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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: T5 T11 T130
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: T5 T11 T130
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: T5 T11 T130
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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: T5 T11 T130
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: T5 T11 T130
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: T5 T11 T130
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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: T5 T11 T8
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: T5 T11 T8
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: T5 T11 T8
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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: T11 T8 T86
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: T11 T8 T86
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: T11 T8 T86
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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: T5 T11 T8
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: T5 T11 T8
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: T5 T11 T8
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
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 |
77900107 |
77088315 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
77900107 |
77088315 |
0 |
0 |
T1 |
4632 |
4559 |
0 |
0 |
T2 |
11826 |
11547 |
0 |
0 |
T3 |
7860 |
7808 |
0 |
0 |
T4 |
15404 |
15184 |
0 |
0 |
T5 |
34307 |
33915 |
0 |
0 |
T6 |
41997 |
41604 |
0 |
0 |
T7 |
22441 |
22137 |
0 |
0 |
T11 |
13877 |
13566 |
0 |
0 |
T12 |
12362 |
12159 |
0 |
0 |
T13 |
24790 |
24283 |
0 |
0 |