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

Module : rv_dm
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.82 100.00 91.49 92.63 100.00 100.00

Source File(s) :
/workspaces/repo/scratch/os_regression_2024_10_14/rv_dm-sim-vcs/default/sim-vcs/../src/lowrisc_ip_rv_dm_0.1/rtl/rv_dm.sv

Module self-instances :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
tb.dut 99.04 100.00 97.62 97.60 100.00 100.00



Module Instance : tb.dut

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
99.04 100.00 97.62 97.60 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
93.63 96.64 90.52 92.10 93.33 90.44 98.74


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
tb


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
dap 90.33 99.67 91.95 90.00 95.05 75.00
enable_checker 100.00 100.00 100.00
gen_alert_tx[0].u_prim_alert_sender 83.33 83.33
i_tlul_adapter_reg 98.67 100.00 100.00 93.33 100.00 100.00
rv_dm_regs_csr_assert 100.00 100.00
tl_adapter_host_sba 95.14 100.00 100.00 75.71 100.00 100.00
tlul_assert_device_mem 100.00 100.00
tlul_assert_device_regs 100.00 100.00
tlul_assert_host_sba 97.18 97.18
u_dm_top 88.99 90.31 73.80 100.00 80.84 100.00
u_lc_en_sync_copies 100.00 100.00 100.00
u_pm_en_sync 100.00 100.00 100.00 100.00
u_prim_clock_mux2 100.00 100.00 100.00 100.00
u_prim_flop_2sync_lc_rst_assert 100.00 100.00 100.00
u_prim_flop_2sync_lc_rst_sync 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_hw_debug_en 100.00 100.00 100.00 100.00
u_prim_mubi32_sync_late_debug_enable 100.00 100.00 100.00
u_prim_mubi8_sync_otp_dis_rv_dm_late_debug 100.00 100.00 100.00 100.00
u_prim_rst_n_mux2 100.00 100.00 100.00 100.00
u_reg_regs 98.58 100.00 99.35 93.55 100.00 100.00
u_tlul_lc_gate_rom 97.78 100.00 100.00 100.00 100.00 88.89
u_tlul_lc_gate_sba 90.81 94.49 84.00 100.00 86.67 88.89

Line Coverage for Module : rv_dm
Line No.TotalCoveredPercent
TOTAL3333100.00
CONT_ASSIGN12211100.00
CONT_ASSIGN12311100.00
CONT_ASSIGN12811100.00
CONT_ASSIGN13111100.00
CONT_ASSIGN15411100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23711100.00
CONT_ASSIGN23911100.00
CONT_ASSIGN23911100.00
CONT_ASSIGN23911100.00
CONT_ASSIGN23911100.00
CONT_ASSIGN27811100.00
CONT_ASSIGN28811100.00
CONT_ASSIGN28911100.00
ALWAYS3201111100.00
CONT_ASSIGN34511100.00
CONT_ASSIGN43311100.00
CONT_ASSIGN43911100.00
CONT_ASSIGN44111100.00
CONT_ASSIGN44711100.00
CONT_ASSIGN44811100.00
CONT_ASSIGN52411100.00
CONT_ASSIGN55211100.00

