Module Definition
dashboard | hierarchy | modlist | groups | tests | asserts



Module Instance : tb.dut.u_edn_core.u_prim_packer_fifo_cs

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
95.24 100.00 95.24 85.71 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
95.24 100.00 95.24 85.71 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.31 100.00 91.03 98.23 100.00 u_edn_core


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_edn_core.gen_ep_blk[0].u_prim_packer_fifo_ep

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.31 100.00 91.03 98.23 100.00 u_edn_core


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_edn_core.gen_ep_blk[1].u_prim_packer_fifo_ep

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.31 100.00 91.03 98.23 100.00 u_edn_core


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_edn_core.gen_ep_blk[2].u_prim_packer_fifo_ep

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.31 100.00 91.03 98.23 100.00 u_edn_core


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_edn_core.gen_ep_blk[3].u_prim_packer_fifo_ep

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.31 100.00 91.03 98.23 100.00 u_edn_core


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_edn_core.gen_ep_blk[4].u_prim_packer_fifo_ep

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.31 100.00 91.03 98.23 100.00 u_edn_core


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_edn_core.gen_ep_blk[5].u_prim_packer_fifo_ep

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.31 100.00 91.03 98.23 100.00 u_edn_core


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children



Module Instance : tb.dut.u_edn_core.gen_ep_blk[6].u_prim_packer_fifo_ep

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.81 100.00 95.24 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.31 100.00 91.03 98.23 100.00 u_edn_core


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children

Line Coverage for Module : prim_packer_fifo ( parameter InW=128,OutW=128,ClearOnRead=0,MaxW=128,MinW=128,DepthW=0 )
Line Coverage for Module self-instances :
SCORELINE
95.24 100.00
tb.dut.u_edn_core.u_prim_packer_fifo_cs

Line No.TotalCoveredPercent
TOTAL2323100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3 

Line Coverage for Module : prim_packer_fifo ( parameter InW=128,OutW=32,ClearOnRead=0,MaxW=128,MinW=32,DepthW=2 )
Line Coverage for Module self-instances :
SCORELINE
98.81 100.00
tb.dut.u_edn_core.gen_ep_blk[0].u_prim_packer_fifo_ep

SCORELINE
98.81 100.00
tb.dut.u_edn_core.gen_ep_blk[1].u_prim_packer_fifo_ep

SCORELINE
98.81 100.00
tb.dut.u_edn_core.gen_ep_blk[2].u_prim_packer_fifo_ep

SCORELINE
98.81 100.00
tb.dut.u_edn_core.gen_ep_blk[3].u_prim_packer_fifo_ep

SCORELINE
98.81 100.00
tb.dut.u_edn_core.gen_ep_blk[4].u_prim_packer_fifo_ep

SCORELINE
98.81 100.00
tb.dut.u_edn_core.gen_ep_blk[5].u_prim_packer_fifo_ep

SCORELINE
98.81 100.00
tb.dut.u_edn_core.gen_ep_blk[6].u_prim_packer_fifo_ep

Line No.TotalCoveredPercent
TOTAL2424100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00
CONT_ASSIGN16311100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3  159 160 // Avoid possible lint errors in case InW > OutW. 161 if (InW > OutW) begin : gen_unused 162 logic [MaxW-MinW-1:0] unused_rdata_shifted; 163 1/1 assign unused_rdata_shifted = rdata_shifted[MaxW-1:MinW]; Tests: T1 T2 T3 

Cond Coverage for Module : prim_packer_fifo ( parameter InW=128,OutW=128,ClearOnRead=0,MaxW=128,MinW=128,DepthW=0 )
Cond Coverage for Module self-instances :
SCORECOND
95.24 95.24
tb.dut.u_edn_core.u_prim_packer_fifo_cs

TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT1,T2,T3

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT5,T26,T9
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT5,T26,T9
11CoveredT1,T2,T3

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT9,T30,T20
11CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Cond Coverage for Module : prim_packer_fifo ( parameter InW=128,OutW=32,ClearOnRead=0,MaxW=128,MinW=32,DepthW=2 )
Cond Coverage for Module self-instances :
SCORECOND
98.81 95.24
tb.dut.u_edn_core.gen_ep_blk[0].u_prim_packer_fifo_ep

SCORECOND
98.81 95.24
tb.dut.u_edn_core.gen_ep_blk[1].u_prim_packer_fifo_ep

SCORECOND
98.81 95.24
tb.dut.u_edn_core.gen_ep_blk[2].u_prim_packer_fifo_ep

SCORECOND
98.81 95.24
tb.dut.u_edn_core.gen_ep_blk[3].u_prim_packer_fifo_ep

SCORECOND
98.81 95.24
tb.dut.u_edn_core.gen_ep_blk[4].u_prim_packer_fifo_ep

SCORECOND
98.81 95.24
tb.dut.u_edn_core.gen_ep_blk[5].u_prim_packer_fifo_ep

