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
01CoveredT17,T4,T10
10CoveredT1,T2,T3
11CoveredT1,T2,T3

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

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

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

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT17,T4,T10
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
10CoveredT10,T12,T21
11CoveredT1,T2,T3

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

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

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

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

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

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

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

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

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

TotalCoveredPercent
Conditions424095.24
Logical424095.24
Non-Logical00
Event00

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT17,T109,T81
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 99778000 10724226 0 7568
ValidOPairedWithReadyI_A 99778000 10724226 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 99778000 10724226 0 7568
T1 1872 1377 0 1
T2 1509 1116 0 1
T3 2534 1827 0 1
T4 1705 821 0 1
T5 652 0 0 1
T6 10597 4463 0 1
T7 1215 0 0 1
T10 2468 732 0 1
T11 4162 2147 0 1
T12 2180 1087 0 1
T13 2075 3238 0 1
T16 1463 0 0 1
T17 2262 1214 0 1
T22 0 816 0 0
T24 1402 0 0 1
T25 1337 1037 0 1
T26 1206 0 0 1
T27 827 555 0 1
T28 1036 0 0 1
T29 776 0 0 1
T40 0 4829 0 0
T43 0 2979 0 0
T46 0 2526 0 0
T47 0 1279 0 0
T70 1539 0 0 1
T73 1256 0 0 1
T76 0 1404 0 0
T77 0 778 0 0
T78 0 868 0 0
T79 0 1841 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 99778000 10724226 0 0
T1 1872 1377 0 0
T2 1509 1116 0 0
T3 2534 1827 0 0
T4 1705 821 0 0
T5 652 0 0 0
T6 10597 4463 0 0
T7 1215 0 0 0
T10 2468 732 0 0
T11 4162 2147 0 0
T12 2180 1087 0 0
T13 2075 3238 0 0
T16 1463 0 0 0
T17 2262 1214 0 0
T22 0 816 0 0
T24 1402 0 0 0
T25 1337 1037 0 0
T26 1206 0 0 0
T27 827 555 0 0
T28 1036 0 0 0
T29 776 0 0 0
T40 0 4829 0 0
T43 0 2979 0 0
T46 0 2526 0 0
T47 0 1279 0 0
T70 1539 0 0 0
T73 1256 0 0 0
T76 0 1404 0 0
T77 0 778 0 0
T78 0 868 0 0
T79 0 1841 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
01CoveredT17,T4,T10
10CoveredT1,T2,T3
11CoveredT1,T2,T3

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

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

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

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT17,T4,T10
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
10CoveredT10,T12,T21
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 12472250 125459 0 946
ValidOPairedWithReadyI_A 12472250 125459 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 125459 0 946
T4 1705 61 0 1
T5 652 0 0 1
T6 10597 0 0 1
T10 2468 517 0 1
T11 4162 487 0 1
T12 0 155 0 0
T16 0 42 0 0
T17 2262 156 0 1
T21 0 615 0 0
T24 1402 0 0 1
T25 1337 0 0 1
T26 1206 0 0 1
T27 827 0 0 1
T29 0 474 0 0
T57 0 76 0 0
T74 0 41 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 125459 0 0
T4 1705 61 0 0
T5 652 0 0 0
T6 10597 0 0 0
T10 2468 517 0 0
T11 4162 487 0 0
T12 0 155 0 0
T16 0 42 0 0
T17 2262 156 0 0
T21 0 615 0 0
T24 1402 0 0 0
T25 1337 0 0 0
T26 1206 0 0 0
T27 827 0 0 0
T29 0 474 0 0
T57 0 76 0 0
T74 0 41 0 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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


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

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


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

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


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

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


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




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DataOStableWhenPending_A 12472250 8562560 0 946
ValidOPairedWithReadyI_A 12472250 8562560 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 8562560 0 946
T1 1872 1377 0 1
T2 1509 1116 0 1
T3 2534 1827 0 1
T4 1705 821 0 1
T5 652 0 0 1
T6 10597 4463 0 1
T11 0 2147 0 0
T12 0 1087 0 0
T17 2262 1214 0 1
T24 1402 0 0 1
T25 1337 1037 0 1
T26 1206 0 0 1
T27 0 555 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 8562560 0 0
T1 1872 1377 0 0
T2 1509 1116 0 0
T3 2534 1827 0 0
T4 1705 821 0 0
T5 652 0 0 0
T6 10597 4463 0 0
T11 0 2147 0 0
T12 0 1087 0 0
T17 2262 1214 0 0
T24 1402 0 0 0
T25 1337 1037 0 0
T26 1206 0 0 0
T27 0 555 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
10CoveredT22,T40,T13

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT22,T40,T13
10CoveredT10,T22,T40
11CoveredT22,T40,T13

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

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

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

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

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

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT10,T22,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
10CoveredT230,T86,T127
11CoveredT10,T22,T40

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT10,T22,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[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 T10,T22,T40
0 0 1 Covered T10,T22,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 T10,T22,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 T10,T22,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[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 12472250 391861 0 946
ValidOPairedWithReadyI_A 12472250 391861 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 391861 0 946
T7 1215 0 0 1
T10 2468 732 0 1
T11 4162 0 0 1
T12 2180 0 0 1
T13 0 1648 0 0
T16 1463 0 0 1
T22 0 816 0 0
T27 827 0 0 1
T28 1036 0 0 1
T29 776 0 0 1
T40 0 4829 0 0
T43 0 1538 0 0
T46 0 1277 0 0
T70 1539 0 0 1
T73 1256 0 0 1
T76 0 1404 0 0
T77 0 778 0 0
T78 0 868 0 0
T79 0 1841 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 391861 0 0
T7 1215 0 0 0
T10 2468 732 0 0
T11 4162 0 0 0
T12 2180 0 0 0
T13 0 1648 0 0
T16 1463 0 0 0
T22 0 816 0 0
T27 827 0 0 0
T28 1036 0 0 0
T29 776 0 0 0
T40 0 4829 0 0
T43 0 1538 0 0
T46 0 1277 0 0
T70 1539 0 0 0
T73 1256 0 0 0
T76 0 1404 0 0
T77 0 778 0 0
T78 0 868 0 0
T79 0 1841 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
10CoveredT13,T43,T47

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT13,T43,T47
10CoveredT13,T43,T47
11CoveredT13,T43,T47

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

 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
11CoveredT13,T43,T47

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

 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
1CoveredT13,T43,T47

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

 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
1CoveredT13,T43,T47

 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
1CoveredT13,T43,T47

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT13,T43,T47
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
10CoveredT81,T83,T89
11CoveredT13,T43,T47

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT13,T43,T47
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 T13,T43,T47
0 0 1 Covered T13,T43,T47
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 T13,T43,T47
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 T13,T43,T47
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 12472250 222754 0 946
ValidOPairedWithReadyI_A 12472250 222754 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 222754 0 946
T13 2075 1590 0 1
T23 4136 0 0 1
T43 0 1441 0 0
T46 0 1249 0 0
T47 0 1279 0 0
T48 0 984 0 0
T49 0 2183 0 0
T50 756 0 0 1
T64 594 0 0 1
T65 21617 0 0 1
T66 1102 0 0 1
T67 2576 0 0 1
T68 1086 0 0 1
T69 10634 0 0 1
T81 0 203 0 0
T82 0 1114 0 0
T83 0 1034 0 0
T84 0 651 0 0
T85 945 0 0 1

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 222754 0 0
T13 2075 1590 0 0
T23 4136 0 0 0
T43 0 1441 0 0
T46 0 1249 0 0
T47 0 1279 0 0
T48 0 984 0 0
T49 0 2183 0 0
T50 756 0 0 0
T64 594 0 0 0
T65 21617 0 0 0
T66 1102 0 0 0
T67 2576 0 0 0
T68 1086 0 0 0
T69 10634 0 0 0
T81 0 203 0 0
T82 0 1114 0 0
T83 0 1034 0 0
T84 0 651 0 0
T85 945 0 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
10CoveredT29,T30,T13

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT29,T30,T13
10CoveredT29,T30,T13
11CoveredT29,T30,T13

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

 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
11CoveredT29,T30,T13

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT29,T30,T13
11CoveredT29,T30,T13

 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
1CoveredT29,T30,T13

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

 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
1CoveredT29,T30,T13

 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
1CoveredT29,T30,T13

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT29,T30,T13
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
10CoveredT29,T210,T231
11CoveredT29,T30,T13

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT29,T30,T13
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 T29,T30,T13
0 0 1 Covered T29,T30,T13
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 T29,T30,T13
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 T29,T30,T13
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 12472250 435766 0 946
ValidOPairedWithReadyI_A 12472250 435766 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 435766 0 946
T7 1215 0 0 1
T12 2180 0 0 1
T13 0 1496 0 0
T16 1463 0 0 1
T21 2636 0 0 1
T28 1036 0 0 1
T29 776 54 0 1
T30 0 1332 0 0
T35 0 151 0 0
T50 0 596 0 0
T51 0 278 0 0
T52 0 1449 0 0
T57 1945 0 0 1
T70 1539 0 0 1
T73 1256 0 0 1
T74 2100 0 0 1
T87 0 1103 0 0
T88 0 1025 0 0
T89 0 1616 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 435766 0 0
T7 1215 0 0 0
T12 2180 0 0 0
T13 0 1496 0 0
T16 1463 0 0 0
T21 2636 0 0 0
T28 1036 0 0 0
T29 776 54 0 0
T30 0 1332 0 0
T35 0 151 0 0
T50 0 596 0 0
T51 0 278 0 0
T52 0 1449 0 0
T57 1945 0 0 0
T70 1539 0 0 0
T73 1256 0 0 0
T74 2100 0 0 0
T87 0 1103 0 0
T88 0 1025 0 0
T89 0 1616 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
10CoveredT13,T23,T53

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT13,T23,T53
10CoveredT24,T13,T23
11CoveredT13,T23,T53

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

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

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

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT24,T13,T23
11CoveredT24,T13,T23

 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
1CoveredT24,T13,T23

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

 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
1CoveredT24,T13,T23

 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
1CoveredT24,T13,T23

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT24,T13,T23
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
10CoveredT24,T94,T232
11CoveredT24,T13,T23

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT24,T13,T23
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 T24,T13,T23
0 0 1 Covered T24,T13,T23
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 T24,T13,T23
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 T24,T13,T23
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 12472250 393000 0 946
ValidOPairedWithReadyI_A 12472250 393000 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 393000 0 946
T6 10597 0 0 1
T7 1215 0 0 1
T10 2468 0 0 1
T11 4162 0 0 1
T12 2180 0 0 1
T13 0 1459 0 0
T23 0 1144 0 0
T24 1402 1153 0 1
T25 1337 0 0 1
T26 1206 0 0 1
T27 827 0 0 1
T29 776 0 0 1
T44 0 2434 0 0
T52 0 1628 0 0
T53 0 2171 0 0
T93 0 668 0 0
T94 0 885 0 0
T95 0 702 0 0
T96 0 952 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 393000 0 0
T6 10597 0 0 0
T7 1215 0 0 0
T10 2468 0 0 0
T11 4162 0 0 0
T12 2180 0 0 0
T13 0 1459 0 0
T23 0 1144 0 0
T24 1402 1153 0 0
T25 1337 0 0 0
T26 1206 0 0 0
T27 827 0 0 0
T29 776 0 0 0
T44 0 2434 0 0
T52 0 1628 0 0
T53 0 2171 0 0
T93 0 668 0 0
T94 0 885 0 0
T95 0 702 0 0
T96 0 952 0 0

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

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

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

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

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

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

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

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

 LINE       140
 EXPRESSION (rvalid_o && rready_i)
             ----1---    ----2---
-1--2-StatusTests
01Not Covered
10CoveredT10,T41,T8
11CoveredT10,T41,T13

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

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

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

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

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

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

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

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

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

 LINE       158
 EXPRESSION (( ! (depth_q == '0) ) && ((!clr_q)))
             ----------1----------    -----2----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT99,T101,T233
11CoveredT10,T41,T8

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

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

Branch Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[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 T10,T41,T8
0 0 1 Covered T10,T41,T13
0 0 0 Covered T1,T2,T3


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

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


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

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


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

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


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

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


Assert Coverage for Instance : tb.dut.u_edn_core.gen_ep_blk[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 12472250 413245 0 946
ValidOPairedWithReadyI_A 12472250 413245 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 413245 0 946
T7 1215 0 0 1
T8 0 1148 0 0
T10 2468 666 0 1
T11 4162 0 0 1
T12 2180 0 0 1
T13 0 1045 0 0
T16 1463 0 0 1
T27 827 0 0 1
T28 1036 0 0 1
T29 776 0 0 1
T32 0 528 0 0
T41 0 750 0 0
T43 0 1603 0 0
T70 1539 0 0 1
T73 1256 0 0 1
T97 0 1112 0 0
T98 0 613 0 0
T99 0 842 0 0
T100 0 965 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 413245 0 0
T7 1215 0 0 0
T8 0 1148 0 0
T10 2468 666 0 0
T11 4162 0 0 0
T12 2180 0 0 0
T13 0 1045 0 0
T16 1463 0 0 0
T27 827 0 0 0
T28 1036 0 0 0
T29 776 0 0 0
T32 0 528 0 0
T41 0 750 0 0
T43 0 1603 0 0
T70 1539 0 0 0
T73 1256 0 0 0
T97 0 1112 0 0
T98 0 613 0 0
T99 0 842 0 0
T100 0 965 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
10CoveredT21,T42,T55

 LINE       137
 SUB-EXPRESSION (rready_i && (depth_q == gen_unpack_mode.lsb_is_one))
                 ----1---    -------------------2-------------------
-1--2-StatusTests
01CoveredT21,T42,T55
10CoveredT7,T21,T42
11CoveredT21,T42,T55

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

 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
11CoveredT7,T21,T42

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

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

 LINE       156
 EXPRESSION ((depth_q == '0) && ((!clr_q)))
             -------1-------    -----2----
-1--2-StatusTests
01CoveredT7,T21,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
10CoveredT42,T56,T106
11CoveredT7,T21,T42

 LINE       158
 SUB-EXPRESSION ( ! (depth_q == '0) )
                    -------1-------
-1-StatusTests
0CoveredT7,T21,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[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 T7,T21,T42
0 0 1 Covered T7,T21,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 T7,T21,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 T7,T21,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[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 12472250 179581 0 946
ValidOPairedWithReadyI_A 12472250 179581 0 0


DataOStableWhenPending_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 179581 0 946
T7 1215 608 0 1
T13 0 1327 0 0
T16 1463 0 0 1
T21 2636 1107 0 1
T28 1036 0 0 1
T42 0 55 0 0
T43 0 1702 0 0
T44 0 2755 0 0
T52 0 1656 0 0
T55 0 654 0 0
T57 1945 0 0 1
T59 15680 0 0 1
T70 1539 0 0 1
T71 891 0 0 1
T73 1256 0 0 1
T74 2100 0 0 1
T84 0 717 0 0
T103 0 879 0 0

ValidOPairedWithReadyI_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 12472250 179581 0 0
T7 1215 608 0 0
T13 0 1327 0 0
T16 1463 0 0 0
T21 2636 1107 0 0
T28 1036 0 0 0
T42 0 55 0 0
T43 0 1702 0 0
T44 0 2755 0 0
T52 0 1656 0 0
T55 0 654 0 0
T57 1945 0 0 0
T59 15680 0 0 0
T70 1539 0 0 0
T71 891 0 0 0
T73 1256 0 0 0
T74 2100 0 0 0
T84 0 717 0 0
T103 0 879 0 0

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