121 // implemented inside the vendored-in rv_dm module from the PULP project. 122 1/1 assign mem_tl_win_h2d = mem_tl_d_i; Tests: T1 T2 T3  123 1/1 assign mem_tl_d_o = mem_tl_win_d2h; Tests: T1 T2 T3  124 125 // Alerts 126 logic [NumAlerts-1:0] alert_test, alerts; 127 128 1/1 assign alerts[0] = regs_intg_error | rom_intg_error | Tests: T1 T2 T3  129 sba_gate_intg_error | rom_gate_intg_error; 130 131 1/1 assign alert_test = { Tests: T1 T2 T3  132 regs_reg2hw.alert_test.q & 133 regs_reg2hw.alert_test.qe 134 }; 135 136 for (genvar i = 0; i < NumAlerts; i++) begin : gen_alert_tx 137 prim_alert_sender #( 138 .AsyncOn(AlertAsyncOn[i]), 139 .IsFatal(1'b1) 140 ) u_prim_alert_sender ( 141 .clk_i, 142 .rst_ni, 143 .alert_test_i ( alert_test[i] ), 144 .alert_req_i ( alerts[0] ), 145 .alert_ack_o ( ), 146 .alert_state_o ( ), 147 .alert_rx_i ( alert_rx_i[i] ), 148 .alert_tx_o ( alert_tx_o[i] ) 149 ); 150 end 151 152 // Decode multibit scanmode enable 153 logic testmode; 154 1/1 assign testmode = mubi4_test_true_strict(scanmode_i); Tests: T27 T9 T90  155 156 /////////////////////// 157 // Life Cycle Gating // 158 /////////////////////// 159 160 // Debug enable gating. 161 localparam int LcEnDebugReqVal = 4 - 1; 162 localparam int LcEnResetReqVal = LcEnDebugReqVal + NrHarts; 163 // +1 to get number of bits and another +1 because LcEnLastPos is one more than LcEnResetReq. 164 localparam int RvDmLcEnSize = $clog2(LcEnResetReqVal + 2); 165 typedef enum logic [RvDmLcEnSize-1:0] { 166 LcEnFetch, 167 LcEnRom, 168 LcEnSba, 169 // LcEnDebugReq[NrHarts], <= this unfortunately does not work - SV-LRM mandates the use of 170 // integral numbers. Parameters are not allowed in this context. 171 LcEnDebugReq, 172 // The above literal accommodates NrHarts number of debug requests - so we number the next 173 // literal accordingly. 174 LcEnResetReq = RvDmLcEnSize'(LcEnResetReqVal), 175 // LcEnLastPos must immediately follow LcEnResetReq to calculate RvDmLcEnSize. 176 LcEnLastPos 177 } rv_dm_lc_en_e; 178 // These must be equal so that the difference between LcEnResetReq and LcEnDebugReq is NrHarts. 179 `ASSERT(RvDmLcEnDebugVal_A, int'(LcEnDebugReq) == LcEnDebugReqVal) 180 181 // debug enable gating 182 typedef enum logic [3:0] { 183 PmEnDmiReq, 184 PmEnJtagIn, 185 PmEnJtagOut, 186 PmEnLastPos 187 } rv_dm_pm_en_e; 188 189 lc_ctrl_pkg::lc_tx_t lc_hw_debug_en; 190 prim_lc_sync #( 191 .NumCopies(1) 192 ) u_prim_lc_sync_lc_hw_debug_en ( 193 .clk_i, 194 .rst_ni, 195 .lc_en_i(lc_hw_debug_en_i), 196 .lc_en_o({lc_hw_debug_en}) 197 ); 198 199 lc_ctrl_pkg::lc_tx_t lc_dft_en; 200 prim_lc_sync #( 201 .NumCopies(1) 202 ) u_prim_lc_sync_lc_dft_en ( 203 .clk_i, 204 .rst_ni, 205 .lc_en_i(lc_dft_en_i), 206 .lc_en_o({lc_dft_en}) 207 ); 208 209 prim_mubi_pkg::mubi8_t [lc_ctrl_pkg::TxWidth-1:0] otp_dis_rv_dm_late_debug; 210 prim_mubi8_sync #( 211 .NumCopies (lc_ctrl_pkg::TxWidth) 212 ) u_prim_mubi8_sync_otp_dis_rv_dm_late_debug ( 213 .clk_i, 214 .rst_ni, 215 .mubi_i(otp_dis_rv_dm_late_debug_i), 216 .mubi_o(otp_dis_rv_dm_late_debug) 217 ); 218 219 prim_mubi_pkg::mubi32_t [lc_ctrl_pkg::TxWidth-1:0] late_debug_enable; 220 prim_mubi32_sync #( 221 .NumCopies (lc_ctrl_pkg::TxWidth), 222 .AsyncOn(0) // No synchronization required since the input signal is already synchronous. 223 ) u_prim_mubi32_sync_late_debug_enable ( 224 .clk_i, 225 .rst_ni, 226 .mubi_i(prim_mubi_pkg::mubi32_t'(regs_reg2hw.late_debug_enable)), 227 .mubi_o(late_debug_enable) 228 ); 229 230 // SEC_CM: DM_EN.CTRL.LC_GATED 231 // This implements a hardened MuBi multiplexor circuit where each output bitlane has its own 232 // associated comparators for the enablement condition. 233 logic [lc_ctrl_pkg::TxWidth-1:0] lc_hw_debug_en_raw; 234 logic [lc_ctrl_pkg::TxWidth-1:0] lc_dft_en_raw; 235 logic [lc_ctrl_pkg::TxWidth-1:0] lc_hw_debug_en_gated_raw; 236 1/1 assign lc_hw_debug_en_raw = lc_hw_debug_en; Tests: T1 T2 T3  237 1/1 assign lc_dft_en_raw = lc_dft_en; Tests: T1 T2 T3  238 for (genvar k = 0; k < lc_ctrl_pkg::TxWidth; k++) begin : gen_mubi_mux 239 4/4 assign lc_hw_debug_en_gated_raw[k] = (mubi8_test_true_strict(otp_dis_rv_dm_late_debug[k]) || Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  240 mubi32_test_true_strict(late_debug_enable[k])) ? 241 lc_hw_debug_en_raw[k] : 242 lc_dft_en_raw[k]; 243 end 244 245 // The lc_hw_debug_en_gated signal modulates gating logic on the bus-side of the RV_DM. 246 // The pinmux_hw_debug_en signal on the other hand modulates the TAP side of the RV_DM. 247 // In order for the RV_DM to remain response during a NDM reset request, the TAP side 248 // is not further modulated with the LATE_DEBUG_ENABLE CSR. 249 lc_ctrl_pkg::lc_tx_t [LcEnLastPos-1:0] lc_hw_debug_en_gated; 250 prim_lc_sync #( 251 .NumCopies(int'(LcEnLastPos)), 252 .AsyncOn(0) // No synchronization required since the input signal is already synchronous. 253 ) u_lc_en_sync_copies ( 254 .clk_i, 255 .rst_ni, 256 .lc_en_i(lc_ctrl_pkg::lc_tx_t'(lc_hw_debug_en_gated_raw)), 257 .lc_en_o(lc_hw_debug_en_gated) 258 ); 259 260 lc_ctrl_pkg::lc_tx_t [PmEnLastPos-1:0] pinmux_hw_debug_en; 261 prim_lc_sync #( 262 .NumCopies(int'(PmEnLastPos)) 263 ) u_pm_en_sync ( 264 .clk_i, 265 .rst_ni, 266 .lc_en_i(pinmux_hw_debug_en_i), 267 .lc_en_o(pinmux_hw_debug_en) 268 ); 269 270 dm::dmi_req_t dmi_req; 271 dm::dmi_resp_t dmi_rsp; 272 logic dmi_req_valid, dmi_req_ready; 273 logic dmi_rsp_valid, dmi_rsp_ready; 274 logic dmi_rst_n; 275 276 logic dmi_en; 277 // SEC_CM: DM_EN.CTRL.LC_GATED 278 1/1 assign dmi_en = lc_tx_test_true_strict(pinmux_hw_debug_en[PmEnDmiReq]); Tests: T1 T2 T3  279 280 //////////////////////// 281 // NDM Reset Tracking // 282 //////////////////////// 283 284 logic reset_req_en; 285 logic ndmreset_req, ndmreset_ack; 286 logic ndmreset_req_qual; 287 // SEC_CM: DM_EN.CTRL.LC_GATED 288 1/1 assign reset_req_en = lc_tx_test_true_strict(lc_hw_debug_en_gated[LcEnResetReq]); Tests: T1 T2 T3  289 1/1 assign ndmreset_req_o = ndmreset_req_qual & reset_req_en; Tests: T1 T2 T3  290 291 // Sample the processor reset to detect lc reset assertion. 292 logic lc_rst_asserted_async; 293 prim_flop_2sync #( 294 .Width(1), 295 .ResetValue(1) // Resets to 1 to indicate assertion. 296 ) u_prim_flop_2sync_lc_rst_assert ( 297 .clk_i, // Use RV_DM clock 298 .rst_ni(rst_lc_ni), // Use LC reset here that resets the entire system except the RV_DM. 299 .d_i(1'b0), // Set to 0 to indicate deassertion. 300 .q_o(lc_rst_asserted_async) 301 ); 302 303 // Note that the output of the above flops can be metastable at reset assertion, since the reset 304 // signal is coming from a different clock domain and has not been synchronized with clk_i. 305 logic lc_rst_asserted; 306 prim_flop_2sync #( 307 .Width(1) 308 ) u_prim_flop_2sync_lc_rst_sync ( 309 .clk_i, 310 .rst_ni, 311 .d_i(lc_rst_asserted_async), 312 .q_o(lc_rst_asserted) 313 ); 314 315 // The acknowledgement pulse sets the dmstatus.allhavereset / dmstatus.anyhavereset registers in 316 // RV_DM. It should only be asserted once an NDM reset request has been fully completed. 317 logic ndmreset_pending_q; 318 logic lc_rst_pending_q; 319 always_ff @(posedge clk_i or negedge rst_ni) begin : p_ndm_reset 320 1/1 if (!rst_ni) begin Tests: T1 T2 T3  321 1/1 ndmreset_pending_q <= 1'b0; Tests: T1 T2 T3  322 1/1 lc_rst_pending_q <= 1'b0; Tests: T1 T2 T3  323 end else begin 324 // Only set this if there was no previous pending NDM request. 325 1/1 if (ndmreset_req && !ndmreset_pending_q) begin Tests: T1 T2 T3  326 1/1 ndmreset_pending_q <= 1'b1; Tests: T17 T4 T102  327 1/1 end else if (ndmreset_ack && ndmreset_pending_q) begin Tests: T1 T2 T3  328 1/1 ndmreset_pending_q <= 1'b0; Tests: T4 T43 T44  329 end MISSING_ELSE 330 // We only track lc resets that are asserted during an active ndm reset request.. 331 1/1 if (ndmreset_pending_q && lc_rst_asserted) begin Tests: T1 T2 T3  332 1/1 lc_rst_pending_q <= 1'b1; Tests: T4 T43 T44  333 1/1 end else if (ndmreset_ack && lc_rst_pending_q) begin Tests: T1 T2 T3  334 1/1 lc_rst_pending_q <= 1'b0; Tests: T4 T43 T44  335 end MISSING_ELSE 336 end 337 end 338 339 // In order to ACK the following conditions must be met 340 // 1) an NDM reset request was asserted and is pending 341 // 2) a lc reset was asserted after the NDM reset request 342 // 3) the NDM reset request was deasserted 343 // 4) the NDM lc request was deasserted 344 // 5) the debug module has been ungated for operation (depending on LC state, OTP config and CSR) 345 1/1 assign ndmreset_ack = ndmreset_pending_q && Tests: T1 T2 T3  346 lc_rst_pending_q && 347 !ndmreset_req && 348 !lc_rst_asserted && 349 reset_req_en; 350 351 ///////////////////////////////////////// 352 // System Bus Access Port (TL-UL Host) // 353 ///////////////////////////////////////// 354 355 logic host_req; 356 logic [BusWidth-1:0] host_add; 357 logic host_we; 358 logic [BusWidth-1:0] host_wdata; 359 logic [BusWidth/8-1:0] host_be; 360 logic host_gnt; 361 logic host_r_valid; 362 logic [BusWidth-1:0] host_r_rdata; 363 logic host_r_err; 364 logic host_r_other_err; 365 366 // SEC_CM: DM_EN.CTRL.LC_GATED 367 // SEC_CM: SBA_TL_LC_GATE.FSM.SPARSE 368 tlul_pkg::tl_h2d_t sba_tl_h_o_int; 369 tlul_pkg::tl_d2h_t sba_tl_h_i_int; 370 tlul_lc_gate #( 371 .NumGatesPerDirection(2) 372 ) u_tlul_lc_gate_sba ( 373 .clk_i, 374 .rst_ni, 375 .tl_h2d_i(sba_tl_h_o_int), 376 .tl_d2h_o(sba_tl_h_i_int), 377 .tl_h2d_o(sba_tl_h_o), 378 .tl_d2h_i(sba_tl_h_i), 379 .lc_en_i (lc_hw_debug_en_gated[LcEnSba]), 380 .err_o (sba_gate_intg_error), 381 .flush_req_i('0), 382 .flush_ack_o(), 383 .resp_pending_o() 384 ); 385 386 tlul_adapter_host #( 387 .MAX_REQS(1), 388 .EnableDataIntgGen(1), 389 .EnableRspDataIntgCheck(1) 390 ) tl_adapter_host_sba ( 391 .clk_i, 392 .rst_ni, 393 .req_i (host_req), 394 .instr_type_i (prim_mubi_pkg::MuBi4False), 395 .gnt_o (host_gnt), 396 .addr_i (host_add), 397 .we_i (host_we), 398 .wdata_i (host_wdata), 399 .wdata_intg_i ('0), 400 .be_i (host_be), 401 .user_rsvd_i ('0), 402 .valid_o (host_r_valid), 403 .rdata_o (host_r_rdata), 404 .rdata_intg_o (), 405 .err_o (host_r_err), 406 // Note: This bus integrity error is not connected to the alert due to a few reasons: 407 // 1) the SBA module is not active in production life cycle states. 408 // 2) there is value in being able to accept incoming transactions with integrity 409 // errors during test / debug life cycle states so that the system can be debugged 410 // without triggering alerts. 411 // 3) the error condition is hooked up to an error CSR that can be read out by the debugger 412 // via JTAG so that bus integrity errors can be told appart from regular bus errors. 413 .intg_err_o (host_r_other_err), 414 .tl_o (sba_tl_h_o_int), 415 .tl_i (sba_tl_h_i_int) 416 ); 417 418 ////////////////////////////////////// 419 // Debug Memory Port (TL-UL Device) // 420 ////////////////////////////////////// 421 422 logic device_req; 423 logic device_we; 424 logic device_re; 425 logic [BusWidth/8-1:0] device_be; 426 logic [BusWidth-1:0] device_wdata; 427 logic [BusWidth-1:0] device_rdata; 428 logic device_err; 429 430 logic [BusWidth-1:0] device_addr_aligned; 431 logic [MemAw-1:0] device_addr; 432 433 1/1 assign device_addr_aligned = BusWidth'(device_addr); Tests: T1 T2 T3  434 435 logic [NrHarts-1:0] debug_req_en; 436 logic [NrHarts-1:0] debug_req; 437 for (genvar i = 0; i < NrHarts; i++) begin : gen_debug_req_hart 438 // SEC_CM: DM_EN.CTRL.LC_GATED 439 1/1 assign debug_req_en[i] = lc_tx_test_true_strict(lc_hw_debug_en_gated[LcEnDebugReq + i]); Tests: T1 T2 T3  440 end 441 1/1 assign debug_req_o = debug_req & debug_req_en; Tests: T1 T2 T3  442 443 // Gating of JTAG signals 444 jtag_pkg::jtag_req_t jtag_in_int; 445 jtag_pkg::jtag_rsp_t jtag_out_int; 446 447 1/1 assign jtag_in_int = (lc_tx_test_true_strict(pinmux_hw_debug_en[PmEnJtagIn])) ? jtag_i : '0; Tests: T1 T2 T3  448 1/1 assign jtag_o = (lc_tx_test_true_strict(pinmux_hw_debug_en[PmEnJtagOut])) ? jtag_out_int : '0; Tests: T1 T2 T3  449 450 // Bound-in DPI module replaces the TAP 451 `ifndef DMIDirectTAP 452 453 logic tck_muxed; 454 logic trst_n_muxed; 455 prim_clock_mux2 #( 456 .NoFpgaBufG(1'b1) 457 ) u_prim_clock_mux2 ( 458 .clk0_i(jtag_in_int.tck), 459 .clk1_i(clk_i), 460 .sel_i (testmode), 461 .clk_o (tck_muxed) 462 ); 463 464 prim_clock_mux2 #( 465 .NoFpgaBufG(1'b1) 466 ) u_prim_rst_n_mux2 ( 467 .clk0_i(jtag_in_int.trst_n), 468 .clk1_i(scan_rst_ni), 469 .sel_i (testmode), 470 .clk_o (trst_n_muxed) 471 ); 472 473 // JTAG TAP 474 dmi_jtag #( 475 .IdcodeValue (IdcodeValue), 476 .NumDmiWordAbits(7) 477 ) dap ( 478 .clk_i (clk_i), 479 .rst_ni (rst_ni), 480 .testmode_i (testmode), 481 .test_rst_ni (scan_rst_ni), 482 483 .dmi_rst_no (dmi_rst_n), 484 .dmi_req_o (dmi_req), 485 .dmi_req_valid_o (dmi_req_valid), 486 .dmi_req_ready_i (dmi_req_ready & dmi_en), 487 488 .dmi_resp_i (dmi_rsp ), 489 .dmi_resp_ready_o (dmi_rsp_ready), 490 .dmi_resp_valid_i (dmi_rsp_valid & dmi_en), 491 492 //JTAG 493 .tck_i (tck_muxed), 494 .tms_i (jtag_in_int.tms), 495 .trst_ni (trst_n_muxed), 496 .td_i (jtag_in_int.tdi), 497 .td_o (jtag_out_int.tdo), 498 .tdo_oe_o (jtag_out_int.tdo_oe) 499 ); 500 `endif 501 502 // SEC_CM: DM_EN.CTRL.LC_GATED 503 // SEC_CM: MEM_TL_LC_GATE.FSM.SPARSE 504 tlul_pkg::tl_h2d_t mem_tl_win_h2d_gated; 505 tlul_pkg::tl_d2h_t mem_tl_win_d2h_gated; 506 tlul_lc_gate #( 507 .NumGatesPerDirection(2) 508 ) u_tlul_lc_gate_rom ( 509 .clk_i, 510 .rst_ni, 511 .tl_h2d_i(mem_tl_win_h2d), 512 .tl_d2h_o(mem_tl_win_d2h), 513 .tl_h2d_o(mem_tl_win_h2d_gated), 514 .tl_d2h_i(mem_tl_win_d2h_gated), 515 .flush_req_i(ndmreset_req), 516 .flush_ack_o(ndmreset_req_qual), 517 .resp_pending_o(), 518 .lc_en_i (lc_hw_debug_en_gated[LcEnRom]), 519 .err_o (rom_gate_intg_error) 520 ); 521 522 prim_mubi_pkg::mubi4_t en_ifetch; 523 // SEC_CM: DM_EN.CTRL.LC_GATED, EXEC.CTRL.MUBI 524 1/1 assign en_ifetch = mubi4_bool_to_mubi(lc_tx_test_true_strict(lc_hw_debug_en_gated[LcEnFetch])); Tests: T1 T2 T3  525 526 tlul_adapter_reg #( 527 .CmdIntgCheck (1), 528 .EnableRspIntgGen (1), 529 .EnableDataIntgGen(1), 530 .RegAw (MemAw), 531 .RegDw (BusWidth), 532 .AccessLatency (1) 533 ) i_tlul_adapter_reg ( 534 .clk_i, 535 .rst_ni, 536 .tl_i (mem_tl_win_h2d_gated), 537 .tl_o (mem_tl_win_d2h_gated), 538 // SEC_CM: EXEC.CTRL.MUBI 539 .en_ifetch_i (en_ifetch), 540 // SEC_CM: BUS.INTEGRITY 541 .intg_error_o(rom_intg_error), 542 .re_o (device_re), 543 .we_o (device_we), 544 .addr_o (device_addr), 545 .wdata_o (device_wdata), 546 .be_o (device_be), 547 .busy_i (1'b0), 548 .rdata_i (device_rdata), 549 .error_i (device_err) 550 ); 551 552 1/1 assign device_req = device_we || device_re; Tests: T1 T2 T3 