SCORECOND
98.81 95.24
tb.dut.u_edn_core.gen_ep_blk[6].u_prim_packer_fifo_ep

TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT1,T2,T3

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT1,T2,T3

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT41,T31,T64
11CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Module : prim_packer_fifo
Line No.TotalCoveredPercent
Branches 14 14 100.00
TERNARY 142 4 4 100.00
TERNARY 147 3 3 100.00
TERNARY 151 3 3 100.00
IF 82 2 2 100.00
IF 127 2 2 100.00


142 assign depth_d = clear_status ? '0 : -1- ==> 143 load_data ? max_value : -2- ==> 144 pull_data ? (depth_q - DepthOne) : -3- ==> ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T1,T2,T3
0 0 0 Covered T1,T2,T3


147 assign ptr_d = clear_status ? '0 : -1- ==> 148 pull_data ? (ptr_q + DepthOne) : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T1,T2,T3
0 0 Covered T1,T2,T3


151 assign data_d = clear_data ? '0 : -1- ==> 152 load_data ? wdata_i : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T1,T2,T3
0 0 Covered T1,T2,T3


82 if (!rst_ni) begin -1- 83 depth_q <= '0; ==> 84 data_q <= '0; 85 clr_q <= 1'b1; 86 end else begin 87 depth_q <= depth_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


127 if (!rst_ni) begin -1- 128 ptr_q <= '0; ==> 129 end else begin 130 ptr_q <= ptr_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


Assert Coverage for Module : prim_packer_fifo
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 94502328 9568617 0 7520
ValidOPairedWithReadyI_A 94502328 9568617 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 94502328 9568617 0 7520
T1 1609 1184 0 1
T2 1035 843 0 1
T3 9018 3828 0 3
T4 18315 730 0 3
T5 5220 0 0 4
T6 11320 0 0 5
T7 3294 0 0 3
T8 0 386 0 0
T9 13548 1128 0 6
T10 14420 8886 0 4
T16 8830 0 0 5
T19 2976 293 0 4
T20 4306 0 0 2
T25 4604 0 0 4
T26 4228 0 0 4
T27 5310 738 0 5
T28 984 761 0 1
T29 2223 552 0 3
T30 7473 1183 0 3
T31 0 126 0 0
T32 0 366 0 0
T40 0 4002 0 0
T41 0 227 0 0
T42 0 913 0 0
T70 7465 1114 0 5
T73 2960 0 0 2
T75 1137 0 0 1
T76 0 1557 0 0
T77 0 504 0 0
T81 0 1447 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 94502328 9568617 0 0
T1 1609 1184 0 0
T2 1035 843 0 0
T3 9018 3828 0 0
T4 18315 730 0 0
T5 5220 0 0 0
T6 11320 0 0 0
T7 3294 0 0 0
T8 0 386 0 0
T9 13548 1128 0 0
T10 14420 8886 0 0
T16 8830 0 0 0
T19 2976 293 0 0
T20 4306 0 0 0
T25 4604 0 0 0
T26 4228 0 0 0
T27 5310 738 0 0
T28 984 761 0 0
T29 2223 552 0 0
T30 7473 1183 0 0
T31 0 126 0 0
T32 0 366 0 0
T40 0 4002 0 0
T41 0 227 0 0
T42 0 913 0 0
T70 7465 1114 0 0
T73 2960 0 0 0
T75 1137 0 0 0
T76 0 1557 0 0
T77 0 504 0 0
T81 0 1447 0 0

Line Coverage for Instance : tb.dut.u_edn_core.u_prim_packer_fifo_cs
Line No.TotalCoveredPercent
TOTAL2323100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_edn_core.u_prim_packer_fifo_cs
TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT1,T2,T3

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT5,T26,T9
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT5,T26,T9
11CoveredT1,T2,T3

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1Not Covered

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT9,T30,T20
11CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_edn_core.u_prim_packer_fifo_cs
Line No.TotalCoveredPercent
Branches 14 12 85.71
TERNARY 142 4 3 75.00
TERNARY 147 3 2 66.67
TERNARY 151 3 3 100.00
IF 82 2 2 100.00
IF 127 2 2 100.00


142 assign depth_d = clear_status ? '0 : -1- ==> 143 load_data ? max_value : -2- ==> 144 pull_data ? (depth_q - DepthOne) : -3- ==> ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Not Covered
0 0 0 Covered T1,T2,T3


147 assign ptr_d = clear_status ? '0 : -1- ==> 148 pull_data ? (ptr_q + DepthOne) : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Not Covered
0 0 Covered T1,T2,T3


151 assign data_d = clear_data ? '0 : -1- ==> 152 load_data ? wdata_i : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T1,T2,T3
0 0 Covered T1,T2,T3


82 if (!rst_ni) begin -1- 83 depth_q <= '0; ==> 84 data_q <= '0; 85 clr_q <= 1'b1; 86 end else begin 87 depth_q <= depth_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


