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



Module Instance : tb.dut.top_earlgrey.u_pinmux_aon.u_pinmux_strap_sampling

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
99.41 99.34 100.00 98.31 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.49 99.62 95.65 98.70 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
89.17 98.93 80.88 98.84 75.19 92.00 u_pinmux_aon


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
u_pinmux_jtag_buf_dft 100.00 100.00
u_pinmux_jtag_buf_lc 100.00 100.00
u_pinmux_jtag_buf_rv 100.00 100.00
u_por_scanmode_sync 100.00 100.00
u_prim_lc_or_hardened 100.00 100.00 100.00 100.00
u_prim_lc_sender_pinmux_hw_debug_en 100.00 100.00 100.00
u_prim_lc_sync_lc_check_byp_en 100.00 100.00 100.00 100.00
u_prim_lc_sync_lc_dft_en 100.00 100.00 100.00 100.00
u_prim_lc_sync_lc_escalate_en 100.00 100.00 100.00 100.00
u_prim_lc_sync_lc_hw_debug_en 100.00 100.00 100.00 100.00
u_prim_lc_sync_pinmux_hw_debug_en 100.00 100.00 100.00
u_rst_por_aon_n_mux 85.19 100.00 55.56 100.00


Since this is the module's only instance, the coverage report is the same as for the module.
Line Coverage for Module : pinmux_strap_sampling
Line No.TotalCoveredPercent
TOTAL30330199.34
CONT_ASSIGN13211100.00
CONT_ASSIGN13311100.00
CONT_ASSIGN15311100.00
CONT_ASSIGN15711100.00
CONT_ASSIGN18711100.00
CONT_ASSIGN23011100.00
CONT_ASSIGN23211100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN24011100.00
CONT_ASSIGN24111100.00
CONT_ASSIGN24211100.00
CONT_ASSIGN25911100.00
ALWAYS26299100.00
ALWAYS28399100.00
CONT_ASSIGN30811100.00
ALWAYS3121717100.00
CONT_ASSIGN37111100.00
CONT_ASSIGN37211100.00
CONT_ASSIGN37311100.00
CONT_ASSIGN39611100.00
CONT_ASSIGN39611100.00
CONT_ASSIGN39611100.00
CONT_ASSIGN39611100.00
CONT_ASSIGN39611100.00
CONT_ASSIGN40011100.00
CONT_ASSIGN40111100.00
CONT_ASSIGN40411100.00
CONT_ASSIGN40411100.00
CONT_ASSIGN40411100.00
CONT_ASSIGN40411100.00
CONT_ASSIGN40511100.00
CONT_ASSIGN40511100.00
CONT_ASSIGN40511100.00
CONT_ASSIGN40511100.00
CONT_ASSIGN41211100.00
CONT_ASSIGN41211100.00
CONT_ASSIGN41411100.00
CONT_ASSIGN41411100.00
CONT_ASSIGN41411100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41711100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41811100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN419100.00
CONT_ASSIGN419100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN41911100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00
CONT_ASSIGN42011100.00