Cond Coverage for Module : rv_dm
TotalCoveredPercent
Conditions474391.49
Logical474391.49
Non-Logical00
Event00

 LINE       128
 EXPRESSION (regs_intg_error | rom_intg_error | sba_gate_intg_error | rom_gate_intg_error)
             -------1-------   -------2------   ---------3---------   ---------4---------
-1--2--3--4-StatusTests
0000CoveredT1,T2,T3
0001CoveredT51,T83,T86
0010CoveredT82
0100CoveredT90,T24,T103
1000CoveredT49,T52,T104

 LINE       131
 SUB-EXPRESSION (regs_reg2hw.alert_test.q & regs_reg2hw.alert_test.qe)
                 ------------1-----------   ------------2------------
-1--2-StatusTests
01CoveredT48,T53,T54
10CoveredT2,T48,T49
11CoveredT48,T53,T54

 LINE       289
 EXPRESSION (ndmreset_req_qual & reset_req_en)
             --------1--------   ------2-----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT4,T45,T43
11CoveredT4,T43,T9

 LINE       325
 EXPRESSION (ndmreset_req && ((!ndmreset_pending_q)))
             ------1-----    -----------2-----------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT17,T4,T102
11CoveredT17,T4,T102

 LINE       327
 EXPRESSION (ndmreset_ack && ndmreset_pending_q)
             ------1-----    ---------2--------
-1--2-StatusTests
01CoveredT17,T4,T102
10Not Covered
11CoveredT4,T43,T44

 LINE       331
 EXPRESSION (ndmreset_pending_q && lc_rst_asserted)
             ---------1--------    -------2-------
-1--2-StatusTests
01CoveredT17,T48,T49
10CoveredT17,T4,T102
11CoveredT4,T43,T44

 LINE       333
 EXPRESSION (ndmreset_ack && lc_rst_pending_q)
             ------1-----    --------2-------
-1--2-StatusTests
01CoveredT4,T43,T44
10Not Covered
11CoveredT4,T43,T44

 LINE       345
 EXPRESSION (ndmreset_pending_q && lc_rst_pending_q && ((!ndmreset_req)) && ((!lc_rst_asserted)) && reset_req_en)
             ---------1--------    --------2-------    --------3--------    ----------4---------    ------5-----
-1--2--3--4--5-StatusTests
01111Not Covered
10111CoveredT9,T85,T80
11011CoveredT4,T43,T44
11101CoveredT62,T94
11110CoveredT4,T43,T44
11111CoveredT4,T43,T44

 LINE       441
 EXPRESSION (debug_req & debug_req_en)
             ----1----   ------2-----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT105,T102,T45
11CoveredT1,T3,T17

 LINE       477
 EXPRESSION (dmi_req_ready & dmi_en)
             ------1------   ---2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT49,T6,T51
11CoveredT1,T2,T3

 LINE       477
 EXPRESSION (dmi_rsp_valid & dmi_en)
             ------1------   ---2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT37
11CoveredT1,T2,T3

 LINE       552
 EXPRESSION (device_we || device_re)
             ----1----    ----2----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T12,T50
10CoveredT1,T3,T12

 LINE       568
 EXPRESSION (dmi_req_valid & dmi_en)
             ------1------   ---2--
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT1,T2,T3

 LINE       568
 EXPRESSION (dmi_rsp_ready & dmi_en)
             ------1------   ---2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT49,T6,T51
11CoveredT1,T2,T3

Toggle Coverage for Module : rv_dm
TotalCoveredPercent
Totals 98 80 81.63
Total Bits 1140 1056 92.63
Total Bits 0->1 570 528 92.63
Total Bits 1->0 570 528 92.63

Ports 98 80 81.63
Port Bits 1140 1056 92.63
Port Bits 0->1 570 528 92.63
Port Bits 1->0 570 528 92.63