127 if (!rst_ni) begin -1- 128 ptr_q <= '0; ==> 129 end else begin 130 ptr_q <= ptr_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_edn_core.u_prim_packer_fifo_cs
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 11812791 126179 0 940
ValidOPairedWithReadyI_A 11812791 126179 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 126179 0 940
T5 1305 71 0 1
T6 2264 0 0 1
T9 2258 67 0 1
T10 3605 266 0 1
T14 0 13 0 0
T16 1766 0 0 1
T19 744 21 0 1
T20 0 569 0 0
T25 1151 0 0 1
T26 1057 790 0 1
T27 1062 0 0 1
T30 0 112 0 0
T31 0 113 0 0
T41 0 217 0 0
T70 1493 0 0 1

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 126179 0 0
T5 1305 71 0 0
T6 2264 0 0 0
T9 2258 67 0 0
T10 3605 266 0 0
T14 0 13 0 0
T16 1766 0 0 0
T19 744 21 0 0
T20 0 569 0 0
T25 1151 0 0 0
T26 1057 790 0 0
T27 1062 0 0 0
T30 0 112 0 0
T31 0 113 0 0
T41 0 217 0 0
T70 1493 0 0 0

Line Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[0].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
TOTAL2424100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00
CONT_ASSIGN16311100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3  159 160 // Avoid possible lint errors in case InW > OutW. 161 if (InW > OutW) begin : gen_unused 162 logic [MaxW-MinW-1:0] unused_rdata_shifted; 163 1/1 assign unused_rdata_shifted = rdata_shifted[MaxW-1:MinW]; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[0].u_prim_packer_fifo_ep
TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT1,T2,T3

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT1,T2,T3

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT64,T76,T221
11CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[0].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
Branches 14 14 100.00
TERNARY 142 4 4 100.00
TERNARY 147 3 3 100.00
TERNARY 151 3 3 100.00
IF 82 2 2 100.00
IF 127 2 2 100.00


142 assign depth_d = clear_status ? '0 : -1- ==> 143 load_data ? max_value : -2- ==> 144 pull_data ? (depth_q - DepthOne) : -3- ==> ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T1,T2,T3
0 0 1 Covered T1,T2,T3
0 0 0 Covered T1,T2,T3


147 assign ptr_d = clear_status ? '0 : -1- ==> 148 pull_data ? (ptr_q + DepthOne) : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T1,T2,T3
0 0 Covered T1,T2,T3


151 assign data_d = clear_data ? '0 : -1- ==> 152 load_data ? wdata_i : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T1,T2,T3
0 0 Covered T1,T2,T3


82 if (!rst_ni) begin -1- 83 depth_q <= '0; ==> 84 data_q <= '0; 85 clr_q <= 1'b1; 86 end else begin 87 depth_q <= depth_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


127 if (!rst_ni) begin -1- 128 ptr_q <= '0; ==> 129 end else begin 130 ptr_q <= ptr_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[0].u_prim_packer_fifo_ep
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 11812791 8193710 0 940
ValidOPairedWithReadyI_A 11812791 8193710 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 8193710 0 940
T1 1609 1184 0 1
T2 1035 843 0 1
T3 3006 1902 0 1
T4 6105 730 0 1
T5 1305 0 0 1
T6 2264 0 0 1
T9 2258 0 0 1
T10 0 2934 0 0
T16 1766 0 0 1
T19 0 293 0 0
T25 1151 0 0 1
T26 1057 0 0 1
T27 0 738 0 0
T28 0 761 0 0
T30 0 1183 0 0
T70 0 1114 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 8193710 0 0
T1 1609 1184 0 0
T2 1035 843 0 0
T3 3006 1902 0 0
T4 6105 730 0 0
T5 1305 0 0 0
T6 2264 0 0 0
T9 2258 0 0 0
T10 0 2934 0 0
T16 1766 0 0 0
T19 0 293 0 0
T25 1151 0 0 0
T26 1057 0 0 0
T27 0 738 0 0
T28 0 761 0 0
T30 0 1183 0 0
T70 0 1114 0 0

Line Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[1].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
TOTAL2424100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00
CONT_ASSIGN16311100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3  159 160 // Avoid possible lint errors in case InW > OutW. 161 if (InW > OutW) begin : gen_unused 162 logic [MaxW-MinW-1:0] unused_rdata_shifted; 163 1/1 assign unused_rdata_shifted = rdata_shifted[MaxW-1:MinW]; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[1].u_prim_packer_fifo_ep
TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT9,T10,T29

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT9,T10,T29
10CoveredT9,T10,T29
11CoveredT9,T10,T29

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT9,T10,T29

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT9,T10,T29

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT9,T10,T29
11CoveredT9,T10,T29

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT9,T10,T29

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT9,T10,T29

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT9,T10,T29

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT9,T10,T29

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT9,T10,T29
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT41,T31,T222
11CoveredT9,T10,T29

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT9,T10,T29
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[1].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
Branches 14 14 100.00
TERNARY 142 4 4 100.00
TERNARY 147 3 3 100.00
TERNARY 151 3 3 100.00
IF 82 2 2 100.00
IF 127 2 2 100.00


