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 |
314127 |
309453 |
0 |
0 |
T2 |
693063 |
679554 |
0 |
0 |
T3 |
752400 |
736554 |
0 |
0 |
T4 |
1414854 |
1399179 |
0 |
0 |
T6 |
450414 |
436392 |
0 |
0 |
T10 |
366909 |
363546 |
0 |
0 |
T11 |
589494 |
570969 |
0 |
0 |
T12 |
407208 |
403788 |
0 |
0 |
T13 |
794808 |
785574 |
0 |
0 |
T14 |
558429 |
545205 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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: T6 T4 T95
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: T6 T4 T95
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: T6 T4 T95
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[1].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T95 T129
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(ResetValue))
41 ) u_prim_flop (
42 .clk_i,
43 .rst_ni,
44 .d_i ( mubi ),
45 .q_o ( mubi_int )
46 );
47 end else begin : gen_no_flops
48 1/1 assign mubi_int = mubi;
Tests: T4 T95 T129
49
50 // This unused companion logic helps remove lint errors
51 // for modules where clock and reset are used for assertions only
52 // This logic will be removed for sythesis since it is unloaded.
53 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
59 end
60 end
61 end
62
63 // second generation block determines output buffer type
64 // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65 // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66 // 3. If not EnSecBuf and AsyncOn -> feed through
67 if (EnSecBuf) begin : gen_sec_buf
68 prim_sec_anchor_buf #(
69 .Width(8)
70 ) u_prim_sec_buf (
71 .in_i(mubi_int),
72 .out_o(mubi_out)
73 );
74 end else if (!AsyncOn) begin : gen_prim_buf
75 prim_buf #(
76 .Width(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T95 T129
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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: T95 T129 T20
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: T95 T129 T20
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: T95 T129 T20
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[3].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T95 T129
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(ResetValue))
41 ) u_prim_flop (
42 .clk_i,
43 .rst_ni,
44 .d_i ( mubi ),
45 .q_o ( mubi_int )
46 );
47 end else begin : gen_no_flops
48 1/1 assign mubi_int = mubi;
Tests: T4 T95 T129
49
50 // This unused companion logic helps remove lint errors
51 // for modules where clock and reset are used for assertions only
52 // This logic will be removed for sythesis since it is unloaded.
53 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
59 end
60 end
61 end
62
63 // second generation block determines output buffer type
64 // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65 // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66 // 3. If not EnSecBuf and AsyncOn -> feed through
67 if (EnSecBuf) begin : gen_sec_buf
68 prim_sec_anchor_buf #(
69 .Width(8)
70 ) u_prim_sec_buf (
71 .in_i(mubi_int),
72 .out_o(mubi_out)
73 );
74 end else if (!AsyncOn) begin : gen_prim_buf
75 prim_buf #(
76 .Width(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T95 T129
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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: T95 T7 T129
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: T95 T7 T129
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: T95 T7 T129
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
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 |
80791054 |
79962216 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
80791054 |
79962216 |
0 |
0 |
T1 |
5511 |
5429 |
0 |
0 |
T2 |
12159 |
11922 |
0 |
0 |
T3 |
13200 |
12922 |
0 |
0 |
T4 |
24822 |
24547 |
0 |
0 |
T6 |
7902 |
7656 |
0 |
0 |
T10 |
6437 |
6378 |
0 |
0 |
T11 |
10342 |
10017 |
0 |
0 |
T12 |
7144 |
7084 |
0 |
0 |
T13 |
13944 |
13782 |
0 |
0 |
T14 |
9797 |
9565 |
0 |
0 |