Line Coverage for Module : 
prim_arbiter_tree_dup ( parameter N=2,DW=16,EnDataPort=1,FixedArb=0,IdxW=1,ArbInstances=2 + N=2,DW=129,EnDataPort=1,FixedArb=0,IdxW=1,ArbInstances=2 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 10 | 10 | 100.00 | 
| CONT_ASSIGN | 123 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 125 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 126 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 132 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 137 | 1 | 1 | 100.00 | 
| ALWAYS | 139 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 146 | 1 | 1 | 100.00 | 
122                       // the last buffered position is sent out
123        1/1            assign gnt_o = arb_output_buf[ArbInstances-1].gnt;
           Tests:       T1 T2 T3 
124        1/1            assign idx_o = arb_output_buf[ArbInstances-1].idx;
           Tests:       T1 T2 T3 
125        1/1            assign valid_o = arb_output_buf[ArbInstances-1].valid;
           Tests:       T1 T2 T3 
126        1/1            assign data_o = arb_output_buf[ArbInstances-1].data;
           Tests:       T1 T2 T3 
127                     
128                       // Check the last buffer index against all other instances
129                       logic [ArbInstances-2:0] output_delta;
130                     
131                       for (genvar i = 0; i < ArbInstances-1; i++) begin : gen_checks
132        1/1              assign output_delta[i] = arb_output_buf[ArbInstances-1] != arb_output_buf[i];
           Tests:       T1 T2 T3 
133                       end
134                     
135                       logic err_d, err_q;
136                       // There is an error if anything ever disagrees
137        1/1            assign err_d = |output_delta;
           Tests:       T1 T2 T3 
138                       always_ff @(posedge clk_i or negedge rst_ni) begin
139        1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
140        1/1                err_q <= '0;
           Tests:       T1 T2 T3 
141                         end else begin
142        1/1                err_q <= err_d | err_q;
           Tests:       T1 T2 T3 
143                         end
144                       end
145                     
146        1/1            assign err_o = err_q;
           Tests:       T1 T2 T3 
Line Coverage for Module : 
prim_arbiter_tree_dup ( parameter N=2,DW=2,EnDataPort=0,FixedArb=1,IdxW=1,ArbInstances=2 ) 
Line Coverage for Module self-instances : 
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 10 | 9 | 90.00 | 
| CONT_ASSIGN | 100 | 0 | 0 |  | 
| CONT_ASSIGN | 100 | 0 | 0 |  | 
| CONT_ASSIGN | 123 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 125 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 126 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 132 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 137 | 1 | 1 | 100.00 | 
| ALWAYS | 139 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 146 | 1 | 1 | 100.00 | 
99                            logic unused_req_chk;
100        unreachable        assign unused_req_chk = req_chk_i;
101                     
102                         end else begin : gen_rr_arbiter
103                           prim_arbiter_tree #(
104                             .N(N),
105                             .DW(DW),
106                             .EnDataPort(EnDataPort)
107                           ) u_arb (
108                             .clk_i,
109                             .rst_ni,
110                             .req_chk_i,
111                             .req_i(req_buf),
112                             .data_i(data_buf),
113                             .gnt_o(arb_output_buf[i].gnt),
114                             .idx_o(arb_output_buf[i].idx),
115                             .valid_o(arb_output_buf[i].valid),
116                             .data_o(arb_output_buf[i].data),
117                             .ready_i
118                           );
119                         end
120                       end
121                     
122                       // the last buffered position is sent out
123        1/1            assign gnt_o = arb_output_buf[ArbInstances-1].gnt;
           Tests:       T1 T2 T3 
124        1/1            assign idx_o = arb_output_buf[ArbInstances-1].idx;
           Tests:       T1 T2 T3 
125        1/1            assign valid_o = arb_output_buf[ArbInstances-1].valid;
           Tests:       T1 T2 T3 
126        0/1     ==>    assign data_o = arb_output_buf[ArbInstances-1].data;
127                     
128                       // Check the last buffer index against all other instances
129                       logic [ArbInstances-2:0] output_delta;
130                     
131                       for (genvar i = 0; i < ArbInstances-1; i++) begin : gen_checks
132        1/1              assign output_delta[i] = arb_output_buf[ArbInstances-1] != arb_output_buf[i];
           Tests:       T1 T2 T3 
133                       end
134                     
135                       logic err_d, err_q;
136                       // There is an error if anything ever disagrees
137        1/1            assign err_d = |output_delta;
           Tests:       T1 T2 T3 
138                       always_ff @(posedge clk_i or negedge rst_ni) begin
139        1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
140        1/1                err_q <= '0;
           Tests:       T1 T2 T3 