142 assign depth_d = clear_status ? '0 : -1- ==> 143 load_data ? max_value : -2- ==> 144 pull_data ? (depth_q - DepthOne) : -3- ==> ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T9,T10,T29
0 0 1 Covered T9,T10,T29
0 0 0 Covered T1,T2,T3


147 assign ptr_d = clear_status ? '0 : -1- ==> 148 pull_data ? (ptr_q + DepthOne) : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T9,T10,T29
0 0 Covered T1,T2,T3


151 assign data_d = clear_data ? '0 : -1- ==> 152 load_data ? wdata_i : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T9,T10,T29
0 0 Covered T1,T2,T3


82 if (!rst_ni) begin -1- 83 depth_q <= '0; ==> 84 data_q <= '0; 85 clr_q <= 1'b1; 86 end else begin 87 depth_q <= depth_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


127 if (!rst_ni) begin -1- 128 ptr_q <= '0; ==> 129 end else begin 130 ptr_q <= ptr_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[1].u_prim_packer_fifo_ep
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 11812791 272050 0 940
ValidOPairedWithReadyI_A 11812791 272050 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 272050 0 940
T7 1098 0 0 1
T9 2258 1128 0 1
T10 3605 3248 0 1
T19 744 0 0 1
T20 2153 0 0 1
T27 1062 0 0 1
T29 741 552 0 1
T30 2491 0 0 1
T31 0 126 0 0
T32 0 366 0 0
T40 0 2041 0 0
T41 0 227 0 0
T42 0 913 0 0
T70 1493 0 0 1
T73 1480 0 0 1
T76 0 1557 0 0
T77 0 504 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 272050 0 0
T7 1098 0 0 0
T9 2258 1128 0 0
T10 3605 3248 0 0
T19 744 0 0 0
T20 2153 0 0 0
T27 1062 0 0 0
T29 741 552 0 0
T30 2491 0 0 0
T31 0 126 0 0
T32 0 366 0 0
T40 0 2041 0 0
T41 0 227 0 0
T42 0 913 0 0
T70 1493 0 0 0
T73 1480 0 0 0
T76 0 1557 0 0
T77 0 504 0 0

Line Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[2].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
TOTAL2424100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00
CONT_ASSIGN16311100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3  159 160 // Avoid possible lint errors in case InW > OutW. 161 if (InW > OutW) begin : gen_unused 162 logic [MaxW-MinW-1:0] unused_rdata_shifted; 163 1/1 assign unused_rdata_shifted = rdata_shifted[MaxW-1:MinW]; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[2].u_prim_packer_fifo_ep
TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT3,T10,T40

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT3,T10,T40
10CoveredT3,T10,T40
11CoveredT3,T10,T40

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T10,T40

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT3,T10,T8

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT3,T10,T8
11CoveredT3,T10,T40

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T10,T8

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T10,T40

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T10,T40

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T10,T8

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT3,T10,T8
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT207,T198,T215
11CoveredT3,T10,T8

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT3,T10,T8
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[2].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
Branches 14 14 100.00
TERNARY 142 4 4 100.00
TERNARY 147 3 3 100.00
TERNARY 151 3 3 100.00
IF 82 2 2 100.00
IF 127 2 2 100.00


142 assign depth_d = clear_status ? '0 : -1- ==> 143 load_data ? max_value : -2- ==> 144 pull_data ? (depth_q - DepthOne) : -3- ==> ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T3,T10,T8
0 0 1 Covered T3,T10,T40
0 0 0 Covered T1,T2,T3


147 assign ptr_d = clear_status ? '0 : -1- ==> 148 pull_data ? (ptr_q + DepthOne) : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T3,T10,T40
0 0 Covered T1,T2,T3


151 assign data_d = clear_data ? '0 : -1- ==> 152 load_data ? wdata_i : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T3,T10,T8
0 0 Covered T1,T2,T3


82 if (!rst_ni) begin -1- 83 depth_q <= '0; ==> 84 data_q <= '0; 85 clr_q <= 1'b1; 86 end else begin 87 depth_q <= depth_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


127 if (!rst_ni) begin -1- 128 ptr_q <= '0; ==> 129 end else begin 130 ptr_q <= ptr_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[2].u_prim_packer_fifo_ep
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 11812791 221739 0 940
ValidOPairedWithReadyI_A 11812791 221739 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 221739 0 940
T3 3006 1926 0 1
T4 6105 0 0 1
T5 1305 0 0 1
T6 2264 0 0 1
T8 0 386 0 0
T9 2258 0 0 1
T10 0 2704 0 0
T16 1766 0 0 1
T24 0 1067 0 0
T25 1151 0 0 1
T26 1057 0 0 1
T27 1062 0 0 1
T40 0 1961 0 0
T56 0 1602 0 0
T70 1493 0 0 1
T78 0 2674 0 0
T81 0 1447 0 0
T82 0 638 0 0
T135 0 246 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 221739 0 0
T3 3006 1926 0 0
T4 6105 0 0 0
T5 1305 0 0 0
T6 2264 0 0 0
T8 0 386 0 0
T9 2258 0 0 0
T10 0 2704 0 0
T16 1766 0 0 0
T24 0 1067 0 0
T25 1151 0 0 0
T26 1057 0 0 0
T27 1062 0 0 0
T40 0 1961 0 0
T56 0 1602 0 0
T70 1493 0 0 0
T78 0 2674 0 0
T81 0 1447 0 0
T82 0 638 0 0
T135 0 246 0 0

