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 |
361722 |
357162 |
0 |
0 |
T2 |
1184403 |
1162059 |
0 |
0 |
T3 |
941982 |
922716 |
0 |
0 |
T4 |
2367780 |
2344068 |
0 |
0 |
T5 |
1424088 |
1388976 |
0 |
0 |
T6 |
1754232 |
1750242 |
0 |
0 |
T10 |
2534904 |
2530629 |
0 |
0 |
T11 |
1192782 |
1166334 |
0 |
0 |
T12 |
2348229 |
2336487 |
0 |
0 |
T13 |
4206543 |
4135293 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[0].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T5 T12
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(ResetValue))
41 ) u_prim_flop (
42 .clk_i,
43 .rst_ni,
44 .d_i ( mubi ),
45 .q_o ( mubi_int )
46 );
47 end else begin : gen_no_flops
48 1/1 assign mubi_int = mubi;
Tests: T4 T5 T12
49
50 // This unused companion logic helps remove lint errors
51 // for modules where clock and reset are used for assertions only
52 // This logic will be removed for sythesis since it is unloaded.
53 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
59 end
60 end
61 end
62
63 // second generation block determines output buffer type
64 // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65 // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66 // 3. If not EnSecBuf and AsyncOn -> feed through
67 if (EnSecBuf) begin : gen_sec_buf
68 prim_sec_anchor_buf #(
69 .Width(8)
70 ) u_prim_sec_buf (
71 .in_i(mubi_int),
72 .out_o(mubi_out)
73 );
74 end else if (!AsyncOn) begin : gen_prim_buf
75 prim_buf #(
76 .Width(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T5 T12
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 T5 T11
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(ResetValue))
41 ) u_prim_flop (
42 .clk_i,
43 .rst_ni,
44 .d_i ( mubi ),
45 .q_o ( mubi_int )
46 );
47 end else begin : gen_no_flops
48 1/1 assign mubi_int = mubi;
Tests: T4 T5 T11
49
50 // This unused companion logic helps remove lint errors
51 // for modules where clock and reset are used for assertions only
52 // This logic will be removed for sythesis since it is unloaded.
53 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
59 end
60 end
61 end
62
63 // second generation block determines output buffer type
64 // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65 // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66 // 3. If not EnSecBuf and AsyncOn -> feed through
67 if (EnSecBuf) begin : gen_sec_buf
68 prim_sec_anchor_buf #(
69 .Width(8)
70 ) u_prim_sec_buf (
71 .in_i(mubi_int),
72 .out_o(mubi_out)
73 );
74 end else if (!AsyncOn) begin : gen_prim_buf
75 prim_buf #(
76 .Width(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T5 T11
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[2].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T5 T12
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(ResetValue))
41 ) u_prim_flop (
42 .clk_i,
43 .rst_ni,
44 .d_i ( mubi ),
45 .q_o ( mubi_int )
46 );
47 end else begin : gen_no_flops
48 1/1 assign mubi_int = mubi;
Tests: T4 T5 T12
49
50 // This unused companion logic helps remove lint errors
51 // for modules where clock and reset are used for assertions only
52 // This logic will be removed for sythesis since it is unloaded.
53 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
59 end
60 end
61 end
62
63 // second generation block determines output buffer type
64 // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65 // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66 // 3. If not EnSecBuf and AsyncOn -> feed through
67 if (EnSecBuf) begin : gen_sec_buf
68 prim_sec_anchor_buf #(
69 .Width(8)
70 ) u_prim_sec_buf (
71 .in_i(mubi_int),
72 .out_o(mubi_out)
73 );
74 end else if (!AsyncOn) begin : gen_prim_buf
75 prim_buf #(
76 .Width(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T5 T12
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 T5 T11
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(ResetValue))
41 ) u_prim_flop (
42 .clk_i,
43 .rst_ni,
44 .d_i ( mubi ),
45 .q_o ( mubi_int )
46 );
47 end else begin : gen_no_flops
48 1/1 assign mubi_int = mubi;
Tests: T4 T5 T11
49
50 // This unused companion logic helps remove lint errors
51 // for modules where clock and reset are used for assertions only
52 // This logic will be removed for sythesis since it is unloaded.
53 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
59 end
60 end
61 end
62
63 // second generation block determines output buffer type
64 // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65 // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66 // 3. If not EnSecBuf and AsyncOn -> feed through
67 if (EnSecBuf) begin : gen_sec_buf
68 prim_sec_anchor_buf #(
69 .Width(8)
70 ) u_prim_sec_buf (
71 .in_i(mubi_int),
72 .out_o(mubi_out)
73 );
74 end else if (!AsyncOn) begin : gen_prim_buf
75 prim_buf #(
76 .Width(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T5 T11
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
0 |
0 |
Line Coverage for Instance : tb.dut.gen_bufs[4].u_prim_mubi8_sender_read_lock
| Line No. | Total | Covered | Percent |
TOTAL | | 6 | 6 | 100.00 |
CONT_ASSIGN | 34 | 1 | 1 | 100.00 |
CONT_ASSIGN | 48 | 1 | 1 | 100.00 |
ALWAYS | 55 | 3 | 3 | 100.00 |
CONT_ASSIGN | 85 | 1 | 1 | 100.00 |
33 logic [MuBi8Width-1:0] mubi, mubi_int, mubi_out;
34 1/1 assign mubi = MuBi8Width'(mubi_i);
Tests: T4 T5 T11
35
36 // first generation block decides whether a flop should be present
37 if (AsyncOn) begin : gen_flops
38 prim_flop #(
39 .Width(MuBi8Width),
40 .ResetValue(MuBi8Width'(ResetValue))
41 ) u_prim_flop (
42 .clk_i,
43 .rst_ni,
44 .d_i ( mubi ),
45 .q_o ( mubi_int )
46 );
47 end else begin : gen_no_flops
48 1/1 assign mubi_int = mubi;
Tests: T4 T5 T11
49
50 // This unused companion logic helps remove lint errors
51 // for modules where clock and reset are used for assertions only
52 // This logic will be removed for sythesis since it is unloaded.
53 mubi8_t unused_logic;
54 always_ff @(posedge clk_i or negedge rst_ni) begin
55 1/1 if (!rst_ni) begin
Tests: T1 T2 T3
56 1/1 unused_logic <= MuBi8False;
Tests: T1 T2 T3
57 end else begin
58 1/1 unused_logic <= mubi_i;
Tests: T1 T2 T3
59 end
60 end
61 end
62
63 // second generation block determines output buffer type
64 // 1. If EnSecBuf -> always leads to a sec buffer regardless of first block
65 // 2. If not EnSecBuf and not AsyncOn -> use normal buffer
66 // 3. If not EnSecBuf and AsyncOn -> feed through
67 if (EnSecBuf) begin : gen_sec_buf
68 prim_sec_anchor_buf #(
69 .Width(8)
70 ) u_prim_sec_buf (
71 .in_i(mubi_int),
72 .out_o(mubi_out)
73 );
74 end else if (!AsyncOn) begin : gen_prim_buf
75 prim_buf #(
76 .Width(8)
77 ) u_prim_buf (
78 .in_i(mubi_int),
79 .out_o(mubi_out)
80 );
81 end else begin : gen_feedthru
82 assign mubi_out = mubi_int;
83 end
84
85 1/1 assign mubi_o = mubi8_t'(mubi_out);
Tests: T4 T5 T11
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
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 |
95995079 |
95123308 |
0 |
0 |
OutputsKnown_A
Name | Attempts | Real Successes | Failures | Incomplete |
Total |
95995079 |
95123308 |
0 |
0 |
T1 |
6346 |
6266 |
0 |
0 |
T2 |
20779 |
20387 |
0 |
0 |
T3 |
16526 |
16188 |
0 |
0 |
T4 |
41540 |
41124 |
0 |
0 |
T5 |
24984 |
24368 |
0 |
0 |
T6 |
30776 |
30706 |
0 |
0 |
T10 |
44472 |
44397 |
0 |
0 |
T11 |
20926 |
20462 |
0 |
0 |
T12 |
41197 |
40991 |
0 |
0 |
T13 |
73799 |
72549 |
0 |
0 |