131 lc_tx_t lc_strap_en, lc_hw_debug_en_masked; 132 1/1 assign lc_strap_en = lc_tx_bool_to_lc_tx(strap_en_i); Tests: T1 T2 T3  133 1/1 assign lc_hw_debug_en_masked = lc_tx_and_hi(lc_strap_en, lc_hw_debug_en[0]); Tests: T1 T2 T3  134 135 // Output ON if 136 // - If the strap sampling pulse is asserted and lc_hw_debug_en is ON 137 // - If the pinmux_hw_debug_en_q is already set to ON (this is the latching feedback loop) 138 // Note: make sure we use a hardened, rectifying OR function since otherwise two non-strict 139 // values may produce a strict ON value. 140 lc_tx_t hw_debug_en_set, pinmux_hw_debug_en_q; 141 prim_lc_or_hardened #( 142 .ActVal(On) 143 ) u_prim_lc_or_hardened ( 144 .clk_i, 145 .rst_ni, 146 .lc_en_a_i(lc_hw_debug_en_masked), 147 .lc_en_b_i(pinmux_hw_debug_en_q), 148 .lc_en_o (hw_debug_en_set) 149 ); 150 151 // Output ON if both lc_check_byp_en and lc_escalate_en are set to OFF. 152 lc_tx_t hw_debug_en_gating; 153 1/1 assign hw_debug_en_gating = lc_tx_inv(lc_tx_and_lo(lc_check_byp_en[0], lc_escalate_en[0])); Tests: T45 T36 T29  154 155 // Gate the hw_debug_en_set signal and feed it into the latching flop. 156 lc_tx_t pinmux_hw_debug_en_d; 157 1/1 assign pinmux_hw_debug_en_d = lc_tx_and_hi(hw_debug_en_set, hw_debug_en_gating); Tests: T1 T3 T5  158 159 prim_lc_sender u_prim_lc_sender_pinmux_hw_debug_en ( 160 .clk_i, 161 .rst_ni, 162 .lc_en_i(pinmux_hw_debug_en_d), 163 .lc_en_o(pinmux_hw_debug_en_q) 164 ); 165 166 typedef enum logic [1:0] { 167 HwDebugEnSample, 168 HwDebugEnTapSel, 169 HwDebugEnRvDmOut, 170 HwDebugEnLast 171 } pinmux_hw_debug_en_e; 172 173 lc_tx_t [HwDebugEnLast-1:0] pinmux_hw_debug_en; 174 prim_lc_sync #( 175 .NumCopies(int'(HwDebugEnLast)), 176 .AsyncOn(0) // no sync needed 177 ) u_prim_lc_sync_pinmux_hw_debug_en ( 178 .clk_i, 179 .rst_ni, 180 .lc_en_i(pinmux_hw_debug_en_q), 181 .lc_en_o(pinmux_hw_debug_en) 182 ); 183 184 // SEC_CM: PINMUX_HW_DEBUG_EN.INTERSIG.MUBI 185 // We send this latched version over to the RV_DM in order to gate the JTAG signals and TAP side. 186 // Note that the bus side will remain gated with the live lc_hw_debug_en value inside RV_DM. 187 1/1 assign pinmux_hw_debug_en_o = pinmux_hw_debug_en[HwDebugEnRvDmOut]; Tests: T1 T3 T5  188 189 // Check that we can correctly latch upon strap_en_i 190 `ASSERT(LcHwDebugEnSet_A, 191 (lc_tx_test_true_strict(lc_hw_debug_en[0]) || 192 lc_tx_test_true_strict(pinmux_hw_debug_en_q)) && 193 lc_tx_test_false_strict(lc_check_byp_en[0]) && 194 lc_tx_test_false_strict(lc_escalate_en[0]) && 195 strap_en_i 196 |=> 197 lc_tx_test_true_strict(pinmux_hw_debug_en_q)) 198 // Check that latching ON can only occur if lc_hw_debug_en_i is set. 199 `ASSERT(LcHwDebugEnSetRev0_A, 200 lc_tx_test_false_loose(pinmux_hw_debug_en_q) ##1 201 lc_tx_test_true_strict(pinmux_hw_debug_en_q) 202 |-> 203 $past(lc_tx_test_true_strict(lc_hw_debug_en[0]))) 204 // Check that latching ON can only occur if strap_en_i is set. 205 `ASSERT(LcHwDebugEnSetRev1_A, 206 lc_tx_test_false_loose(pinmux_hw_debug_en_q) ##1 207 lc_tx_test_true_strict(pinmux_hw_debug_en_q) 208 |-> 209 $past(strap_en_i)) 210 // Check that any non-OFF value on lc_check_byp_en_i and 211 // lc_escalate_en_i clears the latched value. 212 `ASSERT(LcHwDebugEnClear_A, 213 lc_tx_test_true_loose(lc_check_byp_en[0]) || 214 lc_tx_test_true_loose(lc_escalate_en[0]) 215 |=> 216 lc_tx_test_false_loose(pinmux_hw_debug_en_q)) 217 218 ////////////////////////// 219 // Strap Sampling Logic // 220 ////////////////////////// 221 222 logic dft_strap_valid_d, dft_strap_valid_q; 223 logic lc_strap_sample_en, rv_strap_sample_en, dft_strap_sample_en; 224 logic [NTapStraps-1:0] tap_strap_d, tap_strap_q; 225 logic [NDFTStraps-1:0] dft_strap_d, dft_strap_q; 226 227 // SEC_CM: TAP.MUX.LC_GATED 228 // The LC strap at index 0 has a slightly different 229 // enable condition than the DFT strap at index 1. 230 1/1 assign tap_strap_d[0] = (lc_strap_sample_en) ? in_padring_i[TargetCfg.tap_strap0_idx] : Tests: T1 T2 T3  231 tap_strap_q[0]; 232 1/1 assign tap_strap_d[1] = (rv_strap_sample_en) ? in_padring_i[TargetCfg.tap_strap1_idx] : Tests: T1 T2 T3  233 tap_strap_q[1]; 234 235 // We're always using the DFT strap sample enable for the DFT straps. 236 1/1 assign dft_strap_d = (dft_strap_sample_en) ? {in_padring_i[TargetCfg.dft_strap1_idx], Tests: T1 T2 T3  237 in_padring_i[TargetCfg.dft_strap0_idx]} : 238 dft_strap_q; 239 240 1/1 assign dft_strap_valid_d = dft_strap_sample_en | dft_strap_valid_q; Tests: T1 T3 T5  241 1/1 assign dft_strap_test_o.valid = dft_strap_valid_q; Tests: T1 T3 T5  242 1/1 assign dft_strap_test_o.straps = dft_strap_q; Tests: T34 T88 T89  243 244 245 // During dft enabled states, we continously sample all straps unless 246 // told not to do so by external dft logic 247 logic tap_sampling_en; 248 logic dft_hold_tap_sel; 249 // Delay the strap sampling pulse by one cycle so that the pinmux_hw_debug_en above can 250 // propagate through the pinmux_hw_debug_en_q flop. 251 logic strap_en_q; 252 253 prim_buf #( 254 .Width(1) 255 ) u_buf_hold_tap ( 256 .in_i(dft_hold_tap_sel_i), 257 .out_o(dft_hold_tap_sel) 258 ); 259 1/1 assign tap_sampling_en = lc_tx_test_true_strict(lc_dft_en[DftEnSample]) & ~dft_hold_tap_sel; Tests: T1 T3 T5  260 261 always_comb begin : p_strap_sampling 262 1/1 lc_strap_sample_en = 1'b0; Tests: T1 T2 T3  263 1/1 rv_strap_sample_en = 1'b0; Tests: T1 T2 T3  264 1/1 dft_strap_sample_en = 1'b0; Tests: T1 T2 T3  265 // Initial strap sampling pulse from pwrmgr, 266 // qualified by life cycle signals. 267 // The DFT-mode straps are always sampled only once. 268 1/1 if (strap_en_q && tap_sampling_en) begin Tests: T1 T2 T3  269 1/1 dft_strap_sample_en = 1'b1; Tests: T1 T3 T5  270 end MISSING_ELSE 271 // In DFT-enabled life cycle states we continously 272 // sample the TAP straps to be able to switch back and 273 // forth between different TAPs. 274 1/1 if (strap_en_q || tap_sampling_en) begin Tests: T1 T2 T3  275 1/1 lc_strap_sample_en = 1'b1; Tests: T1 T2 T3  276 1/1 if (lc_tx_test_true_strict(pinmux_hw_debug_en[HwDebugEnSample])) begin Tests: T1 T2 T3  277 1/1 rv_strap_sample_en = 1'b1; Tests: T1 T3 T5  278 end MISSING_ELSE 279 end MISSING_ELSE 280 end 281 282 always_ff @(posedge clk_i or negedge rst_ni) begin : p_strap_sample 283 1/1 if (!rst_ni) begin Tests: T1 T2 T3  284 1/1 tap_strap_q <= '0; Tests: T1 T2 T3  285 1/1 dft_strap_q <= '0; Tests: T1 T2 T3  286 1/1 dft_strap_valid_q <= 1'b0; Tests: T1 T2 T3  287 1/1 strap_en_q <= 1'b0; Tests: T1 T2 T3  288 end else begin 289 1/1 tap_strap_q <= tap_strap_d; Tests: T1 T2 T3  290 1/1 dft_strap_q <= dft_strap_d; Tests: T1 T2 T3  291 1/1 dft_strap_valid_q <= dft_strap_valid_d; Tests: T1 T2 T3  292 1/1 strap_en_q <= strap_en_i; Tests: T1 T2 T3  293 end 294 end 295 296 /////////////////////// 297 // TAP Selection Mux // 298 /////////////////////// 299 300 logic jtag_en; 301 tap_strap_t tap_strap; 302 jtag_pkg::jtag_req_t jtag_req, lc_jtag_req, rv_jtag_req, dft_jtag_req; 303 jtag_pkg::jtag_rsp_t jtag_rsp, lc_jtag_rsp, rv_jtag_rsp, dft_jtag_rsp; 304 305 // This muxes the JTAG signals to the correct TAP, based on the 306 // sampled straps. Further, the individual JTAG signals are gated 307 // using the corresponding life cycle signal. 308 1/1 assign tap_strap = tap_strap_t'(tap_strap_q); Tests: T36 T29 T61  309 `ASSERT_KNOWN(TapStrapKnown_A, tap_strap) 310 311 always_comb begin : p_tap_mux 312 1/1 jtag_rsp = '0; Tests: T1 T2 T3  313 // Note that this holds the JTAGs in reset 314 // when they are not selected. 315 1/1 lc_jtag_req = '0; Tests: T1 T2 T3  316 1/1 rv_jtag_req = '0; Tests: T1 T2 T3  317 1/1 dft_jtag_req = '0; Tests: T1 T2 T3  318 // This activates the TDO override further below. 319 1/1 jtag_en = 1'b0; Tests: T1 T2 T3  320 321 1/1 unique case (tap_strap) Tests: T1 T2 T3  322 LcTapSel: begin 323 1/1 lc_jtag_req = jtag_req; Tests: T36 T29 T61  324 1/1 jtag_rsp = lc_jtag_rsp; Tests: T36 T29 T61  325 1/1 jtag_en = 1'b1; Tests: T36 T29 T61  326 end 327 RvTapSel: begin 328 1/1 if (lc_tx_test_true_strict(pinmux_hw_debug_en[HwDebugEnTapSel])) begin Tests: T34 T91 T92  329 1/1 rv_jtag_req = jtag_req; Tests: T34 T91 T92  330 1/1 jtag_rsp = rv_jtag_rsp; Tests: T34 T91 T92  331 1/1 jtag_en = 1'b1; Tests: T34 T91 T92  332 end MISSING_ELSE 333 end 334 DftTapSel: begin 335 1/1 if (lc_tx_test_true_strict(lc_dft_en[DftEnTapSel])) begin Tests: T88 T89 T94  336 1/1 dft_jtag_req = jtag_req; Tests: T88 T89 T94  337 1/1 jtag_rsp = dft_jtag_rsp; Tests: T88 T89 T94  338 1/1 jtag_en = 1'b1; Tests: T88 T89 T94  339 end ==> MISSING_ELSE 340 end 341 default: ; 342 endcase // tap_strap_t'(tap_strap_q) 343 end 344 345 // Insert hand instantiated buffers for 346 // these signals to prevent further optimization. 347 pinmux_jtag_buf u_pinmux_jtag_buf_lc ( 348 .req_i(lc_jtag_req), 349 .req_o(lc_jtag_o), 350 .rsp_i(lc_jtag_i), 351 .rsp_o(lc_jtag_rsp) 352 ); 353 pinmux_jtag_buf u_pinmux_jtag_buf_rv ( 354 .req_i(rv_jtag_req), 355 .req_o(rv_jtag_o), 356 .rsp_i(rv_jtag_i), 357 .rsp_o(rv_jtag_rsp) 358 ); 359 pinmux_jtag_buf u_pinmux_jtag_buf_dft ( 360 .req_i(dft_jtag_req), 361 .req_o(dft_jtag_o), 362 .rsp_i(dft_jtag_i), 363 .rsp_o(dft_jtag_rsp) 364 ); 365 366 ////////////////////// 367 // TAP Input Muxes // 368 ////////////////////// 369 370 // Inputs connections 371 1/1 assign jtag_req.tck = in_padring_i[TargetCfg.tck_idx]; Tests: T2 T27 T36  372 1/1 assign jtag_req.tms = in_padring_i[TargetCfg.tms_idx]; Tests: T2 T27 T36  373 1/1 assign jtag_req.tdi = in_padring_i[TargetCfg.tdi_idx]; Tests: T2 T27 T36  374 375 // Note that this resets the selected TAP controller in 376 // scanmode. If the TAP controller needs to be active during 377 // reset, this reset bypass needs to be adapted accordingly. 378 prim_clock_mux2 #( 379 .NoFpgaBufG(1'b1) 380 ) u_rst_por_aon_n_mux ( 381 .clk0_i(in_padring_i[TargetCfg.trst_idx]), 382 .clk1_i(rst_ni), 383 .sel_i(prim_mubi_pkg::mubi4_test_true_strict(scanmode[0])), 384 .clk_o(jtag_req.trst_n) 385 ); 386 387 // Input tie-off muxes and output overrides 388 for (genvar k = 0; k < NumIOs; k++) begin : gen_input_tie_off 389 if (k == TargetCfg.tck_idx || 390 k == TargetCfg.tms_idx || 391 k == TargetCfg.trst_idx || 392 k == TargetCfg.tdi_idx || 393 k == TargetCfg.tdo_idx) begin : gen_jtag_signal 394 395 // Tie off inputs. 396 5/5 assign in_core_o[k] = (jtag_en) ? 1'b0 : in_padring_i[k]; Tests: T2 T27 T36  | T2 T27 T36  | T2 T27 T36  | T2 T27 T36  | T2 T27 T36  397 398 if (k == TargetCfg.tdo_idx) begin : gen_output_mux 399 // Override TDO output. 400 1/1 assign out_padring_o[k] = (jtag_en) ? jtag_rsp.tdo : out_core_i[k]; Tests: T27 T36 T29  401 1/1 assign oe_padring_o[k] = (jtag_en) ? jtag_rsp.tdo_oe : oe_core_i[k]; Tests: T2 T27 T36  402 end else begin : gen_output_tie_off 403 // Make sure these pads are set to high-z. 404 4/4 assign out_padring_o[k] = (jtag_en) ? 1'b0 : out_core_i[k]; Tests: T27 T36 T29  | T2 T27 T36  | T2 T27 T36  | T27 T36 T29  405 4/4 assign oe_padring_o[k] = (jtag_en) ? 1'b0 : oe_core_i[k]; Tests: T2 T27 T36  | T2 T27 T36  | T2 T27 T36  | T2 T27 T36  406 end 407 408 // Also reset all corresponding pad attributes to the default ('0) when JTAG is enabled. 409 // This disables functional pad features that may have been set, e.g., pull-up/pull-down. 410 // Do enable schmitt trigger on JTAG clock and JTAG reset for better signal integrity. 411 if (k == TargetCfg.tck_idx || k == TargetCfg.trst_idx) begin : gen_schmitt_en 412 2/2 assign attr_padring_o[k] = (jtag_en) ? '{schmitt_en: 1'b1, default: '0} : attr_core_i[k]; Tests: T36 T29 T61  | T36 T29 T61  413 end else begin : gen_no_schmitt 414 3/3 assign attr_padring_o[k] = (jtag_en) ? '0 : attr_core_i[k]; Tests: T36 T29 T61  | T36 T29 T61  | T36 T29 T61  415 end 416 end else begin : gen_other_inputs 417 58/58 assign attr_padring_o[k] = attr_core_i[k]; Tests: T20 T21 T22  | T20 T21 T22  | T9 T47 T48  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T12 T53 T54  | T20 T21 T22  | T9 T47 T48  | T9 T10 T11  | T20 T21 T22  | T9 T10 T11  | T9 T37 T47  | T9 T37 T47  | T9 T37 T47  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T58 T55 T59  | T58 T55 T59  | T58 T55 T59  | T1 T2 T3  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T1 T2 T3  | T1 T2 T3  | T9 T10 T11  | T9 T10 T11  | T9 T10 T11  | T9 T10 T11  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T20 T21 T22  | T15 T51 T52  | T15 T51 T52  | T20 T21 T22  | T20 T21 T22  | T9 T47 T48  | T9 T47 T48  418 58/58 assign in_core_o[k] = in_padring_i[k]; Tests: T2 T25 T26  | T2 T25 T26  | T2 T25 T9  | T2 T25 T27  | T2 T25 T27  | T2 T4 T25  | T2 T25 T27  | T2 T6 T25  | T2 T6 T25  | T2 T9 T37  | T2 T9 T10  | T2 T6 T37  | T2 T9 T10  | T2 T6 T9  | T1 T2 T3  | T2 T9 T27  | T2 T27 T13  | T2 T27 T28  | T2 T5 T27  | T2 T5 T27  | T2 T5 T27  | T2 T5 T27  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T2 T29 T30  | T2 T7 T31  | T32 T33 T34  | T2 T27 T28  | T2 T27 T35  | T2 T27 T35  | T2 T27 T35  | T1 T2 T3  | T2 T27 T13  | T1 T2 T3  | T2 T27 T37  | T2 T27 T37  | T2 T27 T38  | T2 T27 T28  | T2 T7 T31  | T2 T7 T8  | T2 T9 T10  | T2 T9 T10  | T2 T9 T10  | T2 T9 T10  | T2 T4 T6  | T2 T4 T6  | T2 T4 T6  | T2 T4 T6  | T2 T4 T28  | T4 T28 T13  | T2 T6 T12  | T2 T4 T6  | T2 T9 T10  | T2 T6 T9  419 56/58 ==> assign out_padring_o[k] = out_core_i[k]; Tests: T25 T27 T42  | T25 T26 T27  | T25 T27 T75  | T2 T25 T27  | T25 T27 T42  | T25 T27 T68  | T25 T27 T42  | T25 T27 T42  | T27 T42 T19  | T10 T11 T37  | T9 T37 T19  | T37 T19 T73  | T47 T20 T21  | T37 T73 T74  | T1 T2 T3  | T27 T37 T42  | T27 T13 T15  | T27 T37 T42  | T5 T27 T13  | T2 T5 T27  | T5 T27 T35  | T5 T27 T35  | T19 T20 T21  | T19 T40 T20  | T2 T40 T20  | T40 T20 T21  | T1 T2 T3  | T20 T21 T22  | T20 T21 T22  | T13 T41 T19  | T20 T21 T22  | T27 T13 T41  | T27 T35 T75  | T27 T35 T75  | T27 T35 T75  | T27 T13 T37  | T2 T27 T13  | T27 T37 T42  | T2 T27 T37  | T27 T37 T42  | T2 T27 T42  | T27 T37 T42  | T2 T7 T8  | T2 T7 T8  | T2 T9 T10  | T2 T10 T11  | T2 T10 T11  | T2 T10 T11  | T6 T10 T11  | T2 T6 T12  | T2 T6 T10  | T6 T10 T11  | T2 T13 T14  | T13 T15 T14  | T9 T10 T11  | T2 T9 T10  420 58/58 assign oe_padring_o[k] = oe_core_i[k]; Tests: T2 T25 T27  | T25 T26 T27  | T2 T25 T27  | T2 T25 T27  | T25 T27 T42  | T25 T27 T68  | T25 T27 T42  | T2 T6 T25  | T2 T27 T62  | T37 T19 T47  | T2 T37 T19  | T2 T37 T19  | T2 T37 T19  | T37 T73 T74  | T1 T2 T3  | T27 T37 T42  | T2 T27 T13  | T2 T27 T37  | T5 T27 T65  | T2 T5 T27  | T5 T27 T66  | T5 T27 T66  | T2 T19 T40  | T19 T40 T20  | T2 T40 T20  | T2 T19 T40  | T1 T2 T3  | T19 T40 T20  | T2 T40 T20  | T13 T41 T19  | T2 T19 T40  | T27 T13 T41  | T2 T27 T35  | T2 T27 T35  | T27 T35 T75  | T2 T27 T13  | T2 T27 T13  | T2 T27 T37  | T2 T27 T37  | T2 T27 T37  | T2 T27 T42  | T2 T27 T37  | T16 T17 T18  | T2 T16 T17  | T2 T9 T10  | T2 T19 T20  | T2 T20 T21  | T2 T19 T20  | T2 T6 T10  | T2 T6 T12  | T2 T6 T10  | T6 T10 T37  | T4 T23 T24  | T4 T19 T23  | T20 T21 T22  | T20 T21 T22  | T2 T9 T10  | T2 T9 T10 