Line Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[3].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
TOTAL2424100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00
CONT_ASSIGN16311100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3  159 160 // Avoid possible lint errors in case InW > OutW. 161 if (InW > OutW) begin : gen_unused 162 logic [MaxW-MinW-1:0] unused_rdata_shifted; 163 1/1 assign unused_rdata_shifted = rdata_shifted[MaxW-1:MinW]; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[3].u_prim_packer_fifo_ep
TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT43,T44,T45

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT43,T44,T45
10CoveredT5,T43,T44
11CoveredT43,T44,T45

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT43,T44,T45

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT5,T43,T44

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT5,T43,T44
11CoveredT5,T43,T44

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT5,T43,T44

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT5,T43,T44

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT5,T43,T44

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT5,T43,T44

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT5,T43,T44
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT43,T85,T47
11CoveredT5,T43,T44

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT5,T43,T44
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[3].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
Branches 14 14 100.00
TERNARY 142 4 4 100.00
TERNARY 147 3 3 100.00
TERNARY 151 3 3 100.00
IF 82 2 2 100.00
IF 127 2 2 100.00


142 assign depth_d = clear_status ? '0 : -1- ==> 143 load_data ? max_value : -2- ==> 144 pull_data ? (depth_q - DepthOne) : -3- ==> ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T5,T43,T44
0 0 1 Covered T5,T43,T44
0 0 0 Covered T1,T2,T3


147 assign ptr_d = clear_status ? '0 : -1- ==> 148 pull_data ? (ptr_q + DepthOne) : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T5,T43,T44
0 0 Covered T1,T2,T3


151 assign data_d = clear_data ? '0 : -1- ==> 152 load_data ? wdata_i : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T5,T43,T44
0 0 Covered T1,T2,T3


82 if (!rst_ni) begin -1- 83 depth_q <= '0; ==> 84 data_q <= '0; 85 clr_q <= 1'b1; 86 end else begin 87 depth_q <= depth_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


127 if (!rst_ni) begin -1- 128 ptr_q <= '0; ==> 129 end else begin 130 ptr_q <= ptr_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[3].u_prim_packer_fifo_ep
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 11812791 233012 0 940
ValidOPairedWithReadyI_A 11812791 233012 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 233012 0 940
T5 1305 528 0 1
T6 2264 0 0 1
T9 2258 0 0 1
T10 3605 0 0 1
T16 1766 0 0 1
T19 744 0 0 1
T25 1151 0 0 1
T26 1057 0 0 1
T27 1062 0 0 1
T43 0 129 0 0
T44 0 560 0 0
T45 0 978 0 0
T49 0 622 0 0
T70 1493 0 0 1
T78 0 2658 0 0
T83 0 964 0 0
T84 0 565 0 0
T85 0 277 0 0
T133 0 1137 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 233012 0 0
T5 1305 528 0 0
T6 2264 0 0 0
T9 2258 0 0 0
T10 3605 0 0 0
T16 1766 0 0 0
T19 744 0 0 0
T25 1151 0 0 0
T26 1057 0 0 0
T27 1062 0 0 0
T43 0 129 0 0
T44 0 560 0 0
T45 0 978 0 0
T49 0 622 0 0
T70 1493 0 0 0
T78 0 2658 0 0
T83 0 964 0 0
T84 0 565 0 0
T85 0 277 0 0
T133 0 1137 0 0

Line Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[4].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
TOTAL2424100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00
CONT_ASSIGN16311100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3  159 160 // Avoid possible lint errors in case InW > OutW. 161 if (InW > OutW) begin : gen_unused 162 logic [MaxW-MinW-1:0] unused_rdata_shifted; 163 1/1 assign unused_rdata_shifted = rdata_shifted[MaxW-1:MinW]; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[4].u_prim_packer_fifo_ep
TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT3,T26,T10

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT3,T26,T10
10CoveredT3,T26,T10
11CoveredT3,T26,T10

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T26,T10

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT3,T26,T10

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT3,T26,T10
11CoveredT3,T26,T10

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T26,T10

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T26,T10

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T26,T10

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT3,T26,T10

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT3,T26,T10
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT26,T81,T182
11CoveredT3,T26,T10

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT3,T26,T10
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[4].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
Branches 14 14 100.00
TERNARY 142 4 4 100.00
TERNARY 147 3 3 100.00
TERNARY 151 3 3 100.00
IF 82 2 2 100.00
IF 127 2 2 100.00


