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
01CoveredT3,T19,T20
10CoveredT1,T2,T19
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,T19
10CoveredT3,T19,T20
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,T10,T18
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,T20

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

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

 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
10CoveredT20,T27,T40
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 101984536 10650998 0 7608
ValidOPairedWithReadyI_A 101984536 10650998 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 101984536 10650998 0 7608
T1 1011 812 0 1
T2 1118 911 0 1
T3 1676 300 0 2
T4 2250 0 0 2
T5 21804 839 0 2
T6 1282 0 0 1
T9 3747 0 0 1
T10 3453 0 0 1
T14 0 1577 0 0
T19 1524 0 0 2
T20 3284 1007 0 2
T21 4776 1382 0 2
T22 1810 0 0 2
T23 3264 1233 0 2
T24 1393 1002 0 1
T25 1626 0 0 1
T26 1984 0 0 1
T27 0 111 0 0
T28 0 845 0 0
T36 2953 6481 0 1
T37 930 0 0 1
T39 14459 7981 0 1
T40 0 233 0 0
T49 0 2139 0 0
T61 982 0 0 1
T62 1493 1132 0 1
T64 0 661 0 0
T65 0 802 0 0
T66 0 1041 0 0
T67 0 1113 0 0
T68 0 355 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 101984536 10650998 0 0
T1 1011 812 0 0
T2 1118 911 0 0
T3 1676 300 0 0
T4 2250 0 0 0
T5 21804 839 0 0
T6 1282 0 0 0
T9 3747 0 0 0
T10 3453 0 0 0
T14 0 1577 0 0
T19 1524 0 0 0
T20 3284 1007 0 0
T21 4776 1382 0 0
T22 1810 0 0 0
T23 3264 1233 0 0
T24 1393 1002 0 0
T25 1626 0 0 0
T26 1984 0 0 0
T27 0 111 0 0
T28 0 845 0 0
T36 2953 6481 0 0
T37 930 0 0 0
T39 14459 7981 0 0
T40 0 233 0 0
T49 0 2139 0 0
T61 982 0 0 0
T62 1493 1132 0 0
T64 0 661 0 0
T65 0 802 0 0
T66 0 1041 0 0
T67 0 1113 0 0
T68 0 355 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
01CoveredT3,T19,T20
10CoveredT1,T2,T19
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,T19
10CoveredT3,T19,T20
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,T10,T18
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 12748067 172743 0 951
ValidOPairedWithReadyI_A 12748067 172743 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 172743 0 951
T3 838 31 0 1
T4 1125 0 0 1
T5 10902 0 0 1
T9 3747 757 0 1
T10 0 736 0 0
T14 0 171 0 0
T19 762 454 0 1
T20 1642 27 0 1
T21 2388 30 0 1
T22 905 0 0 1
T23 1632 0 0 1
T24 1393 0 0 1
T28 0 13 0 0
T29 0 30 0 0
T36 0 31 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 172743 0 0
T3 838 31 0 0
T4 1125 0 0 0
T5 10902 0 0 0
T9 3747 757 0 0
T10 0 736 0 0
T14 0 171 0 0
T19 762 454 0 0
T20 1642 27 0 0
T21 2388 30 0 0
T22 905 0 0 0
T23 1632 0 0 0
T24 1393 0 0 0
T28 0 13 0 0
T29 0 30 0 0
T36 0 31 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,T20

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

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

 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,T20

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

 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,T20

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

 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,T20

 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,T20

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T20
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
10CoveredT20,T133,T152
11CoveredT1,T2,T20

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT1,T2,T20
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,T20
0 0 1 Covered T1,T2,T20
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,T20
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,T20
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 12748067 8562482 0 951
ValidOPairedWithReadyI_A 12748067 8562482 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 8562482 0 951
T1 1011 812 0 1
T2 1118 911 0 1
T3 838 0 0 1
T4 1125 0 0 1
T5 10902 839 0 1
T19 762 0 0 1
T20 1642 1007 0 1
T21 2388 1382 0 1
T22 905 0 0 1
T23 1632 1233 0 1
T24 0 1002 0 0
T36 0 2132 0 0
T39 0 7981 0 0
T62 0 1132 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 8562482 0 0
T1 1011 812 0 0
T2 1118 911 0 0
T3 838 0 0 0
T4 1125 0 0 0
T5 10902 839 0 0
T19 762 0 0 0
T20 1642 1007 0 0
T21 2388 1382 0 0
T22 905 0 0 0
T23 1632 1233 0 0
T24 0 1002 0 0
T36 0 2132 0 0
T39 0 7981 0 0
T62 0 1132 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
10CoveredT36,T27,T64

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT36,T27,T64
10CoveredT3,T28,T36
11CoveredT36,T27,T64

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

 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,T28,T36

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

 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,T28,T36

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

 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,T28,T36

 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,T28,T36

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT3,T28,T36
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
10CoveredT27,T71,T228
11CoveredT3,T28,T36

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT3,T28,T36
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 T3,T28,T36
0 0 1 Covered T3,T28,T36
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,T28,T36
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,T28,T36
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 12748067 317032 0 951
ValidOPairedWithReadyI_A 12748067 317032 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 317032 0 951
T3 838 300 0 1
T4 1125 0 0 1
T5 10902 0 0 1
T9 3747 0 0 1
T19 762 0 0 1
T20 1642 0 0 1
T21 2388 0 0 1
T22 905 0 0 1
T23 1632 0 0 1
T24 1393 0 0 1
T27 0 111 0 0
T28 0 845 0 0
T36 0 2149 0 0
T49 0 2139 0 0
T64 0 661 0 0
T65 0 802 0 0
T66 0 1041 0 0
T67 0 1113 0 0
T68 0 355 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 317032 0 0
T3 838 300 0 0
T4 1125 0 0 0
T5 10902 0 0 0
T9 3747 0 0 0
T19 762 0 0 0
T20 1642 0 0 0
T21 2388 0 0 0
T22 905 0 0 0
T23 1632 0 0 0
T24 1393 0 0 0
T27 0 111 0 0
T28 0 845 0 0
T36 0 2149 0 0
T49 0 2139 0 0
T64 0 661 0 0
T65 0 802 0 0
T66 0 1041 0 0
T67 0 1113 0 0
T68 0 355 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
10CoveredT36,T14,T40

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

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T14,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
11CoveredT36,T14,T40

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT36,T14,T40
11CoveredT36,T14,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
1CoveredT36,T14,T40

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T14,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
1CoveredT36,T14,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
1CoveredT36,T14,T40

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT36,T14,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
10CoveredT40,T199,T205
11CoveredT36,T14,T40

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT36,T14,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[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 T36,T14,T40
0 0 1 Covered T36,T14,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 T36,T14,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 T36,T14,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[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 12748067 650795 0 951
ValidOPairedWithReadyI_A 12748067 650795 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 650795 0 951
T6 1282 0 0 1
T10 3453 0 0 1
T14 3185 1577 0 1
T25 1626 0 0 1
T26 1984 0 0 1
T36 2953 2200 0 1
T37 930 0 0 1
T39 14459 0 0 1
T40 0 233 0 0
T41 0 1580 0 0
T48 0 2220 0 0
T61 982 0 0 1
T62 1493 0 0 1
T73 0 1143 0 0
T74 0 1209 0 0
T75 0 969 0 0
T76 0 557 0 0
T77 0 1401 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 650795 0 0
T6 1282 0 0 0
T10 3453 0 0 0
T14 3185 1577 0 0
T25 1626 0 0 0
T26 1984 0 0 0
T36 2953 2200 0 0
T37 930 0 0 0
T39 14459 0 0 0
T40 0 233 0 0
T41 0 1580 0 0
T48 0 2220 0 0
T61 982 0 0 0
T62 1493 0 0 0
T73 0 1143 0 0
T74 0 1209 0 0
T75 0 969 0 0
T76 0 557 0 0
T77 0 1401 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
10CoveredT19,T10,T14

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

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

 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
11CoveredT19,T9,T10

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT19,T9,T10
11CoveredT19,T9,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
1CoveredT19,T9,T10

 LINE       142
 SUB-EXPRESSION (gen_unpack_mode.pull_data ? ((depth_q - DepthOne)) : depth_q)
                 ------------1------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT19,T9,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
1CoveredT19,T9,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
1CoveredT19,T9,T10

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT19,T9,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
10CoveredT19,T67,T210
11CoveredT19,T9,T10

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT19,T9,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[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 T19,T9,T10
0 0 1 Covered T19,T9,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 T19,T9,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 T19,T9,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[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 12748067 432168 0 951
ValidOPairedWithReadyI_A 12748067 432168 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 432168 0 951
T4 1125 0 0 1
T5 10902 0 0 1
T9 3747 1342 0 1
T10 0 965 0 0
T14 0 2552 0 0
T18 0 1113 0 0
T19 762 165 0 1
T20 1642 0 0 1
T21 2388 0 0 1
T22 905 0 0 1
T23 1632 0 0 1
T24 1393 0 0 1
T28 1873 0 0 1
T42 0 2615 0 0
T43 0 224 0 0
T67 0 111 0 0
T74 0 1179 0 0
T79 0 911 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 432168 0 0
T4 1125 0 0 0
T5 10902 0 0 0
T9 3747 1342 0 0
T10 0 965 0 0
T14 0 2552 0 0
T18 0 1113 0 0
T19 762 165 0 0
T20 1642 0 0 0
T21 2388 0 0 0
T22 905 0 0 0
T23 1632 0 0 0
T24 1393 0 0 0
T28 1873 0 0 0
T42 0 2615 0 0
T43 0 224 0 0
T67 0 111 0 0
T74 0 1179 0 0
T79 0 911 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
10CoveredT36,T26,T45

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

 LINE       137
 SUB-EXPRESSION (depth_q == gen_unpack_mode.lsb_is_one)
                -------------------1-------------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T26,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
11CoveredT36,T26,T45

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

 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
1CoveredT36,T26,T45

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

 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
1CoveredT36,T26,T45

 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
1CoveredT36,T26,T45

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT36,T26,T45
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
10CoveredT86,T229,T202
11CoveredT36,T26,T45

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT36,T26,T45
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 T36,T26,T45
0 0 1 Covered T36,T26,T45
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 T36,T26,T45
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 T36,T26,T45
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 12748067 188192 0 951
ValidOPairedWithReadyI_A 12748067 188192 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 188192 0 951
T6 1282 0 0 1
T10 3453 0 0 1
T14 3185 0 0 1
T25 1626 0 0 1
T26 1984 1209 0 1
T36 2953 2096 0 1
T37 930 0 0 1
T39 14459 0 0 1
T41 0 1506 0 0
T45 0 1053 0 0
T48 0 1264 0 0
T61 982 0 0 1
T62 1493 0 0 1
T79 0 891 0 0
T85 0 1243 0 0
T86 0 145 0 0
T87 0 1315 0 0
T88 0 1155 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 188192 0 0
T6 1282 0 0 0
T10 3453 0 0 0
T14 3185 0 0 0
T25 1626 0 0 0
T26 1984 1209 0 0
T36 2953 2096 0 0
T37 930 0 0 0
T39 14459 0 0 0
T41 0 1506 0 0
T45 0 1053 0 0
T48 0 1264 0 0
T61 982 0 0 0
T62 1493 0 0 0
T79 0 891 0 0
T85 0 1243 0 0
T86 0 145 0 0
T87 0 1315 0 0
T88 0 1155 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
10CoveredT37,T38,T42

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT37,T38,T42
10CoveredT37,T38,T42
11CoveredT37,T38,T42

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

 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
11CoveredT37,T38,T42

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT37,T38,T42
11CoveredT37,T38,T42

 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
1CoveredT37,T38,T42

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

 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
1CoveredT37,T38,T42

 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
1CoveredT37,T38,T42

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT37,T38,T42
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
10CoveredT47,T87,T230
11CoveredT37,T38,T42

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT37,T38,T42
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 T37,T38,T42
0 0 1 Covered T37,T38,T42
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 T37,T38,T42
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 T37,T38,T42
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 12748067 182878 0 951
ValidOPairedWithReadyI_A 12748067 182878 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 182878 0 951
T10 3453 0 0 1
T14 3185 0 0 1
T15 50677 0 0 1
T25 1626 0 0 1
T26 1984 0 0 1
T29 1210 0 0 1
T31 0 522 0 0
T37 930 702 0 1
T38 0 530 0 0
T39 14459 0 0 1
T42 0 4884 0 0
T47 0 67 0 0
T48 0 1267 0 0
T49 0 2038 0 0
T51 0 963 0 0
T61 982 0 0 1
T62 1493 0 0 1
T93 0 1096 0 0
T94 0 1071 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 182878 0 0
T10 3453 0 0 0
T14 3185 0 0 0
T15 50677 0 0 0
T25 1626 0 0 0
T26 1984 0 0 0
T29 1210 0 0 0
T31 0 522 0 0
T37 930 702 0 0
T38 0 530 0 0
T39 14459 0 0 0
T42 0 4884 0 0
T47 0 67 0 0
T48 0 1267 0 0
T49 0 2038 0 0
T51 0 963 0 0
T61 982 0 0 0
T62 1493 0 0 0
T93 0 1096 0 0
T94 0 1071 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
10CoveredT9,T36,T97

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

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

 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,T36,T7

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

 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,T36,T7

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

 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,T36,T7

 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,T36,T7

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT9,T36,T7
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
10CoveredT50,T231,T232
11CoveredT9,T36,T7

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT9,T36,T7
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 T9,T36,T7
0 0 1 Covered T9,T36,T7
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,T36,T7
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,T36,T7
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 12748067 144708 0 951
ValidOPairedWithReadyI_A 12748067 144708 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 144708 0 951
T6 1282 0 0 1
T7 0 257 0 0
T9 3747 1315 0 1
T10 3453 0 0 1
T24 1393 0 0 1
T26 1984 0 0 1
T28 1873 0 0 1
T36 2953 2194 0 1
T37 930 0 0 1
T39 14459 0 0 1
T41 0 1823 0 0
T50 0 301 0 0
T61 982 0 0 1
T97 0 907 0 0
T98 0 404 0 0
T99 0 784 0 0
T100 0 780 0 0
T101 0 601 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12748067 144708 0 0
T6 1282 0 0 0
T7 0 257 0 0
T9 3747 1315 0 0
T10 3453 0 0 0
T24 1393 0 0 0
T26 1984 0 0 0
T28 1873 0 0 0
T36 2953 2194 0 0
T37 930 0 0 0
T39 14459 0 0 0
T41 0 1823 0 0
T50 0 301 0 0
T61 982 0 0 0
T97 0 907 0 0
T98 0 404 0 0
T99 0 784 0 0
T100 0 780 0 0
T101 0 601 0 0

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