141                         end else begin
142        1/1                err_q <= err_d | err_q;
           Tests:       T1 T2 T3 
143                         end
144                       end
145                     
146        1/1            assign err_o = err_q;
           Tests:       T1 T2 T3 
Cond Coverage for Module : 
prim_arbiter_tree_dup
 | Total | Covered | Percent | 
| Conditions | 5 | 5 | 100.00 | 
| Logical | 5 | 5 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       132
 EXPRESSION (arb_output_buf[(ArbInstances - 1)] != arb_output_buf[0])
            ----------------------------1----------------------------
| -1- | Status | Tests | 
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T62,T101,T102 | 
 LINE       142
 EXPRESSION (err_d | err_q)
             --1--   --2--
| -1- | -2- | Status | Tests | 
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T62,T101,T102 | 
| 1 | 0 | Covered | T62,T101,T102 | 
Branch Coverage for Module : 
prim_arbiter_tree_dup
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
139 | 
2 | 
2 | 
100.00 | 
139            if (!rst_ni) begin
               -1-  
140              err_q <= '0;
                 ==>
141            end else begin
142              err_q <= err_d | err_q;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
 
Line Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_host_arb
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 10 | 9 | 90.00 | 
| CONT_ASSIGN | 100 | 0 | 0 |  | 
| CONT_ASSIGN | 100 | 0 | 0 |  | 
| CONT_ASSIGN | 123 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 125 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 126 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 132 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 137 | 1 | 1 | 100.00 | 
| ALWAYS | 139 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 146 | 1 | 1 | 100.00 | 
99                            logic unused_req_chk;
100        unreachable        assign unused_req_chk = req_chk_i;
101                     
102                         end else begin : gen_rr_arbiter
103                           prim_arbiter_tree #(
104                             .N(N),
105                             .DW(DW),
106                             .EnDataPort(EnDataPort)
107                           ) u_arb (
108                             .clk_i,
109                             .rst_ni,
110                             .req_chk_i,
111                             .req_i(req_buf),
112                             .data_i(data_buf),
113                             .gnt_o(arb_output_buf[i].gnt),
114                             .idx_o(arb_output_buf[i].idx),
115                             .valid_o(arb_output_buf[i].valid),
116                             .data_o(arb_output_buf[i].data),
117                             .ready_i
118                           );
119                         end
120                       end
121                     
122                       // the last buffered position is sent out
123        1/1            assign gnt_o = arb_output_buf[ArbInstances-1].gnt;
           Tests:       T1 T2 T3 
124        1/1            assign idx_o = arb_output_buf[ArbInstances-1].idx;
           Tests:       T1 T2 T3 
125        1/1            assign valid_o = arb_output_buf[ArbInstances-1].valid;
           Tests:       T1 T2 T3 
126        0/1     ==>    assign data_o = arb_output_buf[ArbInstances-1].data;
127                     
128                       // Check the last buffer index against all other instances
129                       logic [ArbInstances-2:0] output_delta;
130                     
131                       for (genvar i = 0; i < ArbInstances-1; i++) begin : gen_checks
132        1/1              assign output_delta[i] = arb_output_buf[ArbInstances-1] != arb_output_buf[i];
           Tests:       T1 T2 T3 
133                       end
134                     
135                       logic err_d, err_q;
136                       // There is an error if anything ever disagrees
137        1/1            assign err_d = |output_delta;
           Tests:       T1 T2 T3 
138                       always_ff @(posedge clk_i or negedge rst_ni) begin
139        1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
140        1/1                err_q <= '0;
           Tests:       T1 T2 T3 
141                         end else begin
142        1/1                err_q <= err_d | err_q;
           Tests:       T1 T2 T3 
143                         end
144                       end
145                     
146        1/1            assign err_o = err_q;
           Tests:       T1 T2 T3 
Cond Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_host_arb
 | Total | Covered | Percent | 
| Conditions | 5 | 2 | 40.00 | 
| Logical | 5 | 2 | 40.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       132
 EXPRESSION (arb_output_buf[(ArbInstances - 1)] != arb_output_buf[0])
            ----------------------------1----------------------------
| -1- | Status | Tests | 
| 0 | Covered | T1,T2,T3 | 
| 1 | Not Covered |  | 
 LINE       142
 EXPRESSION (err_d | err_q)
             --1--   --2--
| -1- | -2- | Status | Tests | 
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Not Covered |  | 
| 1 | 0 | Not Covered |  | 
Branch Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[0].u_core.u_host_arb
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
139 | 
2 | 
2 | 
100.00 | 
139            if (!rst_ni) begin
               -1-  
140              err_q <= '0;
                 ==>
141            end else begin
142              err_q <= err_d | err_q;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
 