142 assign depth_d = clear_status ? '0 : -1- ==> 143 load_data ? max_value : -2- ==> 144 pull_data ? (depth_q - DepthOne) : -3- ==> ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T3,T26,T10
0 0 1 Covered T3,T26,T10
0 0 0 Covered T1,T2,T3


147 assign ptr_d = clear_status ? '0 : -1- ==> 148 pull_data ? (ptr_q + DepthOne) : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T3,T26,T10
0 0 Covered T1,T2,T3


151 assign data_d = clear_data ? '0 : -1- ==> 152 load_data ? wdata_i : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T3,T26,T10
0 0 Covered T1,T2,T3


82 if (!rst_ni) begin -1- 83 depth_q <= '0; ==> 84 data_q <= '0; 85 clr_q <= 1'b1; 86 end else begin 87 depth_q <= depth_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


127 if (!rst_ni) begin -1- 128 ptr_q <= '0; ==> 129 end else begin 130 ptr_q <= ptr_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[4].u_prim_packer_fifo_ep
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 11812791 175541 0 940
ValidOPairedWithReadyI_A 11812791 175541 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 175541 0 940
T3 3006 2227 0 1
T4 6105 0 0 1
T5 1305 0 0 1
T6 2264 0 0 1
T9 2258 0 0 1
T10 0 3212 0 0
T16 1766 0 0 1
T21 0 998 0 0
T25 1151 0 0 1
T26 1057 74 0 1
T27 1062 0 0 1
T34 0 397 0 0
T50 0 826 0 0
T51 0 634 0 0
T70 1493 0 0 1
T77 0 576 0 0
T81 0 111 0 0
T90 0 910 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 175541 0 0
T3 3006 2227 0 0
T4 6105 0 0 0
T5 1305 0 0 0
T6 2264 0 0 0
T9 2258 0 0 0
T10 0 3212 0 0
T16 1766 0 0 0
T21 0 998 0 0
T25 1151 0 0 0
T26 1057 74 0 0
T27 1062 0 0 0
T34 0 397 0 0
T50 0 826 0 0
T51 0 634 0 0
T70 1493 0 0 0
T77 0 576 0 0
T81 0 111 0 0
T90 0 910 0 0

Line Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[5].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
TOTAL2424100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00
CONT_ASSIGN16311100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3  159 160 // Avoid possible lint errors in case InW > OutW. 161 if (InW > OutW) begin : gen_unused 162 logic [MaxW-MinW-1:0] unused_rdata_shifted; 163 1/1 assign unused_rdata_shifted = rdata_shifted[MaxW-1:MinW]; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[5].u_prim_packer_fifo_ep
TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT10,T40,T53

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT10,T40,T53
10CoveredT6,T10,T40
11CoveredT10,T40,T53

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT10,T40,T53

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT6,T10,T40

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT6,T10,T40
11CoveredT6,T10,T40

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT6,T10,T40

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT6,T10,T40

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT6,T10,T40

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT6,T10,T40

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT6,T10,T40
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT93,T181,T206
11CoveredT6,T10,T40

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT6,T10,T40
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[5].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
Branches 14 14 100.00
TERNARY 142 4 4 100.00
TERNARY 147 3 3 100.00
TERNARY 151 3 3 100.00
IF 82 2 2 100.00
IF 127 2 2 100.00


142 assign depth_d = clear_status ? '0 : -1- ==> 143 load_data ? max_value : -2- ==> 144 pull_data ? (depth_q - DepthOne) : -3- ==> ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T6,T10,T40
0 0 1 Covered T6,T10,T40
0 0 0 Covered T1,T2,T3


147 assign ptr_d = clear_status ? '0 : -1- ==> 148 pull_data ? (ptr_q + DepthOne) : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T6,T10,T40
0 0 Covered T1,T2,T3


151 assign data_d = clear_data ? '0 : -1- ==> 152 load_data ? wdata_i : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T6,T10,T40
0 0 Covered T1,T2,T3


82 if (!rst_ni) begin -1- 83 depth_q <= '0; ==> 84 data_q <= '0; 85 clr_q <= 1'b1; 86 end else begin 87 depth_q <= depth_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


127 if (!rst_ni) begin -1- 128 ptr_q <= '0; ==> 129 end else begin 130 ptr_q <= ptr_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[5].u_prim_packer_fifo_ep
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 11812791 195104 0 940
ValidOPairedWithReadyI_A 11812791 195104 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 195104 0 940
T6 2264 1118 0 1
T7 1098 0 0 1
T9 2258 0 0 1
T10 3605 3207 0 1
T16 1766 0 0 1
T19 744 0 0 1
T27 1062 0 0 1
T29 741 0 0 1
T30 2491 0 0 1
T40 0 2256 0 0
T53 0 1038 0 0
T54 0 401 0 0
T55 0 384 0 0
T57 0 1252 0 0
T60 0 772 0 0
T70 1493 0 0 1
T78 0 2615 0 0
T93 0 244 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 195104 0 0
T6 2264 1118 0 0
T7 1098 0 0 0
T9 2258 0 0 0
T10 3605 3207 0 0
T16 1766 0 0 0
T19 744 0 0 0
T27 1062 0 0 0
T29 741 0 0 0
T30 2491 0 0 0
T40 0 2256 0 0
T53 0 1038 0 0
T54 0 401 0 0
T55 0 384 0 0
T57 0 1252 0 0
T60 0 772 0 0
T70 1493 0 0 0
T78 0 2615 0 0
T93 0 244 0 0