Port Details
NameToggleToggle 1->0TestsToggle 0->1TestsDirection
clk_i Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
clk_lc_i Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
rst_ni Yes Yes T49,T51,T52 Yes T1,T2,T3 INPUT
rst_lc_ni Yes Yes T49,T51,T4 Yes T1,T2,T3 INPUT
next_dm_addr_i[31:0] Unreachable Unreachable Unreachable INPUT
lc_hw_debug_en_i[3:0] Yes Yes T105,T102,T38 Yes T105,T38,T58 INPUT
lc_dft_en_i[3:0] No No No INPUT
pinmux_hw_debug_en_i[3:0] Yes Yes T6,T11,T106 Yes T6,T11,T106 INPUT
otp_dis_rv_dm_late_debug_i[7:0] Yes Yes T27,T9,T44 Yes T27,T9,T44 INPUT
scanmode_i[3:0] Yes Yes T9,T90,T44 Yes T27,T9,T90 INPUT
scan_rst_ni Yes Yes T49,T51,T52 Yes T1,T2,T3 INPUT
ndmreset_req_o Yes Yes T4,T43,T9 Yes T4,T43,T9 OUTPUT
dmactive_o Yes Yes T49,T51,T14 Yes T1,T2,T3 OUTPUT
debug_req_o Yes Yes T1,T17,T12 Yes T1,T3,T17 OUTPUT
unavailable_i Yes Yes T2,T4,T5 Yes T2,T4,T5 INPUT
regs_tl_d_i.d_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
regs_tl_d_i.a_user.data_intg[6:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_user.cmd_intg[6:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_user.instr_type[3:0] Yes Yes T2,T48,T49 Yes T48,T49,T12 INPUT
regs_tl_d_i.a_user.rsvd[4:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_data[31:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_mask[3:0] Yes Yes T48,T49,T23 Yes T48,T49,T23 INPUT
regs_tl_d_i.a_address[31:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_source[7:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_size[1:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_param[2:0] Yes Yes T2,T48,T49 Yes T48,T49,T12 INPUT
regs_tl_d_i.a_opcode[2:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_valid Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
regs_tl_d_o.a_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
regs_tl_d_o.d_error Yes Yes T80,T90,T31 Yes T80,T90,T31 OUTPUT
regs_tl_d_o.d_user.data_intg[6:0] Yes Yes T62,T36,T34 Yes T62,T36,T34 OUTPUT
regs_tl_d_o.d_user.rsp_intg[5:0] Yes Yes *T48,*T51,*T53 Yes T1,T2,T3 OUTPUT
regs_tl_d_o.d_user.rsp_intg[6] No No No OUTPUT
regs_tl_d_o.d_data[31:0] Yes Yes T51,T82,T27 Yes T1,T2,T3 OUTPUT
regs_tl_d_o.d_sink No No No OUTPUT
regs_tl_d_o.d_source[7:0] Yes Yes T51,T54,T40 Yes T2,T3,T17 OUTPUT
regs_tl_d_o.d_size[1:0] Yes Yes T48,T54,T80 Yes T48,T53,T54 OUTPUT
regs_tl_d_o.d_param[2:0] No No No OUTPUT
regs_tl_d_o.d_opcode[0] Yes Yes *T80,*T90,*T31 Yes T80,T90,T31 OUTPUT
regs_tl_d_o.d_opcode[2:1] No No No OUTPUT
regs_tl_d_o.d_valid Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
mem_tl_d_i.d_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
mem_tl_d_i.a_user.data_intg[6:0] Yes Yes T17,T12,T50 Yes T17,T12,T50 INPUT
mem_tl_d_i.a_user.cmd_intg[6:0] Yes Yes T1,T17,T12 Yes T1,T17,T12 INPUT
mem_tl_d_i.a_user.instr_type[3:0] Yes Yes T17,T12,T51 Yes T17,T12,T7 INPUT
mem_tl_d_i.a_user.rsvd[4:0] Yes Yes T17,T12,T7 Yes T17,T12,T51 INPUT
mem_tl_d_i.a_data[31:0] Yes Yes T1,T17,T12 Yes T1,T12,T50 INPUT
mem_tl_d_i.a_mask[3:0] Yes Yes T12,T47,T60 Yes T12,T47,T51 INPUT
mem_tl_d_i.a_address[31:0] Yes Yes T17,T12,T51 Yes T17,T12,T60 INPUT
mem_tl_d_i.a_source[7:0] Yes Yes T17,T12,T50 Yes T17,T12,T50 INPUT
mem_tl_d_i.a_size[1:0] Yes Yes T3,T12,T28 Yes T3,T17,T12 INPUT
mem_tl_d_i.a_param[2:0] Yes Yes T17,T12,T51 Yes T17,T12,T60 INPUT
mem_tl_d_i.a_opcode[2:0] Yes Yes T3,T17,T12 Yes T1,T3,T17 INPUT
mem_tl_d_i.a_valid Yes Yes T1,T3,T17 Yes T1,T3,T17 INPUT
mem_tl_d_o.a_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
mem_tl_d_o.d_error Yes Yes T1,T2,T3 Yes T17,T49,T51 OUTPUT
mem_tl_d_o.d_user.data_intg[6:0] Yes Yes T12,T50,T47 Yes T12,T50,T47 OUTPUT
mem_tl_d_o.d_user.rsp_intg[5:0] Yes Yes *T1,*T17,T12 Yes T1,T3,T17 OUTPUT
mem_tl_d_o.d_user.rsp_intg[6] No No No OUTPUT
mem_tl_d_o.d_data[31:0] Yes Yes T1,T2,T3 Yes T1,T3,T17 OUTPUT
mem_tl_d_o.d_sink No No No OUTPUT
mem_tl_d_o.d_source[7:0] Yes Yes T17,T50,T47 Yes T3,T17,T12 OUTPUT
mem_tl_d_o.d_size[1:0] Yes Yes T3,T12,T28 Yes T3,T12,T28 OUTPUT
mem_tl_d_o.d_param[2:0] No No No OUTPUT
mem_tl_d_o.d_opcode[0] Yes Yes *T1,*T2,*T3 Yes T1,T17,T49 OUTPUT
mem_tl_d_o.d_opcode[2:1] No No No OUTPUT
mem_tl_d_o.d_valid Yes Yes T1,T3,T17 Yes T1,T3,T17 OUTPUT
sba_tl_h_o.d_ready Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_user.data_intg[6:0] Yes Yes T18,T19,T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_o.a_user.cmd_intg[6:0] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_user.instr_type[0] Yes Yes *T49,*T51,*T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_user.instr_type[2:1] No No No OUTPUT
sba_tl_h_o.a_user.instr_type[3] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_user.rsvd[4:0] No No No OUTPUT
sba_tl_h_o.a_data[31:0] Yes Yes T18,T19,T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_o.a_mask[3:0] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_address[1:0] No No No OUTPUT
sba_tl_h_o.a_address[31:2] Yes Yes T18,T19,T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_o.a_source[7:0] No No No OUTPUT
sba_tl_h_o.a_size[0] No No No OUTPUT
sba_tl_h_o.a_size[1] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_param[2:0] No No No OUTPUT
sba_tl_h_o.a_opcode[0] Yes Yes *T18,*T19,*T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_o.a_opcode[1] No No No OUTPUT
sba_tl_h_o.a_opcode[2] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_valid Yes Yes T18,T19,T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_i.a_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
sba_tl_h_i.d_error Yes Yes T2,T49,T6 Yes T49,T77,T78 INPUT
sba_tl_h_i.d_user.data_intg[6:0] Yes Yes T49,T6,T50 Yes T2,T3,T49 INPUT
sba_tl_h_i.d_user.rsp_intg[6:0] Yes Yes T49,T50,T77 Yes T3,T49,T13 INPUT
sba_tl_h_i.d_data[31:0] Yes Yes T3,T49,T78 Yes T2,T49,T50 INPUT
sba_tl_h_i.d_sink Yes Yes T49,T13,T107 Yes T49,T50,T47 INPUT
sba_tl_h_i.d_source[7:0] Yes Yes T49,T6,T50 Yes T49,T60,T18 INPUT
sba_tl_h_i.d_size[1:0] Yes Yes T49,T50,T78 Yes T3,T49,T4 INPUT
sba_tl_h_i.d_param[2:0] Yes Yes T49,T77,T18 Yes T49,T13,T18 INPUT
sba_tl_h_i.d_opcode[2:0] Yes Yes T3,T49,T50 Yes T49,T6,T47 INPUT
sba_tl_h_i.d_valid Yes Yes T18,T19,T40 Yes T18,T19,T40 INPUT
alert_rx_i[0].ack_n Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
alert_rx_i[0].ack_p Yes Yes T48,T49,T51 Yes T48,T49,T51 INPUT
alert_rx_i[0].ping_n No No No INPUT
alert_rx_i[0].ping_p No No No INPUT
alert_tx_o[0].alert_n Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
alert_tx_o[0].alert_p Yes Yes T48,T49,T51 Yes T48,T49,T51 OUTPUT
jtag_i.tdi Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
jtag_i.trst_n Yes Yes T49,T6,T8 Yes T1,T2,T3 INPUT
jtag_i.tms Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
jtag_i.tck Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
jtag_o.tdo_oe Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
jtag_o.tdo Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT

*Tests covering at least one bit in the range

Branch Coverage for Module : rv_dm
Line No.TotalCoveredPercent
Branches 7 7 100.00
IF 320 7 7 100.00


320 if (!rst_ni) begin -1- 321 ndmreset_pending_q <= 1'b0; ==> 322 lc_rst_pending_q <= 1'b0; 323 end else begin 324 // Only set this if there was no previous pending NDM request. 325 if (ndmreset_req && !ndmreset_pending_q) begin -2- 326 ndmreset_pending_q <= 1'b1; ==> 327 end else if (ndmreset_ack && ndmreset_pending_q) begin -3- 328 ndmreset_pending_q <= 1'b0; ==> 329 end MISSING_ELSE ==> 330 // We only track lc resets that are asserted during an active ndm reset request.. 331 if (ndmreset_pending_q && lc_rst_asserted) begin -4- 332 lc_rst_pending_q <= 1'b1; ==> 333 end else if (ndmreset_ack && lc_rst_pending_q) begin -5- 334 lc_rst_pending_q <= 1'b0; ==> 335 end MISSING_ELSE ==>

Branches:
-1--2--3--4--5-StatusTests
1 - - - - Covered T1,T2,T3
0 1 - - - Covered T17,T4,T102
0 0 1 - - Covered T4,T43,T44
0 0 0 - - Covered T1,T2,T3
0 - - 1 - Covered T4,T43,T44
0 - - 0 1 Covered T4,T43,T44
0 - - 0 0 Covered T1,T2,T3


Assert Coverage for Module : rv_dm
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 16 16 100.00 16 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 16 16 100.00 16 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DebugReqOKnown_A 53568015 53515363 0 0
DmactiveOKnown_A 53568015 53515363 0 0
FpvSecCmRegWeOnehotCheck_A 53568015 80 0 0
FpvSecCmRomTlLcGateFsm_A 53568015 3 0 0
FpvSecCmSbaTlLcGateFsm_A 53568015 1 0 0
JtagRspOTdoKnown_A 2487297 2487242 0 0
JtagRspOTdoOeKnown_A 2487297 2487242 0 0
NdmresetOKnown_A 53568015 53515363 0 0
RvDmLcEnDebugVal_A 53568015 53515363 0 0
TlMemAReadyKnown_A 53568015 53515363 0 0
TlMemDValidKnown_A 53568015 53515363 0 0
TlRegsAReadyKnown_A 53568015 53515363 0 0
TlRegsDValidKnown_A 53568015 53515363 0 0
TlSbaAValidKnown_A 53568015 53515363 0 0
TlSbaDReadyKnown_A 53568015 53515363 0 0
paramCheckNrHarts 250 250 0 0


DebugReqOKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

DmactiveOKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

FpvSecCmRegWeOnehotCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 80 0 0
T6 8131 0 0 0
T7 12071 0 0 0
T8 9429 0 0 0
T12 7468 0 0 0
T23 14278 0 0 0
T26 1849 0 0 0
T28 14493 0 0 0
T49 50558 20 0 0
T50 3291 0 0 0
T52 0 20 0 0
T77 1068 0 0 0
T104 0 20 0 0
T108 0 10 0 0
T109 0 10 0 0

FpvSecCmRomTlLcGateFsm_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 3 0 0
T4 41058 0 0 0
T14 40949 0 0 0
T29 68608 0 0 0
T41 68903 0 0 0
T51 10959 1 0 0
T60 39003 0 0 0
T76 26192 0 0 0
T78 41305 0 0 0
T83 0 1 0 0
T86 0 1 0 0
T107 18282 0 0 0
T110 47798 0 0 0

FpvSecCmSbaTlLcGateFsm_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 1 0 0
T27 10893 0 0 0
T43 68052 0 0 0
T45 10157 0 0 0
T54 2829 0 0 0
T74 27870 0 0 0
T82 1393 1 0 0
T111 3093 0 0 0
T112 4476 0 0 0
T113 10979 0 0 0
T114 8304 0 0 0

JtagRspOTdoKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 2487297 2487242 0 0
T1 783 783 0 0
T2 1034 1034 0 0
T3 1405 1405 0 0
T6 678 678 0 0
T12 1407 1407 0 0
T17 749 749 0 0
T23 649 649 0 0
T48 117 117 0 0
T49 2623 2622 0 0
T50 121 121 0 0

JtagRspOTdoOeKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 2487297 2487242 0 0
T1 783 783 0 0
T2 1034 1034 0 0
T3 1405 1405 0 0
T6 678 678 0 0
T12 1407 1407 0 0
T17 749 749 0 0
T23 649 649 0 0
T48 117 117 0 0
T49 2623 2622 0 0
T50 121 121 0 0

NdmresetOKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

RvDmLcEnDebugVal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlMemAReadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlMemDValidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlRegsAReadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlRegsDValidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlSbaAValidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlSbaDReadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

paramCheckNrHarts
NameAttemptsReal SuccessesFailuresIncomplete
Total 250 250 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T6 1 1 0 0
T12 1 1 0 0
T17 1 1 0 0
T23 1 1 0 0
T48 1 1 0 0
T49 1 1 0 0
T50 1 1 0 0

Line Coverage for Instance : tb.dut
Line No.TotalCoveredPercent
TOTAL3333100.00
CONT_ASSIGN12211100.00
CONT_ASSIGN12311100.00
CONT_ASSIGN12811100.00
CONT_ASSIGN13111100.00
CONT_ASSIGN15411100.00
CONT_ASSIGN23611100.00
CONT_ASSIGN23711100.00
CONT_ASSIGN23911100.00
CONT_ASSIGN23911100.00
CONT_ASSIGN23911100.00
CONT_ASSIGN23911100.00
CONT_ASSIGN27811100.00
CONT_ASSIGN28811100.00
CONT_ASSIGN28911100.00
ALWAYS3201111100.00
CONT_ASSIGN34511100.00
CONT_ASSIGN43311100.00
CONT_ASSIGN43911100.00
CONT_ASSIGN44111100.00
CONT_ASSIGN44711100.00
CONT_ASSIGN44811100.00
CONT_ASSIGN52411100.00
CONT_ASSIGN55211100.00

121 // implemented inside the vendored-in rv_dm module from the PULP project. 122 1/1 assign mem_tl_win_h2d = mem_tl_d_i; Tests: T1 T2 T3  123 1/1 assign mem_tl_d_o = mem_tl_win_d2h; Tests: T1 T2 T3  124 125 // Alerts 126 logic [NumAlerts-1:0] alert_test, alerts; 127 128 1/1 assign alerts[0] = regs_intg_error | rom_intg_error | Tests: T1 T2 T3  129 sba_gate_intg_error | rom_gate_intg_error; 130 131 1/1 assign alert_test = { Tests: T1 T2 T3  132 regs_reg2hw.alert_test.q & 133 regs_reg2hw.alert_test.qe 134 }; 135 136 for (genvar i = 0; i < NumAlerts; i++) begin : gen_alert_tx 137 prim_alert_sender #( 138 .AsyncOn(AlertAsyncOn[i]), 139 .IsFatal(1'b1) 140 ) u_prim_alert_sender ( 141 .clk_i, 142 .rst_ni, 143 .alert_test_i ( alert_test[i] ), 144 .alert_req_i ( alerts[0] ), 145 .alert_ack_o ( ), 146 .alert_state_o ( ), 147 .alert_rx_i ( alert_rx_i[i] ), 148 .alert_tx_o ( alert_tx_o[i] ) 149 ); 150 end 151 152 // Decode multibit scanmode enable 153 logic testmode; 154 1/1 assign testmode = mubi4_test_true_strict(scanmode_i); Tests: T27 T9 T90  155 156 /////////////////////// 157 // Life Cycle Gating // 158 /////////////////////// 159 160 // Debug enable gating. 161 localparam int LcEnDebugReqVal = 4 - 1; 162 localparam int LcEnResetReqVal = LcEnDebugReqVal + NrHarts; 163 // +1 to get number of bits and another +1 because LcEnLastPos is one more than LcEnResetReq. 164 localparam int RvDmLcEnSize = $clog2(LcEnResetReqVal + 2); 165 typedef enum logic [RvDmLcEnSize-1:0] { 166 LcEnFetch, 167 LcEnRom, 168 LcEnSba, 169 // LcEnDebugReq[NrHarts], <= this unfortunately does not work - SV-LRM mandates the use of 170 // integral numbers. Parameters are not allowed in this context. 171 LcEnDebugReq, 172 // The above literal accommodates NrHarts number of debug requests - so we number the next 173 // literal accordingly. 174 LcEnResetReq = RvDmLcEnSize'(LcEnResetReqVal), 175 // LcEnLastPos must immediately follow LcEnResetReq to calculate RvDmLcEnSize. 176 LcEnLastPos 177 } rv_dm_lc_en_e; 178 // These must be equal so that the difference between LcEnResetReq and LcEnDebugReq is NrHarts. 179 `ASSERT(RvDmLcEnDebugVal_A, int'(LcEnDebugReq) == LcEnDebugReqVal) 180 181 // debug enable gating 182 typedef enum logic [3:0] { 183 PmEnDmiReq, 184 PmEnJtagIn, 185 PmEnJtagOut, 186 PmEnLastPos 187 } rv_dm_pm_en_e; 188 189 lc_ctrl_pkg::lc_tx_t lc_hw_debug_en; 190 prim_lc_sync #( 191 .NumCopies(1) 192 ) u_prim_lc_sync_lc_hw_debug_en ( 193 .clk_i, 194 .rst_ni, 195 .lc_en_i(lc_hw_debug_en_i), 196 .lc_en_o({lc_hw_debug_en}) 197 ); 198 199 lc_ctrl_pkg::lc_tx_t lc_dft_en; 200 prim_lc_sync #( 201 .NumCopies(1) 202 ) u_prim_lc_sync_lc_dft_en ( 203 .clk_i, 204 .rst_ni, 205 .lc_en_i(lc_dft_en_i), 206 .lc_en_o({lc_dft_en}) 207 ); 208 209 prim_mubi_pkg::mubi8_t [lc_ctrl_pkg::TxWidth-1:0] otp_dis_rv_dm_late_debug; 210 prim_mubi8_sync #( 211 .NumCopies (lc_ctrl_pkg::TxWidth) 212 ) u_prim_mubi8_sync_otp_dis_rv_dm_late_debug ( 213 .clk_i, 214 .rst_ni, 215 .mubi_i(otp_dis_rv_dm_late_debug_i), 216 .mubi_o(otp_dis_rv_dm_late_debug) 217 ); 218 219 prim_mubi_pkg::mubi32_t [lc_ctrl_pkg::TxWidth-1:0] late_debug_enable; 220 prim_mubi32_sync #( 221 .NumCopies (lc_ctrl_pkg::TxWidth), 222 .AsyncOn(0) // No synchronization required since the input signal is already synchronous. 223 ) u_prim_mubi32_sync_late_debug_enable ( 224 .clk_i, 225 .rst_ni, 226 .mubi_i(prim_mubi_pkg::mubi32_t'(regs_reg2hw.late_debug_enable)), 227 .mubi_o(late_debug_enable) 228 ); 229 230 // SEC_CM: DM_EN.CTRL.LC_GATED 231 // This implements a hardened MuBi multiplexor circuit where each output bitlane has its own 232 // associated comparators for the enablement condition. 233 logic [lc_ctrl_pkg::TxWidth-1:0] lc_hw_debug_en_raw; 234 logic [lc_ctrl_pkg::TxWidth-1:0] lc_dft_en_raw; 235 logic [lc_ctrl_pkg::TxWidth-1:0] lc_hw_debug_en_gated_raw; 236 1/1 assign lc_hw_debug_en_raw = lc_hw_debug_en; Tests: T1 T2 T3  237 1/1 assign lc_dft_en_raw = lc_dft_en; Tests: T1 T2 T3  238 for (genvar k = 0; k < lc_ctrl_pkg::TxWidth; k++) begin : gen_mubi_mux 239 4/4 assign lc_hw_debug_en_gated_raw[k] = (mubi8_test_true_strict(otp_dis_rv_dm_late_debug[k]) || Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3  | T1 T2 T3  240 mubi32_test_true_strict(late_debug_enable[k])) ? 241 lc_hw_debug_en_raw[k] : 242 lc_dft_en_raw[k]; 243 end 244 245 // The lc_hw_debug_en_gated signal modulates gating logic on the bus-side of the RV_DM. 246 // The pinmux_hw_debug_en signal on the other hand modulates the TAP side of the RV_DM. 247 // In order for the RV_DM to remain response during a NDM reset request, the TAP side 248 // is not further modulated with the LATE_DEBUG_ENABLE CSR. 249 lc_ctrl_pkg::lc_tx_t [LcEnLastPos-1:0] lc_hw_debug_en_gated; 250 prim_lc_sync #( 251 .NumCopies(int'(LcEnLastPos)), 252 .AsyncOn(0) // No synchronization required since the input signal is already synchronous. 253 ) u_lc_en_sync_copies ( 254 .clk_i, 255 .rst_ni, 256 .lc_en_i(lc_ctrl_pkg::lc_tx_t'(lc_hw_debug_en_gated_raw)), 257 .lc_en_o(lc_hw_debug_en_gated) 258 ); 259 260 lc_ctrl_pkg::lc_tx_t [PmEnLastPos-1:0] pinmux_hw_debug_en; 261 prim_lc_sync #( 262 .NumCopies(int'(PmEnLastPos)) 263 ) u_pm_en_sync ( 264 .clk_i, 265 .rst_ni, 266 .lc_en_i(pinmux_hw_debug_en_i), 267 .lc_en_o(pinmux_hw_debug_en) 268 ); 269 270 dm::dmi_req_t dmi_req; 271 dm::dmi_resp_t dmi_rsp; 272 logic dmi_req_valid, dmi_req_ready; 273 logic dmi_rsp_valid, dmi_rsp_ready; 274 logic dmi_rst_n; 275 276 logic dmi_en; 277 // SEC_CM: DM_EN.CTRL.LC_GATED 278 1/1 assign dmi_en = lc_tx_test_true_strict(pinmux_hw_debug_en[PmEnDmiReq]); Tests: T1 T2 T3  279 280 //////////////////////// 281 // NDM Reset Tracking // 282 //////////////////////// 283 284 logic reset_req_en; 285 logic ndmreset_req, ndmreset_ack; 286 logic ndmreset_req_qual; 287 // SEC_CM: DM_EN.CTRL.LC_GATED 288 1/1 assign reset_req_en = lc_tx_test_true_strict(lc_hw_debug_en_gated[LcEnResetReq]); Tests: T1 T2 T3  289 1/1 assign ndmreset_req_o = ndmreset_req_qual & reset_req_en; Tests: T1 T2 T3  290 291 // Sample the processor reset to detect lc reset assertion. 292 logic lc_rst_asserted_async; 293 prim_flop_2sync #( 294 .Width(1), 295 .ResetValue(1) // Resets to 1 to indicate assertion. 296 ) u_prim_flop_2sync_lc_rst_assert ( 297 .clk_i, // Use RV_DM clock 298 .rst_ni(rst_lc_ni), // Use LC reset here that resets the entire system except the RV_DM. 299 .d_i(1'b0), // Set to 0 to indicate deassertion. 300 .q_o(lc_rst_asserted_async) 301 ); 302 303 // Note that the output of the above flops can be metastable at reset assertion, since the reset 304 // signal is coming from a different clock domain and has not been synchronized with clk_i. 305 logic lc_rst_asserted; 306 prim_flop_2sync #( 307 .Width(1) 308 ) u_prim_flop_2sync_lc_rst_sync ( 309 .clk_i, 310 .rst_ni, 311 .d_i(lc_rst_asserted_async), 312 .q_o(lc_rst_asserted) 313 ); 314 315 // The acknowledgement pulse sets the dmstatus.allhavereset / dmstatus.anyhavereset registers in 316 // RV_DM. It should only be asserted once an NDM reset request has been fully completed. 317 logic ndmreset_pending_q; 318 logic lc_rst_pending_q; 319 always_ff @(posedge clk_i or negedge rst_ni) begin : p_ndm_reset 320 1/1 if (!rst_ni) begin Tests: T1 T2 T3  321 1/1 ndmreset_pending_q <= 1'b0; Tests: T1 T2 T3  322 1/1 lc_rst_pending_q <= 1'b0; Tests: T1 T2 T3  323 end else begin 324 // Only set this if there was no previous pending NDM request. 325 1/1 if (ndmreset_req && !ndmreset_pending_q) begin Tests: T1 T2 T3  326 1/1 ndmreset_pending_q <= 1'b1; Tests: T17 T4 T102  327 1/1 end else if (ndmreset_ack && ndmreset_pending_q) begin Tests: T1 T2 T3  328 1/1 ndmreset_pending_q <= 1'b0; Tests: T4 T43 T44  329 end MISSING_ELSE 330 // We only track lc resets that are asserted during an active ndm reset request.. 331 1/1 if (ndmreset_pending_q && lc_rst_asserted) begin Tests: T1 T2 T3  332 1/1 lc_rst_pending_q <= 1'b1; Tests: T4 T43 T44  333 1/1 end else if (ndmreset_ack && lc_rst_pending_q) begin Tests: T1 T2 T3  334 1/1 lc_rst_pending_q <= 1'b0; Tests: T4 T43 T44  335 end MISSING_ELSE 336 end 337 end 338 339 // In order to ACK the following conditions must be met 340 // 1) an NDM reset request was asserted and is pending 341 // 2) a lc reset was asserted after the NDM reset request 342 // 3) the NDM reset request was deasserted 343 // 4) the NDM lc request was deasserted 344 // 5) the debug module has been ungated for operation (depending on LC state, OTP config and CSR) 345 1/1 assign ndmreset_ack = ndmreset_pending_q && Tests: T1 T2 T3  346 lc_rst_pending_q && 347 !ndmreset_req && 348 !lc_rst_asserted && 349 reset_req_en; 350 351 ///////////////////////////////////////// 352 // System Bus Access Port (TL-UL Host) // 353 ///////////////////////////////////////// 354 355 logic host_req; 356 logic [BusWidth-1:0] host_add; 357 logic host_we; 358 logic [BusWidth-1:0] host_wdata; 359 logic [BusWidth/8-1:0] host_be; 360 logic host_gnt; 361 logic host_r_valid; 362 logic [BusWidth-1:0] host_r_rdata; 363 logic host_r_err; 364 logic host_r_other_err; 365 366 // SEC_CM: DM_EN.CTRL.LC_GATED 367 // SEC_CM: SBA_TL_LC_GATE.FSM.SPARSE 368 tlul_pkg::tl_h2d_t sba_tl_h_o_int; 369 tlul_pkg::tl_d2h_t sba_tl_h_i_int; 370 tlul_lc_gate #( 371 .NumGatesPerDirection(2) 372 ) u_tlul_lc_gate_sba ( 373 .clk_i, 374 .rst_ni, 375 .tl_h2d_i(sba_tl_h_o_int), 376 .tl_d2h_o(sba_tl_h_i_int), 377 .tl_h2d_o(sba_tl_h_o), 378 .tl_d2h_i(sba_tl_h_i), 379 .lc_en_i (lc_hw_debug_en_gated[LcEnSba]), 380 .err_o (sba_gate_intg_error), 381 .flush_req_i('0), 382 .flush_ack_o(), 383 .resp_pending_o() 384 ); 385 386 tlul_adapter_host #( 387 .MAX_REQS(1), 388 .EnableDataIntgGen(1), 389 .EnableRspDataIntgCheck(1) 390 ) tl_adapter_host_sba ( 391 .clk_i, 392 .rst_ni, 393 .req_i (host_req), 394 .instr_type_i (prim_mubi_pkg::MuBi4False), 395 .gnt_o (host_gnt), 396 .addr_i (host_add), 397 .we_i (host_we), 398 .wdata_i (host_wdata), 399 .wdata_intg_i ('0), 400 .be_i (host_be), 401 .user_rsvd_i ('0), 402 .valid_o (host_r_valid), 403 .rdata_o (host_r_rdata), 404 .rdata_intg_o (), 405 .err_o (host_r_err), 406 // Note: This bus integrity error is not connected to the alert due to a few reasons: 407 // 1) the SBA module is not active in production life cycle states. 408 // 2) there is value in being able to accept incoming transactions with integrity 409 // errors during test / debug life cycle states so that the system can be debugged 410 // without triggering alerts. 411 // 3) the error condition is hooked up to an error CSR that can be read out by the debugger 412 // via JTAG so that bus integrity errors can be told appart from regular bus errors. 413 .intg_err_o (host_r_other_err), 414 .tl_o (sba_tl_h_o_int), 415 .tl_i (sba_tl_h_i_int) 416 ); 417 418 ////////////////////////////////////// 419 // Debug Memory Port (TL-UL Device) // 420 ////////////////////////////////////// 421 422 logic device_req; 423 logic device_we; 424 logic device_re; 425 logic [BusWidth/8-1:0] device_be; 426 logic [BusWidth-1:0] device_wdata; 427 logic [BusWidth-1:0] device_rdata; 428 logic device_err; 429 430 logic [BusWidth-1:0] device_addr_aligned; 431 logic [MemAw-1:0] device_addr; 432 433 1/1 assign device_addr_aligned = BusWidth'(device_addr); Tests: T1 T2 T3  434 435 logic [NrHarts-1:0] debug_req_en; 436 logic [NrHarts-1:0] debug_req; 437 for (genvar i = 0; i < NrHarts; i++) begin : gen_debug_req_hart 438 // SEC_CM: DM_EN.CTRL.LC_GATED 439 1/1 assign debug_req_en[i] = lc_tx_test_true_strict(lc_hw_debug_en_gated[LcEnDebugReq + i]); Tests: T1 T2 T3  440 end 441 1/1 assign debug_req_o = debug_req & debug_req_en; Tests: T1 T2 T3  442 443 // Gating of JTAG signals 444 jtag_pkg::jtag_req_t jtag_in_int; 445 jtag_pkg::jtag_rsp_t jtag_out_int; 446 447 1/1 assign jtag_in_int = (lc_tx_test_true_strict(pinmux_hw_debug_en[PmEnJtagIn])) ? jtag_i : '0; Tests: T1 T2 T3  448 1/1 assign jtag_o = (lc_tx_test_true_strict(pinmux_hw_debug_en[PmEnJtagOut])) ? jtag_out_int : '0; Tests: T1 T2 T3  449 450 // Bound-in DPI module replaces the TAP 451 `ifndef DMIDirectTAP 452 453 logic tck_muxed; 454 logic trst_n_muxed; 455 prim_clock_mux2 #( 456 .NoFpgaBufG(1'b1) 457 ) u_prim_clock_mux2 ( 458 .clk0_i(jtag_in_int.tck), 459 .clk1_i(clk_i), 460 .sel_i (testmode), 461 .clk_o (tck_muxed) 462 ); 463 464 prim_clock_mux2 #( 465 .NoFpgaBufG(1'b1) 466 ) u_prim_rst_n_mux2 ( 467 .clk0_i(jtag_in_int.trst_n), 468 .clk1_i(scan_rst_ni), 469 .sel_i (testmode), 470 .clk_o (trst_n_muxed) 471 ); 472 473 // JTAG TAP 474 dmi_jtag #( 475 .IdcodeValue (IdcodeValue), 476 .NumDmiWordAbits(7) 477 ) dap ( 478 .clk_i (clk_i), 479 .rst_ni (rst_ni), 480 .testmode_i (testmode), 481 .test_rst_ni (scan_rst_ni), 482 483 .dmi_rst_no (dmi_rst_n), 484 .dmi_req_o (dmi_req), 485 .dmi_req_valid_o (dmi_req_valid), 486 .dmi_req_ready_i (dmi_req_ready & dmi_en), 487 488 .dmi_resp_i (dmi_rsp ), 489 .dmi_resp_ready_o (dmi_rsp_ready), 490 .dmi_resp_valid_i (dmi_rsp_valid & dmi_en), 491 492 //JTAG 493 .tck_i (tck_muxed), 494 .tms_i (jtag_in_int.tms), 495 .trst_ni (trst_n_muxed), 496 .td_i (jtag_in_int.tdi), 497 .td_o (jtag_out_int.tdo), 498 .tdo_oe_o (jtag_out_int.tdo_oe) 499 ); 500 `endif 501 502 // SEC_CM: DM_EN.CTRL.LC_GATED 503 // SEC_CM: MEM_TL_LC_GATE.FSM.SPARSE 504 tlul_pkg::tl_h2d_t mem_tl_win_h2d_gated; 505 tlul_pkg::tl_d2h_t mem_tl_win_d2h_gated; 506 tlul_lc_gate #( 507 .NumGatesPerDirection(2) 508 ) u_tlul_lc_gate_rom ( 509 .clk_i, 510 .rst_ni, 511 .tl_h2d_i(mem_tl_win_h2d), 512 .tl_d2h_o(mem_tl_win_d2h), 513 .tl_h2d_o(mem_tl_win_h2d_gated), 514 .tl_d2h_i(mem_tl_win_d2h_gated), 515 .flush_req_i(ndmreset_req), 516 .flush_ack_o(ndmreset_req_qual), 517 .resp_pending_o(), 518 .lc_en_i (lc_hw_debug_en_gated[LcEnRom]), 519 .err_o (rom_gate_intg_error) 520 ); 521 522 prim_mubi_pkg::mubi4_t en_ifetch; 523 // SEC_CM: DM_EN.CTRL.LC_GATED, EXEC.CTRL.MUBI 524 1/1 assign en_ifetch = mubi4_bool_to_mubi(lc_tx_test_true_strict(lc_hw_debug_en_gated[LcEnFetch])); Tests: T1 T2 T3  525 526 tlul_adapter_reg #( 527 .CmdIntgCheck (1), 528 .EnableRspIntgGen (1), 529 .EnableDataIntgGen(1), 530 .RegAw (MemAw), 531 .RegDw (BusWidth), 532 .AccessLatency (1) 533 ) i_tlul_adapter_reg ( 534 .clk_i, 535 .rst_ni, 536 .tl_i (mem_tl_win_h2d_gated), 537 .tl_o (mem_tl_win_d2h_gated), 538 // SEC_CM: EXEC.CTRL.MUBI 539 .en_ifetch_i (en_ifetch), 540 // SEC_CM: BUS.INTEGRITY 541 .intg_error_o(rom_intg_error), 542 .re_o (device_re), 543 .we_o (device_we), 544 .addr_o (device_addr), 545 .wdata_o (device_wdata), 546 .be_o (device_be), 547 .busy_i (1'b0), 548 .rdata_i (device_rdata), 549 .error_i (device_err) 550 ); 551 552 1/1 assign device_req = device_we || device_re; Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut
TotalCoveredPercent
Conditions424197.62
Logical424197.62
Non-Logical00
Event00

 LINE       128
 EXPRESSION (regs_intg_error | rom_intg_error | sba_gate_intg_error | rom_gate_intg_error)
             -------1-------   -------2------   ---------3---------   ---------4---------
-1--2--3--4-StatusTestsExclude Annotation
0000CoveredT1,T2,T3
0001ExcludedT51,T83,T86 VC_COV_UNR
0010ExcludedT82 VC_COV_UNR
0100CoveredT90,T24,T103
1000CoveredT49,T52,T104

 LINE       131
 SUB-EXPRESSION (regs_reg2hw.alert_test.q & regs_reg2hw.alert_test.qe)
                 ------------1-----------   ------------2------------
-1--2-StatusTests
01CoveredT48,T53,T54
10CoveredT2,T48,T49
11CoveredT48,T53,T54

 LINE       289
 EXPRESSION (ndmreset_req_qual & reset_req_en)
             --------1--------   ------2-----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT4,T45,T43
11CoveredT4,T43,T9

 LINE       325
 EXPRESSION (ndmreset_req && ((!ndmreset_pending_q)))
             ------1-----    -----------2-----------
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT17,T4,T102
11CoveredT17,T4,T102

 LINE       327
 EXPRESSION (ndmreset_ack && ndmreset_pending_q)
             ------1-----    ---------2--------
-1--2-StatusTestsExclude Annotation
01CoveredT17,T4,T102
10Excluded VC_COV_UNR
11CoveredT4,T43,T44

 LINE       331
 EXPRESSION (ndmreset_pending_q && lc_rst_asserted)
             ---------1--------    -------2-------
-1--2-StatusTests
01CoveredT17,T48,T49
10CoveredT17,T4,T102
11CoveredT4,T43,T44

 LINE       333
 EXPRESSION (ndmreset_ack && lc_rst_pending_q)
             ------1-----    --------2-------
-1--2-StatusTestsExclude Annotation
01CoveredT4,T43,T44
10Excluded VC_COV_UNR
11CoveredT4,T43,T44

 LINE       345
 EXPRESSION (ndmreset_pending_q && lc_rst_pending_q && ((!ndmreset_req)) && ((!lc_rst_asserted)) && reset_req_en)
             ---------1--------    --------2-------    --------3--------    ----------4---------    ------5-----
-1--2--3--4--5-StatusTestsExclude Annotation
01111Excluded VC_COV_UNR
10111CoveredT9,T85,T80
11011CoveredT4,T43,T44
11101CoveredT62,T94
11110CoveredT4,T43,T44
11111CoveredT4,T43,T44

 LINE       441
 EXPRESSION (debug_req & debug_req_en)
             ----1----   ------2-----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT105,T102,T45
11CoveredT1,T3,T17

 LINE       477
 EXPRESSION (dmi_req_ready & dmi_en)
             ------1------   ---2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT49,T6,T51
11CoveredT1,T2,T3

 LINE       477
 EXPRESSION (dmi_rsp_valid & dmi_en)
             ------1------   ---2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT37
11CoveredT1,T2,T3

 LINE       552
 EXPRESSION (device_we || device_re)
             ----1----    ----2----
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT1,T12,T50
10CoveredT1,T3,T12

 LINE       568
 EXPRESSION (dmi_req_valid & dmi_en)
             ------1------   ---2--
-1--2-StatusTests
01CoveredT1,T2,T3
10Not Covered
11CoveredT1,T2,T3

 LINE       568
 EXPRESSION (dmi_rsp_ready & dmi_en)
             ------1------   ---2--
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT49,T6,T51
11CoveredT1,T2,T3

Toggle Coverage for Instance : tb.dut
TotalCoveredPercent
Totals 91 84 92.31
Total Bits 1082 1056 97.60
Total Bits 0->1 541 528 97.60
Total Bits 1->0 541 528 97.60

Ports 91 84 92.31
Port Bits 1082 1056 97.60
Port Bits 0->1 541 528 97.60
Port Bits 1->0 541 528 97.60

Port Details
NameToggleToggle 1->0TestsToggle 0->1TestsDirectionExclude Annotation
clk_i Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
clk_lc_i Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
rst_ni Yes Yes T49,T51,T52 Yes T1,T2,T3 INPUT
rst_lc_ni Yes Yes T49,T51,T4 Yes T1,T2,T3 INPUT
next_dm_addr_i[31:0] Unreachable Unreachable Unreachable INPUT
lc_hw_debug_en_i[3:0] Yes Yes T105,T102,T38 Yes T105,T38,T58 INPUT
lc_dft_en_i[3:0] No No No INPUT
pinmux_hw_debug_en_i[3:0] Yes Yes T6,T11,T106 Yes T6,T11,T106 INPUT
otp_dis_rv_dm_late_debug_i[7:0] Yes Yes T27,T9,T44 Yes T27,T9,T44 INPUT
scanmode_i[3:0] Yes Yes T9,T90,T44 Yes T27,T9,T90 INPUT
scan_rst_ni Yes Yes T49,T51,T52 Yes T1,T2,T3 INPUT
ndmreset_req_o Yes Yes T4,T43,T9 Yes T4,T43,T9 OUTPUT
dmactive_o Yes Yes T49,T51,T14 Yes T1,T2,T3 OUTPUT
debug_req_o Yes Yes T1,T17,T12 Yes T1,T3,T17 OUTPUT
unavailable_i Yes Yes T2,T4,T5 Yes T2,T4,T5 INPUT
regs_tl_d_i.d_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
regs_tl_d_i.a_user.data_intg[6:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_user.cmd_intg[6:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_user.instr_type[3:0] Yes Yes T2,T48,T49 Yes T48,T49,T12 INPUT
regs_tl_d_i.a_user.rsvd[4:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_data[31:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_mask[3:0] Yes Yes T48,T49,T23 Yes T48,T49,T23 INPUT
regs_tl_d_i.a_address[31:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_source[7:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_size[1:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_param[2:0] Yes Yes T2,T48,T49 Yes T48,T49,T12 INPUT
regs_tl_d_i.a_opcode[2:0] Yes Yes T2,T48,T49 Yes T2,T48,T49 INPUT
regs_tl_d_i.a_valid Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
regs_tl_d_o.a_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
regs_tl_d_o.d_error Yes Yes T80,T90,T31 Yes T80,T90,T31 OUTPUT
regs_tl_d_o.d_user.data_intg[6:0] Yes Yes T62,T36,T34 Yes T62,T36,T34 OUTPUT
regs_tl_d_o.d_user.rsp_intg[5:0] Yes Yes *T48,*T51,*T53 Yes T1,T2,T3 OUTPUT
regs_tl_d_o.d_user.rsp_intg[6] Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
regs_tl_d_o.d_data[31:0] Yes Yes T51,T82,T27 Yes T1,T2,T3 OUTPUT
regs_tl_d_o.d_sink Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
regs_tl_d_o.d_source[7:0] Yes Yes T51,T54,T40 Yes T2,T3,T17 OUTPUT
regs_tl_d_o.d_size[1:0] Yes Yes T48,T54,T80 Yes T48,T53,T54 OUTPUT
regs_tl_d_o.d_param[2:0] Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
regs_tl_d_o.d_opcode[0] Yes Yes *T80,*T90,*T31 Yes T80,T90,T31 OUTPUT
regs_tl_d_o.d_opcode[2:1] No No No OUTPUT
regs_tl_d_o.d_valid Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
mem_tl_d_i.d_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
mem_tl_d_i.a_user.data_intg[6:0] Yes Yes T17,T12,T50 Yes T17,T12,T50 INPUT
mem_tl_d_i.a_user.cmd_intg[6:0] Yes Yes T1,T17,T12 Yes T1,T17,T12 INPUT
mem_tl_d_i.a_user.instr_type[3:0] Yes Yes T17,T12,T51 Yes T17,T12,T7 INPUT
mem_tl_d_i.a_user.rsvd[4:0] Yes Yes T17,T12,T7 Yes T17,T12,T51 INPUT
mem_tl_d_i.a_data[31:0] Yes Yes T1,T17,T12 Yes T1,T12,T50 INPUT
mem_tl_d_i.a_mask[3:0] Yes Yes T12,T47,T60 Yes T12,T47,T51 INPUT
mem_tl_d_i.a_address[31:0] Yes Yes T17,T12,T51 Yes T17,T12,T60 INPUT
mem_tl_d_i.a_source[7:0] Yes Yes T17,T12,T50 Yes T17,T12,T50 INPUT
mem_tl_d_i.a_size[1:0] Yes Yes T3,T12,T28 Yes T3,T17,T12 INPUT
mem_tl_d_i.a_param[2:0] Yes Yes T17,T12,T51 Yes T17,T12,T60 INPUT
mem_tl_d_i.a_opcode[2:0] Yes Yes T3,T17,T12 Yes T1,T3,T17 INPUT
mem_tl_d_i.a_valid Yes Yes T1,T3,T17 Yes T1,T3,T17 INPUT
mem_tl_d_o.a_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
mem_tl_d_o.d_error Yes Yes T1,T2,T3 Yes T17,T49,T51 OUTPUT
mem_tl_d_o.d_user.data_intg[6:0] Yes Yes T12,T50,T47 Yes T12,T50,T47 OUTPUT
mem_tl_d_o.d_user.rsp_intg[5:0] Yes Yes *T1,*T17,T12 Yes T1,T3,T17 OUTPUT
mem_tl_d_o.d_user.rsp_intg[6] Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
mem_tl_d_o.d_data[31:0] Yes Yes T1,T2,T3 Yes T1,T3,T17 OUTPUT
mem_tl_d_o.d_sink Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
mem_tl_d_o.d_source[7:0] Yes Yes T17,T50,T47 Yes T3,T17,T12 OUTPUT
mem_tl_d_o.d_size[1:0] Yes Yes T3,T12,T28 Yes T3,T12,T28 OUTPUT
mem_tl_d_o.d_param[2:0] Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
mem_tl_d_o.d_opcode[0] Yes Yes *T1,*T2,*T3 Yes T1,T17,T49 OUTPUT
mem_tl_d_o.d_opcode[2:1] No No No OUTPUT
mem_tl_d_o.d_valid Yes Yes T1,T3,T17 Yes T1,T3,T17 OUTPUT
sba_tl_h_o.d_ready Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_user.data_intg[6:0] Yes Yes T18,T19,T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_o.a_user.cmd_intg[6:0] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_user.instr_type[0] Yes Yes *T49,*T51,*T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_user.instr_type[2:1] No No No OUTPUT
sba_tl_h_o.a_user.instr_type[3] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_user.rsvd[4:0] Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
sba_tl_h_o.a_data[31:0] Yes Yes T18,T19,T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_o.a_mask[3:0] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_address[1:0] Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
sba_tl_h_o.a_address[31:2] Yes Yes T18,T19,T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_o.a_source[7:0] Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
sba_tl_h_o.a_size[0] Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
sba_tl_h_o.a_size[1] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_param[2:0] Excluded Excluded Excluded OUTPUT 0->1:VC_COV_UNR / 1->0:VC_COV_UNR
sba_tl_h_o.a_opcode[0] Yes Yes *T18,*T19,*T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_o.a_opcode[1] No No No OUTPUT
sba_tl_h_o.a_opcode[2] Yes Yes T49,T51,T4 Yes T1,T2,T3 OUTPUT
sba_tl_h_o.a_valid Yes Yes T18,T19,T40 Yes T18,T19,T40 OUTPUT
sba_tl_h_i.a_ready Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
sba_tl_h_i.d_error Yes Yes T2,T49,T6 Yes T49,T77,T78 INPUT
sba_tl_h_i.d_user.data_intg[6:0] Yes Yes T49,T6,T50 Yes T2,T3,T49 INPUT
sba_tl_h_i.d_user.rsp_intg[6:0] Yes Yes T49,T50,T77 Yes T3,T49,T13 INPUT
sba_tl_h_i.d_data[31:0] Yes Yes T3,T49,T78 Yes T2,T49,T50 INPUT
sba_tl_h_i.d_sink Yes Yes T49,T13,T107 Yes T49,T50,T47 INPUT
sba_tl_h_i.d_source[7:0] Yes Yes T49,T6,T50 Yes T49,T60,T18 INPUT
sba_tl_h_i.d_size[1:0] Yes Yes T49,T50,T78 Yes T3,T49,T4 INPUT
sba_tl_h_i.d_param[2:0] Yes Yes T49,T77,T18 Yes T49,T13,T18 INPUT
sba_tl_h_i.d_opcode[2:0] Yes Yes T3,T49,T50 Yes T49,T6,T47 INPUT
sba_tl_h_i.d_valid Yes Yes T18,T19,T40 Yes T18,T19,T40 INPUT
alert_rx_i[0].ack_n Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
alert_rx_i[0].ack_p Yes Yes T48,T49,T51 Yes T48,T49,T51 INPUT
alert_rx_i[0].ping_n No No No INPUT
alert_rx_i[0].ping_p No No No INPUT
alert_tx_o[0].alert_n Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
alert_tx_o[0].alert_p Yes Yes T48,T49,T51 Yes T48,T49,T51 OUTPUT
jtag_i.tdi Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
jtag_i.trst_n Yes Yes T49,T6,T8 Yes T1,T2,T3 INPUT
jtag_i.tms Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
jtag_i.tck Yes Yes T1,T2,T3 Yes T1,T2,T3 INPUT
jtag_o.tdo_oe Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT
jtag_o.tdo Yes Yes T1,T2,T3 Yes T1,T2,T3 OUTPUT

*Tests covering at least one bit in the range

Branch Coverage for Instance : tb.dut
Line No.TotalCoveredPercent
Branches 7 7 100.00
IF 320 7 7 100.00


320 if (!rst_ni) begin -1- 321 ndmreset_pending_q <= 1'b0; ==> 322 lc_rst_pending_q <= 1'b0; 323 end else begin 324 // Only set this if there was no previous pending NDM request. 325 if (ndmreset_req && !ndmreset_pending_q) begin -2- 326 ndmreset_pending_q <= 1'b1; ==> 327 end else if (ndmreset_ack && ndmreset_pending_q) begin -3- 328 ndmreset_pending_q <= 1'b0; ==> 329 end MISSING_ELSE ==> 330 // We only track lc resets that are asserted during an active ndm reset request.. 331 if (ndmreset_pending_q && lc_rst_asserted) begin -4- 332 lc_rst_pending_q <= 1'b1; ==> 333 end else if (ndmreset_ack && lc_rst_pending_q) begin -5- 334 lc_rst_pending_q <= 1'b0; ==> 335 end MISSING_ELSE ==>

Branches:
-1--2--3--4--5-StatusTests
1 - - - - Covered T1,T2,T3
0 1 - - - Covered T17,T4,T102
0 0 1 - - Covered T4,T43,T44
0 0 0 - - Covered T1,T2,T3
0 - - 1 - Covered T4,T43,T44
0 - - 0 1 Covered T4,T43,T44
0 - - 0 0 Covered T1,T2,T3


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




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
DebugReqOKnown_A 53568015 53515363 0 0
DmactiveOKnown_A 53568015 53515363 0 0
FpvSecCmRegWeOnehotCheck_A 53568015 80 0 0
FpvSecCmRomTlLcGateFsm_A 53568015 3 0 0
FpvSecCmSbaTlLcGateFsm_A 53568015 1 0 0
JtagRspOTdoKnown_A 2487297 2487242 0 0
JtagRspOTdoOeKnown_A 2487297 2487242 0 0
NdmresetOKnown_A 53568015 53515363 0 0
RvDmLcEnDebugVal_A 53568015 53515363 0 0
TlMemAReadyKnown_A 53568015 53515363 0 0
TlMemDValidKnown_A 53568015 53515363 0 0
TlRegsAReadyKnown_A 53568015 53515363 0 0
TlRegsDValidKnown_A 53568015 53515363 0 0
TlSbaAValidKnown_A 53568015 53515363 0 0
TlSbaDReadyKnown_A 53568015 53515363 0 0
paramCheckNrHarts 250 250 0 0


DebugReqOKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

DmactiveOKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

FpvSecCmRegWeOnehotCheck_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 80 0 0
T6 8131 0 0 0
T7 12071 0 0 0
T8 9429 0 0 0
T12 7468 0 0 0
T23 14278 0 0 0
T26 1849 0 0 0
T28 14493 0 0 0
T49 50558 20 0 0
T50 3291 0 0 0
T52 0 20 0 0
T77 1068 0 0 0
T104 0 20 0 0
T108 0 10 0 0
T109 0 10 0 0

FpvSecCmRomTlLcGateFsm_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 3 0 0
T4 41058 0 0 0
T14 40949 0 0 0
T29 68608 0 0 0
T41 68903 0 0 0
T51 10959 1 0 0
T60 39003 0 0 0
T76 26192 0 0 0
T78 41305 0 0 0
T83 0 1 0 0
T86 0 1 0 0
T107 18282 0 0 0
T110 47798 0 0 0

FpvSecCmSbaTlLcGateFsm_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 1 0 0
T27 10893 0 0 0
T43 68052 0 0 0
T45 10157 0 0 0
T54 2829 0 0 0
T74 27870 0 0 0
T82 1393 1 0 0
T111 3093 0 0 0
T112 4476 0 0 0
T113 10979 0 0 0
T114 8304 0 0 0

JtagRspOTdoKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 2487297 2487242 0 0
T1 783 783 0 0
T2 1034 1034 0 0
T3 1405 1405 0 0
T6 678 678 0 0
T12 1407 1407 0 0
T17 749 749 0 0
T23 649 649 0 0
T48 117 117 0 0
T49 2623 2622 0 0
T50 121 121 0 0

JtagRspOTdoOeKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 2487297 2487242 0 0
T1 783 783 0 0
T2 1034 1034 0 0
T3 1405 1405 0 0
T6 678 678 0 0
T12 1407 1407 0 0
T17 749 749 0 0
T23 649 649 0 0
T48 117 117 0 0
T49 2623 2622 0 0
T50 121 121 0 0

NdmresetOKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

RvDmLcEnDebugVal_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlMemAReadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlMemDValidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlRegsAReadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlRegsDValidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlSbaAValidKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

TlSbaDReadyKnown_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 53568015 53515363 0 0
T1 10625 10527 0 0
T2 11112 11036 0 0
T3 26803 26713 0 0
T6 8131 8076 0 0
T12 7468 7418 0 0
T17 20064 19990 0 0
T23 14278 14209 0 0
T48 6490 6430 0 0
T49 50558 49214 0 0
T50 3291 3229 0 0

paramCheckNrHarts
NameAttemptsReal SuccessesFailuresIncomplete
Total 250 250 0 0
T1 1 1 0 0
T2 1 1 0 0
T3 1 1 0 0
T6 1 1 0 0
T12 1 1 0 0
T17 1 1 0 0
T23 1 1 0 0
T48 1 1 0 0
T49 1 1 0 0
T50 1 1 0 0

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