Line Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_host_arb
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 10 | 9 | 90.00 | 
| CONT_ASSIGN | 100 | 0 | 0 |  | 
| CONT_ASSIGN | 100 | 0 | 0 |  | 
| CONT_ASSIGN | 123 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 125 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 126 | 1 | 0 | 0.00 | 
| CONT_ASSIGN | 132 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 137 | 1 | 1 | 100.00 | 
| ALWAYS | 139 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 146 | 1 | 1 | 100.00 | 
99                            logic unused_req_chk;
100        unreachable        assign unused_req_chk = req_chk_i;
101                     
102                         end else begin : gen_rr_arbiter
103                           prim_arbiter_tree #(
104                             .N(N),
105                             .DW(DW),
106                             .EnDataPort(EnDataPort)
107                           ) u_arb (
108                             .clk_i,
109                             .rst_ni,
110                             .req_chk_i,
111                             .req_i(req_buf),
112                             .data_i(data_buf),
113                             .gnt_o(arb_output_buf[i].gnt),
114                             .idx_o(arb_output_buf[i].idx),
115                             .valid_o(arb_output_buf[i].valid),
116                             .data_o(arb_output_buf[i].data),
117                             .ready_i
118                           );
119                         end
120                       end
121                     
122                       // the last buffered position is sent out
123        1/1            assign gnt_o = arb_output_buf[ArbInstances-1].gnt;
           Tests:       T1 T2 T3 
124        1/1            assign idx_o = arb_output_buf[ArbInstances-1].idx;
           Tests:       T1 T2 T3 
125        1/1            assign valid_o = arb_output_buf[ArbInstances-1].valid;
           Tests:       T1 T2 T3 
126        0/1     ==>    assign data_o = arb_output_buf[ArbInstances-1].data;
127                     
128                       // Check the last buffer index against all other instances
129                       logic [ArbInstances-2:0] output_delta;
130                     
131                       for (genvar i = 0; i < ArbInstances-1; i++) begin : gen_checks
132        1/1              assign output_delta[i] = arb_output_buf[ArbInstances-1] != arb_output_buf[i];
           Tests:       T1 T2 T3 
133                       end
134                     
135                       logic err_d, err_q;
136                       // There is an error if anything ever disagrees
137        1/1            assign err_d = |output_delta;
           Tests:       T1 T2 T3 
138                       always_ff @(posedge clk_i or negedge rst_ni) begin
139        1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
140        1/1                err_q <= '0;
           Tests:       T1 T2 T3 
141                         end else begin
142        1/1                err_q <= err_d | err_q;
           Tests:       T1 T2 T3 
143                         end
144                       end
145                     
146        1/1            assign err_o = err_q;
           Tests:       T1 T2 T3 
Cond Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_host_arb
 | Total | Covered | Percent | 
| Conditions | 5 | 5 | 100.00 | 
| Logical | 5 | 5 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       132
 EXPRESSION (arb_output_buf[(ArbInstances - 1)] != arb_output_buf[0])
            ----------------------------1----------------------------
| -1- | Status | Tests | 
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T103 | 
 LINE       142
 EXPRESSION (err_d | err_q)
             --1--   --2--
| -1- | -2- | Status | Tests | 
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T103 | 
| 1 | 0 | Covered | T103 | 
Branch Coverage for Instance : tb.dut.u_eflash.gen_flash_cores[1].u_core.u_host_arb
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
139 | 
2 | 
2 | 
100.00 | 
139            if (!rst_ni) begin
               -1-  
140              err_q <= '0;
                 ==>
141            end else begin
142              err_q <= err_d | err_q;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
 
Line Coverage for Instance : tb.dut.u_eflash.u_scramble.u_prim_arbiter_tree_calc
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 10 | 10 | 100.00 | 
| CONT_ASSIGN | 123 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 125 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 126 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 132 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 137 | 1 | 1 | 100.00 | 
| ALWAYS | 139 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 146 | 1 | 1 | 100.00 | 
122                       // the last buffered position is sent out
123        1/1            assign gnt_o = arb_output_buf[ArbInstances-1].gnt;
           Tests:       T1 T2 T3 
124        1/1            assign idx_o = arb_output_buf[ArbInstances-1].idx;
           Tests:       T1 T2 T3 
125        1/1            assign valid_o = arb_output_buf[ArbInstances-1].valid;
           Tests:       T1 T2 T3 
126        1/1            assign data_o = arb_output_buf[ArbInstances-1].data;
           Tests:       T1 T2 T3 
127                     
128                       // Check the last buffer index against all other instances
129                       logic [ArbInstances-2:0] output_delta;
130                     
131                       for (genvar i = 0; i < ArbInstances-1; i++) begin : gen_checks
132        1/1              assign output_delta[i] = arb_output_buf[ArbInstances-1] != arb_output_buf[i];
           Tests:       T1 T2 T3 