Line Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[6].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
TOTAL2424100.00
ALWAYS8277100.00
CONT_ASSIGN9411100.00
CONT_ASSIGN9611100.00
ALWAYS12733100.00
CONT_ASSIGN13611100.00
CONT_ASSIGN13711100.00
CONT_ASSIGN13811100.00
CONT_ASSIGN13911100.00
CONT_ASSIGN14011100.00
CONT_ASSIGN14211100.00
CONT_ASSIGN14711100.00
CONT_ASSIGN15111100.00
CONT_ASSIGN15611100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN15811100.00
CONT_ASSIGN16311100.00

81 always_ff @(posedge clk_i or negedge rst_ni) begin 82 1/1 if (!rst_ni) begin Tests: T1 T2 T3  83 1/1 depth_q <= '0; Tests: T1 T2 T3  84 1/1 data_q <= '0; Tests: T1 T2 T3  85 1/1 clr_q <= 1'b1; Tests: T1 T2 T3  86 end else begin 87 1/1 depth_q <= depth_d; Tests: T1 T2 T3  88 1/1 data_q <= data_d; Tests: T1 T2 T3  89 1/1 clr_q <= clr_d; Tests: T1 T2 T3  90 end 91 end 92 93 // flop for handling reset case for clr 94 1/1 assign clr_d = clr_i; Tests: T1 T2 T3  95 96 1/1 assign depth_o = depth_q; Tests: T1 T2 T3  97 98 if (InW < OutW) begin : gen_pack_mode 99 logic [MaxW-1:0] wdata_shifted; 100 101 assign wdata_shifted = {{OutW - InW{1'b0}}, wdata_i} << (depth_q*InW); 102 assign clear_status = (rready_i && rvalid_o) || clr_q; 103 assign clear_data = (ClearOnRead && clear_status) || clr_q; 104 assign load_data = wvalid_i && wready_o; 105 106 assign depth_d = clear_status ? '0 : 107 load_data ? (depth_q + DepthOne): 108 depth_q; 109 110 assign data_d = clear_data ? '0 : 111 load_data ? (wdata_shifted | (depth_q == 0 ? '0 : data_q)) : 112 data_q; 113 114 // set outputs 115 assign wready_o = !(depth_q == FullDepth) && !clr_q; 116 assign rdata_o = data_q; 117 assign rvalid_o = (depth_q == FullDepth) && !clr_q; 118 119 end else begin : gen_unpack_mode 120 logic [MaxW-1:0] rdata_shifted; 121 logic pull_data; 122 logic [DepthW:0] ptr_q, ptr_d; 123 logic [DepthW:0] lsb_is_one; 124 logic [DepthW:0] max_value; 125 126 always_ff @(posedge clk_i or negedge rst_ni) begin 127 1/1 if (!rst_ni) begin Tests: T1 T2 T3  128 1/1 ptr_q <= '0; Tests: T1 T2 T3  129 end else begin 130 1/1 ptr_q <= ptr_d; Tests: T1 T2 T3  131 end 132 end 133 134 assign lsb_is_one = {{DepthW{1'b0}},1'b1}; 135 assign max_value = FullDepth; 136 1/1 assign rdata_shifted = data_q >> ptr_q*OutW; Tests: T1 T2 T3  137 1/1 assign clear_status = (rready_i && (depth_q == lsb_is_one)) || clr_q; Tests: T1 T2 T3  138 1/1 assign clear_data = (ClearOnRead && clear_status) || clr_q; Tests: T1 T2 T3  139 1/1 assign load_data = wvalid_i && wready_o; Tests: T1 T2 T3  140 1/1 assign pull_data = rvalid_o && rready_i; Tests: T1 T2 T3  141 142 1/1 assign depth_d = clear_status ? '0 : Tests: T1 T2 T3  143 load_data ? max_value : 144 pull_data ? (depth_q - DepthOne) : 145 depth_q; 146 147 1/1 assign ptr_d = clear_status ? '0 : Tests: T1 T2 T3  148 pull_data ? (ptr_q + DepthOne) : 149 ptr_q; 150 151 1/1 assign data_d = clear_data ? '0 : Tests: T1 T2 T3  152 load_data ? wdata_i : 153 data_q; 154 155 // set outputs 156 1/1 assign wready_o = (depth_q == '0) && !clr_q; Tests: T1 T2 T3  157 1/1 assign rdata_o = rdata_shifted[OutW-1:0]; Tests: T1 T2 T3  158 1/1 assign rvalid_o = !(depth_q == '0) && !clr_q; Tests: T1 T2 T3  159 160 // Avoid possible lint errors in case InW > OutW. 161 if (InW > OutW) begin : gen_unused 162 logic [MaxW-MinW-1:0] unused_rdata_shifted; 163 1/1 assign unused_rdata_shifted = rdata_shifted[MaxW-1:MinW]; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[6].u_prim_packer_fifo_ep
TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

 LINE       137
 EXPRESSION ((rready_i && (depth_q == gen_unpack_mode.lsb_is_one)) || clr_q)
             --------------------------1--------------------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10CoveredT10,T20,T31

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT10,T20,T31
10CoveredT10,T20,T31
11CoveredT10,T20,T31

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT10,T20,T31

 LINE       138
 EXPRESSION (((ClearOnRead && clear_status)) || clr_q)
             ---------------1---------------    --2--
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T2,T3
10Unreachable

 LINE       139
 EXPRESSION (wvalid_i && wready_o)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT10,T20,T31

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT10,T20,T31
11CoveredT10,T20,T31

 LINE       142
 EXPRESSION (clear_status ? '0 : (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       142
 SUB-EXPRESSION (load_data ? gen_unpack_mode.max_value : (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q))
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT10,T20,T31

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT10,T20,T31

 LINE       147
 EXPRESSION (clear_status ? '0 : (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q))
             ------1-----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       147
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((gen_unpack_mode.ptr_q + DepthOne)) : gen_unpack_mode.ptr_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT10,T20,T31

 LINE       151
 EXPRESSION (clear_data ? '0 : (load_data ? wdata_i : data_q))
             -----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       151
 SUB-EXPRESSION (load_data ? wdata_i : data_q)
                 ----1----
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT10,T20,T31

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT10,T20,T31
10CoveredT1,T2,T3
11CoveredT1,T2,T3

 LINE       156
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT223,T149,T224
11CoveredT10,T20,T31

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT10,T20,T31
1CoveredT1,T2,T3

 LINE       158
 SUB-EXPRESSION (depth_q == '0)
                -------1-------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

Branch Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[6].u_prim_packer_fifo_ep
Line No.TotalCoveredPercent
Branches 14 14 100.00
TERNARY 142 4 4 100.00
TERNARY 147 3 3 100.00
TERNARY 151 3 3 100.00
IF 82 2 2 100.00
IF 127 2 2 100.00


142 assign depth_d = clear_status ? '0 : -1- ==> 143 load_data ? max_value : -2- ==> 144 pull_data ? (depth_q - DepthOne) : -3- ==> ==>

Branches:
-1--2--3-StatusTests
1 - - Covered T1,T2,T3
0 1 - Covered T10,T20,T31
0 0 1 Covered T10,T20,T31
0 0 0 Covered T1,T2,T3


147 assign ptr_d = clear_status ? '0 : -1- ==> 148 pull_data ? (ptr_q + DepthOne) : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T10,T20,T31
0 0 Covered T1,T2,T3


151 assign data_d = clear_data ? '0 : -1- ==> 152 load_data ? wdata_i : -2- ==> ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T10,T20,T31
0 0 Covered T1,T2,T3


82 if (!rst_ni) begin -1- 83 depth_q <= '0; ==> 84 data_q <= '0; 85 clr_q <= 1'b1; 86 end else begin 87 depth_q <= depth_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


127 if (!rst_ni) begin -1- 128 ptr_q <= '0; ==> 129 end else begin 130 ptr_q <= ptr_d; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


Assert Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[6].u_prim_packer_fifo_ep
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 2 2 100.00 2 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 2 2 100.00 2 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 11812791 151282 0 940
ValidOPairedWithReadyI_A 11812791 151282 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 151282 0 940
T7 1098 0 0 1
T8 1230 0 0 1
T10 3605 1533 0 1
T19 744 0 0 1
T20 2153 700 0 1
T22 0 1128 0 0
T23 0 601 0 0
T28 984 0 0 1
T29 741 0 0 1
T30 2491 0 0 1
T31 0 1437 0 0
T40 0 2226 0 0
T60 0 738 0 0
T73 1480 0 0 1
T75 1137 0 0 1
T78 0 2598 0 0
T98 0 363 0 0
T99 0 945 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 151282 0 0
T7 1098 0 0 0
T8 1230 0 0 0
T10 3605 1533 0 0
T19 744 0 0 0
T20 2153 700 0 0
T22 0 1128 0 0
T23 0 601 0 0
T28 984 0 0 0
T29 741 0 0 0
T30 2491 0 0 0
T31 0 1437 0 0
T40 0 2226 0 0
T60 0 738 0 0
T73 1480 0 0 0
T75 1137 0 0 0
T78 0 2598 0 0
T98 0 363 0 0
T99 0 945 0 0

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%