Cond Coverage for Module : pinmux_strap_sampling
TotalCoveredPercent
Conditions5555100.00
Logical5555100.00
Non-Logical00
Event00

 LINE       230
 EXPRESSION (lc_strap_sample_en ? in_padring_i[30] : tap_strap_q[0])
             ---------1--------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T2,T3

 LINE       232
 EXPRESSION (rv_strap_sample_en ? in_padring_i[27] : tap_strap_q[1])
             ---------1--------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T5

 LINE       236
 EXPRESSION (dft_strap_sample_en ? ({in_padring_i[42], in_padring_i[40]}) : dft_strap_q)
             ---------1---------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T5

 LINE       240
 EXPRESSION (dft_strap_sample_en | dft_strap_valid_q)
             ---------1---------   --------2--------
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T3,T5
10CoveredT1,T3,T5

 LINE       268
 EXPRESSION (strap_en_q && tap_sampling_en)
             -----1----    -------2-------
-1--2-StatusTests
01CoveredT1,T3,T5
10CoveredT2,T4,T39
11CoveredT1,T3,T5

 LINE       274
 EXPRESSION (strap_en_q || tap_sampling_en)
             -----1----    -------2-------
-1--2-StatusTests
00CoveredT2,T4,T45
01CoveredT1,T3,T5
10CoveredT2,T4,T39

 LINE       396
 EXPRESSION (jtag_en ? 1'b0 : in_padring_i[35])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       396
 EXPRESSION (jtag_en ? 1'b0 : in_padring_i[36])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       396
 EXPRESSION (jtag_en ? 1'b0 : in_padring_i[37])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       396
 EXPRESSION (jtag_en ? 1'b0 : in_padring_i[38])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       396
 EXPRESSION (jtag_en ? 1'b0 : in_padring_i[39])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       400
 EXPRESSION (jtag_en ? jtag_rsp.tdo : out_core_i[36])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       401
 EXPRESSION (jtag_en ? jtag_rsp.tdo_oe : oe_core_i[36])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       404
 EXPRESSION (jtag_en ? 1'b0 : out_core_i[35])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       404
 EXPRESSION (jtag_en ? 1'b0 : out_core_i[37])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       404
 EXPRESSION (jtag_en ? 1'b0 : out_core_i[38])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       404
 EXPRESSION (jtag_en ? 1'b0 : out_core_i[39])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       405
 EXPRESSION (jtag_en ? 1'b0 : oe_core_i[35])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       405
 EXPRESSION (jtag_en ? 1'b0 : oe_core_i[37])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       405
 EXPRESSION (jtag_en ? 1'b0 : oe_core_i[38])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       405
 EXPRESSION (jtag_en ? 1'b0 : oe_core_i[39])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       412
 EXPRESSION 
 Number  Term
      1  jtag_en ? ('{schmitt_en:1'b1, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0}) : attr_core_i[38])
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       412
 EXPRESSION 
 Number  Term
      1  jtag_en ? ('{schmitt_en:1'b1, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0, (*adjust*)default:'0}) : attr_core_i[39])
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       414
 EXPRESSION (jtag_en ? '0 : attr_core_i[35])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       414
 EXPRESSION (jtag_en ? '0 : attr_core_i[36])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

 LINE       414
 EXPRESSION (jtag_en ? '0 : attr_core_i[37])
             ---1---
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT36,T29,T61

Branch Coverage for Module : pinmux_strap_sampling
Line No.TotalCoveredPercent
Branches 59 58 98.31
TERNARY 230 2 2 100.00
TERNARY 232 2 2 100.00
TERNARY 236 2 2 100.00
TERNARY 396 2 2 100.00
TERNARY 404 2 2 100.00
TERNARY 405 2 2 100.00
TERNARY 414 2 2 100.00
TERNARY 396 2 2 100.00
TERNARY 400 2 2 100.00
TERNARY 401 2 2 100.00
TERNARY 414 2 2 100.00
TERNARY 396 2 2 100.00
TERNARY 404 2 2 100.00
TERNARY 405 2 2 100.00
TERNARY 414 2 2 100.00
TERNARY 396 2 2 100.00
TERNARY 404 2 2 100.00
TERNARY 405 2 2 100.00
TERNARY 412 2 2 100.00
TERNARY 396 2 2 100.00
TERNARY 404 2 2 100.00
TERNARY 405 2 2 100.00
TERNARY 412 2 2 100.00
IF 268 2 2 100.00
IF 274 3 3 100.00
IF 283 2 2 100.00
CASE 321 6 5 83.33


230 assign tap_strap_d[0] = (lc_strap_sample_en) ? in_padring_i[TargetCfg.tap_strap0_idx] : -1- ==> ==>

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


232 assign tap_strap_d[1] = (rv_strap_sample_en) ? in_padring_i[TargetCfg.tap_strap1_idx] : -1- ==> ==>

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


236 assign dft_strap_d = (dft_strap_sample_en) ? {in_padring_i[TargetCfg.dft_strap1_idx], -1- ==> ==>

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


396 assign in_core_o[k] = (jtag_en) ? 1'b0 : in_padring_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


404 assign out_padring_o[k] = (jtag_en) ? 1'b0 : out_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


405 assign oe_padring_o[k] = (jtag_en) ? 1'b0 : oe_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


414 assign attr_padring_o[k] = (jtag_en) ? '0 : attr_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


396 assign in_core_o[k] = (jtag_en) ? 1'b0 : in_padring_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


400 assign out_padring_o[k] = (jtag_en) ? jtag_rsp.tdo : out_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


401 assign oe_padring_o[k] = (jtag_en) ? jtag_rsp.tdo_oe : oe_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


414 assign attr_padring_o[k] = (jtag_en) ? '0 : attr_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


396 assign in_core_o[k] = (jtag_en) ? 1'b0 : in_padring_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


404 assign out_padring_o[k] = (jtag_en) ? 1'b0 : out_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


405 assign oe_padring_o[k] = (jtag_en) ? 1'b0 : oe_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


414 assign attr_padring_o[k] = (jtag_en) ? '0 : attr_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


396 assign in_core_o[k] = (jtag_en) ? 1'b0 : in_padring_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


404 assign out_padring_o[k] = (jtag_en) ? 1'b0 : out_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


405 assign oe_padring_o[k] = (jtag_en) ? 1'b0 : oe_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


412 assign attr_padring_o[k] = (jtag_en) ? '{schmitt_en: 1'b1, default: '0} : attr_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


396 assign in_core_o[k] = (jtag_en) ? 1'b0 : in_padring_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


404 assign out_padring_o[k] = (jtag_en) ? 1'b0 : out_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


405 assign oe_padring_o[k] = (jtag_en) ? 1'b0 : oe_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


412 assign attr_padring_o[k] = (jtag_en) ? '{schmitt_en: 1'b1, default: '0} : attr_core_i[k]; -1- ==> ==>

Branches:
-1-StatusTests
1 Covered T36,T29,T61
0 Covered T1,T2,T3


268 if (strap_en_q && tap_sampling_en) begin -1- 269 dft_strap_sample_en = 1'b1; ==> 270 end MISSING_ELSE ==>

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


274 if (strap_en_q || tap_sampling_en) begin -1- 275 lc_strap_sample_en = 1'b1; 276 if (lc_tx_test_true_strict(pinmux_hw_debug_en[HwDebugEnSample])) begin -2- 277 rv_strap_sample_en = 1'b1; ==> 278 end MISSING_ELSE ==> 279 end MISSING_ELSE ==>

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


283 if (!rst_ni) begin -1- 284 tap_strap_q <= '0; ==> 285 dft_strap_q <= '0; 286 dft_strap_valid_q <= 1'b0; 287 strap_en_q <= 1'b0; 288 end else begin 289 tap_strap_q <= tap_strap_d; ==>

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


321 unique case (tap_strap) -1- 322 LcTapSel: begin 323 lc_jtag_req = jtag_req; ==> 324 jtag_rsp = lc_jtag_rsp; 325 jtag_en = 1'b1; 326 end 327 RvTapSel: begin 328 if (lc_tx_test_true_strict(pinmux_hw_debug_en[HwDebugEnTapSel])) begin -2- 329 rv_jtag_req = jtag_req; ==> 330 jtag_rsp = rv_jtag_rsp; 331 jtag_en = 1'b1; 332 end MISSING_ELSE ==> 333 end 334 DftTapSel: begin 335 if (lc_tx_test_true_strict(lc_dft_en[DftEnTapSel])) begin -3- 336 dft_jtag_req = jtag_req; ==> 337 jtag_rsp = dft_jtag_rsp; 338 jtag_en = 1'b1; 339 end MISSING_ELSE ==> 340 end 341 default: ; ==>

Branches:
-1--2--3-StatusTests
LcTapSel - - Covered T36,T29,T61
RvTapSel 1 - Covered T34,T91,T92
RvTapSel 0 - Covered T92,T630,T631
DftTapSel - 1 Covered T88,T89,T94
DftTapSel - 0 Not Covered
default - - Covered T1,T2,T3


Assert Coverage for Module : pinmux_strap_sampling
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 17 17 100.00 17 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 17 17 100.00 17 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DftTapOff0_A 124359494 36039634 0 284
LcHwDebugEnClear_A 124359494 12058776 0 15
LcHwDebugEnSetRev0_A 124359494 1449 0 102
LcHwDebugEnSetRev1_A 124359494 1449 0 102
LcHwDebugEnSet_A 124359494 1449 0 0
RvTapOff0_A 124359494 250 0 204
RvTapOff1_A 124359494 32939256 0 0
TapStrapKnown_A 124359494 123680256 0 0
dft_strap0_idxRange_A 1016 1016 0 0
dft_strap1_idxRange_A 1016 1016 0 0
tap_strap0_idxRange_A 1016 1016 0 0
tap_strap1_idxRange_A 1016 1016 0 0
tck_idxRange_A 1016 1016 0 0
tdi_idxRange_A 1016 1016 0 0
tdo_idxRange_A 1016 1016 0 0
tms_idxRange_A 1016 1016 0 0
trst_idxRange_A 1016 1016 0 0


DftTapOff0_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 124359494 36039634 0 284
T1 11204 2483 0 0
T2 23341 22861 0 2
T3 18404 2483 0 0
T4 20300 19971 0 2
T5 21790 2483 0 0
T6 37322 2483 0 0
T7 26668 2483 0 0
T9 20410 2483 0 0
T25 29026 2482 0 0
T29 0 0 0 2
T30 0 0 0 2
T36 0 0 0 2
T46 0 0 0 2
T60 0 0 0 2
T107 15625 2483 0 0
T202 0 0 0 2
T203 0 0 0 2
T208 0 0 0 2

LcHwDebugEnClear_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 124359494 12058776 0 15
T27 45229 0 0 0
T29 16016 1913 0 1
T30 0 2006 0 1
T36 10900 573 0 1
T39 41502 0 0 0
T45 57350 4975 0 0
T46 0 1492 0 1
T60 0 2084 0 1
T62 61509 0 0 0
T66 62690 0 0 0
T86 0 4984 0 0
T87 0 5049 0 0
T146 31212 0 0 0
T194 25522 0 0 0
T202 0 1096 0 1
T208 0 2499 0 0
T235 23956 0 0 0
T324 0 0 0 1
T632 0 0 0 1
T633 0 0 0 1
T634 0 0 0 1

LcHwDebugEnSetRev0_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 124359494 1449 0 102
T1 11204 1 0 0
T2 23341 0 0 1
T3 18404 1 0 0
T4 20300 0 0 1
T5 21790 1 0 0
T6 37322 1 0 0
T7 26668 1 0 0
T9 20410 1 0 0
T25 29026 1 0 0
T29 0 0 0 1
T30 0 0 0 1
T36 0 0 0 1
T46 0 0 0 1
T60 0 0 0 1
T107 15625 1 0 0
T124 0 1 0 0
T125 0 1 0 0
T202 0 0 0 1
T203 0 0 0 1
T207 0 0 0 1

LcHwDebugEnSetRev1_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 124359494 1449 0 102
T1 11204 1 0 0
T2 23341 0 0 1
T3 18404 1 0 0
T4 20300 0 0 1
T5 21790 1 0 0
T6 37322 1 0 0
T7 26668 1 0 0
T9 20410 1 0 0
T25 29026 1 0 0
T29 0 0 0 1
T30 0 0 0 1
T36 0 0 0 1
T46 0 0 0 1
T60 0 0 0 1
T107 15625 1 0 0
T124 0 1 0 0
T125 0 1 0 0
T202 0 0 0 1
T203 0 0 0 1
T207 0 0 0 1

LcHwDebugEnSet_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 124359494 1449 0 0
T1 11204 1 0 0
T2 23341 0 0 0
T3 18404 1 0 0
T4 20300 0 0 0
T5 21790 1 0 0
T6 37322 1 0 0
T7 26668 1 0 0
T9 20410 1 0 0
T25 29026 1 0 0
T107 15625 1 0 0
T124 0 1 0 0
T125 0 1 0 0

RvTapOff0_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 124359494 250 0 204
T2 23341 1 0 2
T3 18404 0 0 0
T4 20300 1 0 2
T5 21790 0 0 0
T6 37322 0 0 0
T7 26668 0 0 0
T9 20410 0 0 0
T25 29026 0 0 0
T29 0 2 0 2
T30 0 2 0 2
T36 0 1 0 2
T39 0 1 0 0
T46 0 1 0 2
T60 0 2 0 2
T107 15625 0 0 0
T124 27106 0 0 0
T202 0 1 0 2
T203 0 0 0 2
T207 0 0 0 2
T208 0 1 0 0

RvTapOff1_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 124359494 32939256 0 0
T1 11204 3090 0 0
T2 23341 22863 0 0
T3 18404 2936 0 0
T4 20300 19973 0 0
T5 21790 3184 0 0
T6 37322 2778 0 0
T7 26668 2927 0 0
T9 20410 3139 0 0
T25 29026 2756 0 0
T107 15625 2775 0 0

TapStrapKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 124359494 123680256 0 0
T1 11204 10507 0 0
T2 23341 22863 0 0
T3 18404 17881 0 0
T4 20300 19973 0 0
T5 21790 21001 0 0
T6 37322 36958 0 0
T7 26668 26130 0 0
T9 20410 19606 0 0
T25 29026 28597 0 0
T107 15625 15308 0 0

dft_strap0_idxRange_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1016 1016 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T5 1 1 0 0
T6 1 1 0 0
T7 1 1 0 0
T9 1 1 0 0
T25 1 1 0 0
T107 1 1 0 0

dft_strap1_idxRange_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1016 1016 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T5 1 1 0 0
T6 1 1 0 0
T7 1 1 0 0
T9 1 1 0 0
T25 1 1 0 0
T107 1 1 0 0

tap_strap0_idxRange_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1016 1016 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T5 1 1 0 0
T6 1 1 0 0
T7 1 1 0 0
T9 1 1 0 0
T25 1 1 0 0
T107 1 1 0 0

tap_strap1_idxRange_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1016 1016 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T5 1 1 0 0
T6 1 1 0 0
T7 1 1 0 0
T9 1 1 0 0
T25 1 1 0 0
T107 1 1 0 0

tck_idxRange_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1016 1016 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T5 1 1 0 0
T6 1 1 0 0
T7 1 1 0 0
T9 1 1 0 0
T25 1 1 0 0
T107 1 1 0 0

tdi_idxRange_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1016 1016 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T5 1 1 0 0
T6 1 1 0 0
T7 1 1 0 0
T9 1 1 0 0
T25 1 1 0 0
T107 1 1 0 0

tdo_idxRange_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1016 1016 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T5 1 1 0 0
T6 1 1 0 0
T7 1 1 0 0
T9 1 1 0 0
T25 1 1 0 0
T107 1 1 0 0

tms_idxRange_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1016 1016 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T5 1 1 0 0
T6 1 1 0 0
T7 1 1 0 0
T9 1 1 0 0
T25 1 1 0 0
T107 1 1 0 0

trst_idxRange_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 1016 1016 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T4 1 1 0 0
T5 1 1 0 0
T6 1 1 0 0
T7 1 1 0 0
T9 1 1 0 0
T25 1 1 0 0
T107 1 1 0 0

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