133                       end
134                     
135                       logic err_d, err_q;
136                       // There is an error if anything ever disagrees
137        1/1            assign err_d = |output_delta;
           Tests:       T1 T2 T3 
138                       always_ff @(posedge clk_i or negedge rst_ni) begin
139        1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
140        1/1                err_q <= '0;
           Tests:       T1 T2 T3 
141                         end else begin
142        1/1                err_q <= err_d | err_q;
           Tests:       T1 T2 T3 
143                         end
144                       end
145                     
146        1/1            assign err_o = err_q;
           Tests:       T1 T2 T3 
Cond Coverage for Instance : tb.dut.u_eflash.u_scramble.u_prim_arbiter_tree_calc
 | Total | Covered | Percent | 
| Conditions | 5 | 5 | 100.00 | 
| Logical | 5 | 5 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       132
 EXPRESSION (arb_output_buf[(ArbInstances - 1)] != arb_output_buf[0])
            ----------------------------1----------------------------
| -1- | Status | Tests | 
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T101,T102,T238 | 
 LINE       142
 EXPRESSION (err_d | err_q)
             --1--   --2--
| -1- | -2- | Status | Tests | 
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T101,T102,T238 | 
| 1 | 0 | Covered | T101,T102,T238 | 
Branch Coverage for Instance : tb.dut.u_eflash.u_scramble.u_prim_arbiter_tree_calc
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
139 | 
2 | 
2 | 
100.00 | 
139            if (!rst_ni) begin
               -1-  
140              err_q <= '0;
                 ==>
141            end else begin
142              err_q <= err_d | err_q;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
 
Line Coverage for Instance : tb.dut.u_eflash.u_scramble.u_prim_arbiter_tree_op
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 10 | 10 | 100.00 | 
| CONT_ASSIGN | 123 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 124 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 125 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 126 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 132 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 137 | 1 | 1 | 100.00 | 
| ALWAYS | 139 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 146 | 1 | 1 | 100.00 | 
122                       // the last buffered position is sent out
123        1/1            assign gnt_o = arb_output_buf[ArbInstances-1].gnt;
           Tests:       T1 T2 T3 
124        1/1            assign idx_o = arb_output_buf[ArbInstances-1].idx;
           Tests:       T1 T2 T3 
125        1/1            assign valid_o = arb_output_buf[ArbInstances-1].valid;
           Tests:       T1 T2 T3 
126        1/1            assign data_o = arb_output_buf[ArbInstances-1].data;
           Tests:       T1 T2 T3 
127                     
128                       // Check the last buffer index against all other instances
129                       logic [ArbInstances-2:0] output_delta;
130                     
131                       for (genvar i = 0; i < ArbInstances-1; i++) begin : gen_checks
132        1/1              assign output_delta[i] = arb_output_buf[ArbInstances-1] != arb_output_buf[i];
           Tests:       T1 T2 T3 
133                       end
134                     
135                       logic err_d, err_q;
136                       // There is an error if anything ever disagrees
137        1/1            assign err_d = |output_delta;
           Tests:       T1 T2 T3 
138                       always_ff @(posedge clk_i or negedge rst_ni) begin
139        1/1              if (!rst_ni) begin
           Tests:       T1 T2 T3 
140        1/1                err_q <= '0;
           Tests:       T1 T2 T3 
141                         end else begin
142        1/1                err_q <= err_d | err_q;
           Tests:       T1 T2 T3 
143                         end
144                       end
145                     
146        1/1            assign err_o = err_q;
           Tests:       T1 T2 T3 
Cond Coverage for Instance : tb.dut.u_eflash.u_scramble.u_prim_arbiter_tree_op
 | Total | Covered | Percent | 
| Conditions | 5 | 5 | 100.00 | 
| Logical | 5 | 5 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       132
 EXPRESSION (arb_output_buf[(ArbInstances - 1)] != arb_output_buf[0])
            ----------------------------1----------------------------
| -1- | Status | Tests | 
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T62 | 
 LINE       142
 EXPRESSION (err_d | err_q)
             --1--   --2--
| -1- | -2- | Status | Tests | 
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T62 | 
| 1 | 0 | Covered | T62 | 
Branch Coverage for Instance : tb.dut.u_eflash.u_scramble.u_prim_arbiter_tree_op
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
2 | 
2 | 
100.00 | 
| IF | 
139 | 
2 | 
2 | 
100.00 | 
139            if (!rst_ni) begin
               -1-  
140              err_q <= '0;
                 ==>
141            end else begin
142              err_q <= err_d | err_q;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 |