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



Module Instance : tb.dut.top_earlgrey.u_rv_core_ibex.u_reg_cfg

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
99.92 100.00 99.68 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
99.28 98.85 98.69 99.58 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
90.27 94.12 89.29 99.75 100.00 68.18 u_rv_core_ibex


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
u_alert_test_fatal_hw_err 100.00 100.00
u_alert_test_fatal_sw_err 100.00 100.00
u_alert_test_recov_hw_err 100.00 100.00
u_alert_test_recov_sw_err 100.00 100.00
u_chk 100.00 100.00 100.00
u_dbus_addr_en_0 100.00 100.00 100.00 100.00
u_dbus_addr_en_1 100.00 100.00 100.00 100.00
u_dbus_addr_matching_0 100.00 100.00 100.00 100.00
u_dbus_addr_matching_1 100.00 100.00 100.00 100.00
u_dbus_regwen_0 100.00 100.00 100.00 100.00
u_dbus_regwen_1 100.00 100.00 100.00 100.00
u_dbus_remap_addr_0 100.00 100.00 100.00 100.00
u_dbus_remap_addr_1 100.00 100.00 100.00 100.00
u_err_status_fatal_core_err 97.22 100.00 91.67 100.00
u_err_status_fatal_intg_err 100.00 100.00 100.00 100.00
u_err_status_recov_core_err 97.22 100.00 91.67 100.00
u_err_status_reg_intg_err 97.22 100.00 91.67 100.00
u_fpga_info 33.33 33.33
u_ibus_addr_en_0 100.00 100.00 100.00 100.00
u_ibus_addr_en_1 100.00 100.00 100.00 100.00
u_ibus_addr_matching_0 100.00 100.00 100.00 100.00
u_ibus_addr_matching_1 100.00 100.00 100.00 100.00
u_ibus_regwen_0 100.00 100.00 100.00 100.00
u_ibus_regwen_1 100.00 100.00 100.00 100.00
u_ibus_remap_addr_0 100.00 100.00 100.00 100.00
u_ibus_remap_addr_1 100.00 100.00 100.00 100.00
u_nmi_enable_alert_en 100.00 100.00 100.00 100.00
u_nmi_enable_wdog_en 100.00 100.00 100.00 100.00
u_nmi_state_alert 100.00 100.00 100.00 100.00
u_nmi_state_wdog 100.00 100.00 100.00 100.00
u_prim_reg_we_check 100.00 100.00
u_reg_if 98.67 97.14 97.53 100.00 100.00
u_rnd_data 100.00 100.00
u_rnd_status_rnd_data_fips 100.00 100.00
u_rnd_status_rnd_data_valid 100.00 100.00
u_rsp_intg_gen 100.00 100.00 100.00
u_socket 96.72 96.25 94.64 96.00 100.00
u_sw_fatal_err 100.00 100.00 100.00 100.00
u_sw_recov_err 100.00 100.00 100.00 100.00


Since this is the module's only instance, the coverage report is the same as for the module.
Line Coverage for Module : rv_core_ibex_cfg_reg_top
Line No.TotalCoveredPercent
TOTAL178178100.00
ALWAYS7344100.00
CONT_ASSIGN8211100.00
CONT_ASSIGN10011100.00
CONT_ASSIGN10111100.00
CONT_ASSIGN10311100.00
CONT_ASSIGN10411100.00
ALWAYS13033100.00
CONT_ASSIGN16711100.00
CONT_ASSIGN16811100.00
CONT_ASSIGN26311100.00
CONT_ASSIGN27811100.00
CONT_ASSIGN29411100.00
CONT_ASSIGN31011100.00
CONT_ASSIGN32611100.00
CONT_ASSIGN44711100.00
CONT_ASSIGN47911100.00
CONT_ASSIGN51111100.00
CONT_ASSIGN54311100.00
CONT_ASSIGN57511100.00
CONT_ASSIGN60711100.00
CONT_ASSIGN69711100.00
CONT_ASSIGN72911100.00
CONT_ASSIGN76111100.00
CONT_ASSIGN79311100.00
CONT_ASSIGN82511100.00
CONT_ASSIGN85711100.00
ALWAYS11742626100.00
CONT_ASSIGN120211100.00
ALWAYS120611100.00
CONT_ASSIGN123511100.00
CONT_ASSIGN123711100.00
CONT_ASSIGN123911100.00
CONT_ASSIGN124111100.00
CONT_ASSIGN124311100.00
CONT_ASSIGN124411100.00
CONT_ASSIGN124611100.00
CONT_ASSIGN124711100.00
CONT_ASSIGN124911100.00
CONT_ASSIGN125011100.00
CONT_ASSIGN125211100.00
CONT_ASSIGN125311100.00
CONT_ASSIGN125511100.00
CONT_ASSIGN125611100.00
CONT_ASSIGN125811100.00
CONT_ASSIGN125911100.00
CONT_ASSIGN126111100.00
CONT_ASSIGN126211100.00
CONT_ASSIGN126411100.00
CONT_ASSIGN126511100.00
CONT_ASSIGN126711100.00
CONT_ASSIGN126811100.00
CONT_ASSIGN127011100.00
CONT_ASSIGN127111100.00
CONT_ASSIGN127311100.00
CONT_ASSIGN127411100.00
CONT_ASSIGN127611100.00
CONT_ASSIGN127711100.00
CONT_ASSIGN127911100.00
CONT_ASSIGN128011100.00
CONT_ASSIGN128211100.00
CONT_ASSIGN128311100.00
CONT_ASSIGN128511100.00
CONT_ASSIGN128611100.00
CONT_ASSIGN128811100.00
CONT_ASSIGN128911100.00
CONT_ASSIGN129111100.00
CONT_ASSIGN129211100.00
CONT_ASSIGN129411100.00
CONT_ASSIGN129511100.00
CONT_ASSIGN129711100.00
CONT_ASSIGN129811100.00
CONT_ASSIGN130011100.00
CONT_ASSIGN130211100.00
CONT_ASSIGN130311100.00
CONT_ASSIGN130511100.00
CONT_ASSIGN130711100.00
CONT_ASSIGN130811100.00
CONT_ASSIGN131011100.00
CONT_ASSIGN131211100.00
CONT_ASSIGN131411100.00
CONT_ASSIGN131611100.00
CONT_ASSIGN131711100.00
CONT_ASSIGN131811100.00
CONT_ASSIGN131911100.00
ALWAYS13232626100.00
ALWAYS13533636100.00
CONT_ASSIGN147500
CONT_ASSIGN148311100.00
CONT_ASSIGN148411100.00

72 always_ff @(posedge clk_i or negedge rst_ni) begin 73 1/1 if (!rst_ni) begin Tests: T1 T2 T3  74 1/1 err_q <= '0; Tests: T1 T2 T3  75 1/1 end else if (intg_err || reg_we_err) begin Tests: T1 T2 T3  76 1/1 err_q <= 1'b1; Tests: T118 T306  77 end MISSING_ELSE 78 end 79 80 // integrity error output is permanent and should be used for alert generation 81 // register errors are transactional 82 1/1 assign intg_err_o = err_q | intg_err | reg_we_err; Tests: T1 T2 T3  83 84 // outgoing integrity generation 85 tlul_pkg::tl_d2h_t tl_o_pre; 86 tlul_rsp_intg_gen #( 87 .EnableRspIntgGen(1), 88 .EnableDataIntgGen(1) 89 ) u_rsp_intg_gen ( 90 .tl_i(tl_o_pre), 91 .tl_o(tl_o) 92 ); 93 94 tlul_pkg::tl_h2d_t tl_socket_h2d [2]; 95 tlul_pkg::tl_d2h_t tl_socket_d2h [2]; 96 97 logic [0:0] reg_steer; 98 99 // socket_1n connection 100 1/1 assign tl_reg_h2d = tl_socket_h2d[1]; Tests: T1 T2 T3  101 1/1 assign tl_socket_d2h[1] = tl_reg_d2h; Tests: T2 T3 T4  102 103 1/1 assign tl_win_o = tl_socket_h2d[0]; Tests: T1 T2 T3  104 1/1 assign tl_socket_d2h[0] = tl_win_i; Tests: T1 T2 T3  105 106 // Create Socket_1n 107 tlul_socket_1n #( 108 .N (2), 109 .HReqPass (1'b1), 110 .HRspPass (1'b1), 111 .DReqPass ({2{1'b1}}), 112 .DRspPass ({2{1'b1}}), 113 .HReqDepth (4'h0), 114 .HRspDepth (4'h0), 115 .DReqDepth ({2{4'h0}}), 116 .DRspDepth ({2{4'h0}}), 117 .ExplicitErrs (1'b0) 118 ) u_socket ( 119 .clk_i (clk_i), 120 .rst_ni (rst_ni), 121 .tl_h_i (tl_i), 122 .tl_h_o (tl_o_pre), 123 .tl_d_o (tl_socket_h2d), 124 .tl_d_i (tl_socket_d2h), 125 .dev_select_i (reg_steer) 126 ); 127 128 // Create steering logic 129 always_comb begin 130 1/1 reg_steer = Tests: T1 T2 T3  131 tl_i.a_address[AW-1:0] inside {[128:159]} ? 1'd0 : 132 // Default set to register 133 1'd1; 134 135 // Override this in case of an integrity error 136 1/1 if (intg_err) begin Tests: T1 T2 T3  137 1/1 reg_steer = 1'd1; Tests: T276 T307 T466  138 end MISSING_ELSE 139 end 140 141 tlul_adapter_reg #( 142 .RegAw(AW), 143 .RegDw(DW), 144 .EnableDataIntgGen(0) 145 ) u_reg_if ( 146 .clk_i (clk_i), 147 .rst_ni (rst_ni), 148 149 .tl_i (tl_reg_h2d), 150 .tl_o (tl_reg_d2h), 151 152 .en_ifetch_i(prim_mubi_pkg::MuBi4False), 153 .intg_error_o(), 154 155 .we_o (reg_we), 156 .re_o (reg_re), 157 .addr_o (reg_addr), 158 .wdata_o (reg_wdata), 159 .be_o (reg_be), 160 .busy_i (reg_busy), 161 .rdata_i (reg_rdata), 162 .error_i (reg_error) 163 ); 164 165 // cdc oversampling signals 166 167 1/1 assign reg_rdata = reg_rdata_next ; Tests: T1 T2 T3  168 1/1 assign reg_error = addrmiss | wr_err | intg_err; Tests: T1 T2 T3  169 170 // Define SW related signals 171 // Format: <reg>_<field>_{wd|we|qs} 172 // or <reg>_{wd|we|qs} if field == 1 or 0 173 logic alert_test_we; 174 logic alert_test_fatal_sw_err_wd; 175 logic alert_test_recov_sw_err_wd; 176 logic alert_test_fatal_hw_err_wd; 177 logic alert_test_recov_hw_err_wd; 178 logic sw_recov_err_we; 179 logic [3:0] sw_recov_err_qs; 180 logic [3:0] sw_recov_err_wd; 181 logic sw_fatal_err_we; 182 logic [3:0] sw_fatal_err_qs; 183 logic [3:0] sw_fatal_err_wd; 184 logic ibus_regwen_0_we; 185 logic ibus_regwen_0_qs; 186 logic ibus_regwen_0_wd; 187 logic ibus_regwen_1_we; 188 logic ibus_regwen_1_qs; 189 logic ibus_regwen_1_wd; 190 logic ibus_addr_en_0_we; 191 logic ibus_addr_en_0_qs; 192 logic ibus_addr_en_0_wd; 193 logic ibus_addr_en_1_we; 194 logic ibus_addr_en_1_qs; 195 logic ibus_addr_en_1_wd; 196 logic ibus_addr_matching_0_we; 197 logic [31:0] ibus_addr_matching_0_qs; 198 logic [31:0] ibus_addr_matching_0_wd; 199 logic ibus_addr_matching_1_we; 200 logic [31:0] ibus_addr_matching_1_qs; 201 logic [31:0] ibus_addr_matching_1_wd; 202 logic ibus_remap_addr_0_we; 203 logic [31:0] ibus_remap_addr_0_qs; 204 logic [31:0] ibus_remap_addr_0_wd; 205 logic ibus_remap_addr_1_we; 206 logic [31:0] ibus_remap_addr_1_qs; 207 logic [31:0] ibus_remap_addr_1_wd; 208 logic dbus_regwen_0_we; 209 logic dbus_regwen_0_qs; 210 logic dbus_regwen_0_wd; 211 logic dbus_regwen_1_we; 212 logic dbus_regwen_1_qs; 213 logic dbus_regwen_1_wd; 214 logic dbus_addr_en_0_we; 215 logic dbus_addr_en_0_qs; 216 logic dbus_addr_en_0_wd; 217 logic dbus_addr_en_1_we; 218 logic dbus_addr_en_1_qs; 219 logic dbus_addr_en_1_wd; 220 logic dbus_addr_matching_0_we; 221 logic [31:0] dbus_addr_matching_0_qs; 222 logic [31:0] dbus_addr_matching_0_wd; 223 logic dbus_addr_matching_1_we; 224 logic [31:0] dbus_addr_matching_1_qs; 225 logic [31:0] dbus_addr_matching_1_wd; 226 logic dbus_remap_addr_0_we; 227 logic [31:0] dbus_remap_addr_0_qs; 228 logic [31:0] dbus_remap_addr_0_wd; 229 logic dbus_remap_addr_1_we; 230 logic [31:0] dbus_remap_addr_1_qs; 231 logic [31:0] dbus_remap_addr_1_wd; 232 logic nmi_enable_we; 233 logic nmi_enable_alert_en_qs; 234 logic nmi_enable_alert_en_wd; 235 logic nmi_enable_wdog_en_qs; 236 logic nmi_enable_wdog_en_wd; 237 logic nmi_state_we; 238 logic nmi_state_alert_qs; 239 logic nmi_state_alert_wd; 240 logic nmi_state_wdog_qs; 241 logic nmi_state_wdog_wd; 242 logic err_status_we; 243 logic err_status_reg_intg_err_qs; 244 logic err_status_reg_intg_err_wd; 245 logic err_status_fatal_intg_err_qs; 246 logic err_status_fatal_intg_err_wd; 247 logic err_status_fatal_core_err_qs; 248 logic err_status_fatal_core_err_wd; 249 logic err_status_recov_core_err_qs; 250 logic err_status_recov_core_err_wd; 251 logic rnd_data_re; 252 logic [31:0] rnd_data_qs; 253 logic rnd_status_re; 254 logic rnd_status_rnd_data_valid_qs; 255 logic rnd_status_rnd_data_fips_qs; 256 logic fpga_info_re; 257 logic [31:0] fpga_info_qs; 258 259 // Register instances 260 // R[alert_test]: V(True) 261 logic alert_test_qe; 262 logic [3:0] alert_test_flds_we; 263 1/1 assign alert_test_qe = &alert_test_flds_we; Tests: T80 T279 T199  264 // F[fatal_sw_err]: 0:0 265 prim_subreg_ext #( 266 .DW (1) 267 ) u_alert_test_fatal_sw_err ( 268 .re (1'b0), 269 .we (alert_test_we), 270 .wd (alert_test_fatal_sw_err_wd), 271 .d ('0), 272 .qre (), 273 .qe (alert_test_flds_we[0]), 274 .q (reg2hw.alert_test.fatal_sw_err.q), 275 .ds (), 276 .qs () 277 ); 278 1/1 assign reg2hw.alert_test.fatal_sw_err.qe = alert_test_qe; Tests: T80 T279 T199  279 280 // F[recov_sw_err]: 1:1 281 prim_subreg_ext #( 282 .DW (1) 283 ) u_alert_test_recov_sw_err ( 284 .re (1'b0), 285 .we (alert_test_we), 286 .wd (alert_test_recov_sw_err_wd), 287 .d ('0), 288 .qre (), 289 .qe (alert_test_flds_we[1]), 290 .q (reg2hw.alert_test.recov_sw_err.q), 291 .ds (), 292 .qs () 293 ); 294 1/1 assign reg2hw.alert_test.recov_sw_err.qe = alert_test_qe; Tests: T80 T279 T199  295 296 // F[fatal_hw_err]: 2:2 297 prim_subreg_ext #( 298 .DW (1) 299 ) u_alert_test_fatal_hw_err ( 300 .re (1'b0), 301 .we (alert_test_we), 302 .wd (alert_test_fatal_hw_err_wd), 303 .d ('0), 304 .qre (), 305 .qe (alert_test_flds_we[2]), 306 .q (reg2hw.alert_test.fatal_hw_err.q), 307 .ds (), 308 .qs () 309 ); 310 1/1 assign reg2hw.alert_test.fatal_hw_err.qe = alert_test_qe; Tests: T80 T279 T199  311 312 // F[recov_hw_err]: 3:3 313 prim_subreg_ext #( 314 .DW (1) 315 ) u_alert_test_recov_hw_err ( 316 .re (1'b0), 317 .we (alert_test_we), 318 .wd (alert_test_recov_hw_err_wd), 319 .d ('0), 320 .qre (), 321 .qe (alert_test_flds_we[3]), 322 .q (reg2hw.alert_test.recov_hw_err.q), 323 .ds (), 324 .qs () 325 ); 326 1/1 assign reg2hw.alert_test.recov_hw_err.qe = alert_test_qe; Tests: T80 T279 T199  327 328 329 // R[sw_recov_err]: V(False) 330 prim_subreg #( 331 .DW (4), 332 .SwAccess(prim_subreg_pkg::SwAccessRW), 333 .RESVAL (4'h9), 334 .Mubi (1'b1) 335 ) u_sw_recov_err ( 336 .clk_i (clk_i), 337 .rst_ni (rst_ni), 338 339 // from register interface 340 .we (sw_recov_err_we), 341 .wd (sw_recov_err_wd), 342 343 // from internal hardware 344 .de (hw2reg.sw_recov_err.de), 345 .d (hw2reg.sw_recov_err.d), 346 347 // to internal hardware 348 .qe (), 349 .q (reg2hw.sw_recov_err.q), 350 .ds (), 351 352 // to register interface (read) 353 .qs (sw_recov_err_qs) 354 ); 355 356 357 // R[sw_fatal_err]: V(False) 358 prim_subreg #( 359 .DW (4), 360 .SwAccess(prim_subreg_pkg::SwAccessW1S), 361 .RESVAL (4'h9), 362 .Mubi (1'b1) 363 ) u_sw_fatal_err ( 364 .clk_i (clk_i), 365 .rst_ni (rst_ni), 366 367 // from register interface 368 .we (sw_fatal_err_we), 369 .wd (sw_fatal_err_wd), 370 371 // from internal hardware 372 .de (1'b0), 373 .d ('0), 374 375 // to internal hardware 376 .qe (), 377 .q (reg2hw.sw_fatal_err.q), 378 .ds (), 379 380 // to register interface (read) 381 .qs (sw_fatal_err_qs) 382 ); 383 384 385 // Subregister 0 of Multireg ibus_regwen 386 // R[ibus_regwen_0]: V(False) 387 prim_subreg #( 388 .DW (1), 389 .SwAccess(prim_subreg_pkg::SwAccessW0C), 390 .RESVAL (1'h1), 391 .Mubi (1'b0) 392 ) u_ibus_regwen_0 ( 393 .clk_i (clk_i), 394 .rst_ni (rst_ni), 395 396 // from register interface 397 .we (ibus_regwen_0_we), 398 .wd (ibus_regwen_0_wd), 399 400 // from internal hardware 401 .de (1'b0), 402 .d ('0), 403 404 // to internal hardware 405 .qe (), 406 .q (), 407 .ds (), 408 409 // to register interface (read) 410 .qs (ibus_regwen_0_qs) 411 ); 412 413 414 // Subregister 1 of Multireg ibus_regwen 415 // R[ibus_regwen_1]: V(False) 416 prim_subreg #( 417 .DW (1), 418 .SwAccess(prim_subreg_pkg::SwAccessW0C), 419 .RESVAL (1'h1), 420 .Mubi (1'b0) 421 ) u_ibus_regwen_1 ( 422 .clk_i (clk_i), 423 .rst_ni (rst_ni), 424 425 // from register interface 426 .we (ibus_regwen_1_we), 427 .wd (ibus_regwen_1_wd), 428 429 // from internal hardware 430 .de (1'b0), 431 .d ('0), 432 433 // to internal hardware 434 .qe (), 435 .q (), 436 .ds (), 437 438 // to register interface (read) 439 .qs (ibus_regwen_1_qs) 440 ); 441 442 443 // Subregister 0 of Multireg ibus_addr_en 444 // R[ibus_addr_en_0]: V(False) 445 // Create REGWEN-gated WE signal 446 logic ibus_addr_en_0_gated_we; 447 1/1 assign ibus_addr_en_0_gated_we = ibus_addr_en_0_we & ibus_regwen_0_qs; Tests: T221 T301 T302  448 prim_subreg #( 449 .DW (1), 450 .SwAccess(prim_subreg_pkg::SwAccessRW), 451 .RESVAL (1'h0), 452 .Mubi (1'b0) 453 ) u_ibus_addr_en_0 ( 454 .clk_i (clk_i), 455 .rst_ni (rst_ni), 456 457 // from register interface 458 .we (ibus_addr_en_0_gated_we), 459 .wd (ibus_addr_en_0_wd), 460 461 // from internal hardware 462 .de (1'b0), 463 .d ('0), 464 465 // to internal hardware 466 .qe (), 467 .q (reg2hw.ibus_addr_en[0].q), 468 .ds (), 469 470 // to register interface (read) 471 .qs (ibus_addr_en_0_qs) 472 ); 473 474 475 // Subregister 1 of Multireg ibus_addr_en 476 // R[ibus_addr_en_1]: V(False) 477 // Create REGWEN-gated WE signal 478 logic ibus_addr_en_1_gated_we; 479 1/1 assign ibus_addr_en_1_gated_we = ibus_addr_en_1_we & ibus_regwen_1_qs; Tests: T221 T301 T302  480 prim_subreg #( 481 .DW (1), 482 .SwAccess(prim_subreg_pkg::SwAccessRW), 483 .RESVAL (1'h0), 484 .Mubi (1'b0) 485 ) u_ibus_addr_en_1 ( 486 .clk_i (clk_i), 487 .rst_ni (rst_ni), 488 489 // from register interface 490 .we (ibus_addr_en_1_gated_we), 491 .wd (ibus_addr_en_1_wd), 492 493 // from internal hardware 494 .de (1'b0), 495 .d ('0), 496 497 // to internal hardware 498 .qe (), 499 .q (reg2hw.ibus_addr_en[1].q), 500 .ds (), 501 502 // to register interface (read) 503 .qs (ibus_addr_en_1_qs) 504 ); 505 506 507 // Subregister 0 of Multireg ibus_addr_matching 508 // R[ibus_addr_matching_0]: V(False) 509 // Create REGWEN-gated WE signal 510 logic ibus_addr_matching_0_gated_we; 511 1/1 assign ibus_addr_matching_0_gated_we = ibus_addr_matching_0_we & ibus_regwen_0_qs; Tests: T221 T301 T302  512 prim_subreg #( 513 .DW (32), 514 .SwAccess(prim_subreg_pkg::SwAccessRW), 515 .RESVAL (32'h0), 516 .Mubi (1'b0) 517 ) u_ibus_addr_matching_0 ( 518 .clk_i (clk_i), 519 .rst_ni (rst_ni), 520 521 // from register interface 522 .we (ibus_addr_matching_0_gated_we), 523 .wd (ibus_addr_matching_0_wd), 524 525 // from internal hardware 526 .de (1'b0), 527 .d ('0), 528 529 // to internal hardware 530 .qe (), 531 .q (reg2hw.ibus_addr_matching[0].q), 532 .ds (), 533 534 // to register interface (read) 535 .qs (ibus_addr_matching_0_qs) 536 ); 537 538 539 // Subregister 1 of Multireg ibus_addr_matching 540 // R[ibus_addr_matching_1]: V(False) 541 // Create REGWEN-gated WE signal 542 logic ibus_addr_matching_1_gated_we; 543 1/1 assign ibus_addr_matching_1_gated_we = ibus_addr_matching_1_we & ibus_regwen_1_qs; Tests: T221 T301 T302  544 prim_subreg #( 545 .DW (32), 546 .SwAccess(prim_subreg_pkg::SwAccessRW), 547 .RESVAL (32'h0), 548 .Mubi (1'b0) 549 ) u_ibus_addr_matching_1 ( 550 .clk_i (clk_i), 551 .rst_ni (rst_ni), 552 553 // from register interface 554 .we (ibus_addr_matching_1_gated_we), 555 .wd (ibus_addr_matching_1_wd), 556 557 // from internal hardware 558 .de (1'b0), 559 .d ('0), 560 561 // to internal hardware 562 .qe (), 563 .q (reg2hw.ibus_addr_matching[1].q), 564 .ds (), 565 566 // to register interface (read) 567 .qs (ibus_addr_matching_1_qs) 568 ); 569 570 571 // Subregister 0 of Multireg ibus_remap_addr 572 // R[ibus_remap_addr_0]: V(False) 573 // Create REGWEN-gated WE signal 574 logic ibus_remap_addr_0_gated_we; 575 1/1 assign ibus_remap_addr_0_gated_we = ibus_remap_addr_0_we & ibus_regwen_0_qs; Tests: T221 T301 T302  576 prim_subreg #( 577 .DW (32), 578 .SwAccess(prim_subreg_pkg::SwAccessRW), 579 .RESVAL (32'h0), 580 .Mubi (1'b0) 581 ) u_ibus_remap_addr_0 ( 582 .clk_i (clk_i), 583 .rst_ni (rst_ni), 584 585 // from register interface 586 .we (ibus_remap_addr_0_gated_we), 587 .wd (ibus_remap_addr_0_wd), 588 589 // from internal hardware 590 .de (1'b0), 591 .d ('0), 592 593 // to internal hardware 594 .qe (), 595 .q (reg2hw.ibus_remap_addr[0].q), 596 .ds (), 597 598 // to register interface (read) 599 .qs (ibus_remap_addr_0_qs) 600 ); 601 602 603 // Subregister 1 of Multireg ibus_remap_addr 604 // R[ibus_remap_addr_1]: V(False) 605 // Create REGWEN-gated WE signal 606 logic ibus_remap_addr_1_gated_we; 607 1/1 assign ibus_remap_addr_1_gated_we = ibus_remap_addr_1_we & ibus_regwen_1_qs; Tests: T221 T301 T302  608 prim_subreg #( 609 .DW (32), 610 .SwAccess(prim_subreg_pkg::SwAccessRW), 611 .RESVAL (32'h0), 612 .Mubi (1'b0) 613 ) u_ibus_remap_addr_1 ( 614 .clk_i (clk_i), 615 .rst_ni (rst_ni), 616 617 // from register interface 618 .we (ibus_remap_addr_1_gated_we), 619 .wd (ibus_remap_addr_1_wd), 620 621 // from internal hardware 622 .de (1'b0), 623 .d ('0), 624 625 // to internal hardware 626 .qe (), 627 .q (reg2hw.ibus_remap_addr[1].q), 628 .ds (), 629 630 // to register interface (read) 631 .qs (ibus_remap_addr_1_qs) 632 ); 633 634 635 // Subregister 0 of Multireg dbus_regwen 636 // R[dbus_regwen_0]: V(False) 637 prim_subreg #( 638 .DW (1), 639 .SwAccess(prim_subreg_pkg::SwAccessW0C), 640 .RESVAL (1'h1), 641 .Mubi (1'b0) 642 ) u_dbus_regwen_0 ( 643 .clk_i (clk_i), 644 .rst_ni (rst_ni), 645 646 // from register interface 647 .we (dbus_regwen_0_we), 648 .wd (dbus_regwen_0_wd), 649 650 // from internal hardware 651 .de (1'b0), 652 .d ('0), 653 654 // to internal hardware 655 .qe (), 656 .q (), 657 .ds (), 658 659 // to register interface (read) 660 .qs (dbus_regwen_0_qs) 661 ); 662 663 664 // Subregister 1 of Multireg dbus_regwen 665 // R[dbus_regwen_1]: V(False) 666 prim_subreg #( 667 .DW (1), 668 .SwAccess(prim_subreg_pkg::SwAccessW0C), 669 .RESVAL (1'h1), 670 .Mubi (1'b0) 671 ) u_dbus_regwen_1 ( 672 .clk_i (clk_i), 673 .rst_ni (rst_ni), 674 675 // from register interface 676 .we (dbus_regwen_1_we), 677 .wd (dbus_regwen_1_wd), 678 679 // from internal hardware 680 .de (1'b0), 681 .d ('0), 682 683 // to internal hardware 684 .qe (), 685 .q (), 686 .ds (), 687 688 // to register interface (read) 689 .qs (dbus_regwen_1_qs) 690 ); 691 692 693 // Subregister 0 of Multireg dbus_addr_en 694 // R[dbus_addr_en_0]: V(False) 695 // Create REGWEN-gated WE signal 696 logic dbus_addr_en_0_gated_we; 697 1/1 assign dbus_addr_en_0_gated_we = dbus_addr_en_0_we & dbus_regwen_0_qs; Tests: T221 T301 T302  698 prim_subreg #( 699 .DW (1), 700 .SwAccess(prim_subreg_pkg::SwAccessRW), 701 .RESVAL (1'h0), 702 .Mubi (1'b0) 703 ) u_dbus_addr_en_0 ( 704 .clk_i (clk_i), 705 .rst_ni (rst_ni), 706 707 // from register interface 708 .we (dbus_addr_en_0_gated_we), 709 .wd (dbus_addr_en_0_wd), 710 711 // from internal hardware 712 .de (1'b0), 713 .d ('0), 714 715 // to internal hardware 716 .qe (), 717 .q (reg2hw.dbus_addr_en[0].q), 718 .ds (), 719 720 // to register interface (read) 721 .qs (dbus_addr_en_0_qs) 722 ); 723 724 725 // Subregister 1 of Multireg dbus_addr_en 726 // R[dbus_addr_en_1]: V(False) 727 // Create REGWEN-gated WE signal 728 logic dbus_addr_en_1_gated_we; 729 1/1 assign dbus_addr_en_1_gated_we = dbus_addr_en_1_we & dbus_regwen_1_qs; Tests: T221 T301 T302  730 prim_subreg #( 731 .DW (1), 732 .SwAccess(prim_subreg_pkg::SwAccessRW), 733 .RESVAL (1'h0), 734 .Mubi (1'b0) 735 ) u_dbus_addr_en_1 ( 736 .clk_i (clk_i), 737 .rst_ni (rst_ni), 738 739 // from register interface 740 .we (dbus_addr_en_1_gated_we), 741 .wd (dbus_addr_en_1_wd), 742 743 // from internal hardware 744 .de (1'b0), 745 .d ('0), 746 747 // to internal hardware 748 .qe (), 749 .q (reg2hw.dbus_addr_en[1].q), 750 .ds (), 751 752 // to register interface (read) 753 .qs (dbus_addr_en_1_qs) 754 ); 755 756 757 // Subregister 0 of Multireg dbus_addr_matching 758 // R[dbus_addr_matching_0]: V(False) 759 // Create REGWEN-gated WE signal 760 logic dbus_addr_matching_0_gated_we; 761 1/1 assign dbus_addr_matching_0_gated_we = dbus_addr_matching_0_we & dbus_regwen_0_qs; Tests: T221 T301 T302  762 prim_subreg #( 763 .DW (32), 764 .SwAccess(prim_subreg_pkg::SwAccessRW), 765 .RESVAL (32'h0), 766 .Mubi (1'b0) 767 ) u_dbus_addr_matching_0 ( 768 .clk_i (clk_i), 769 .rst_ni (rst_ni), 770 771 // from register interface 772 .we (dbus_addr_matching_0_gated_we), 773 .wd (dbus_addr_matching_0_wd), 774 775 // from internal hardware 776 .de (1'b0), 777 .d ('0), 778 779 // to internal hardware 780 .qe (), 781 .q (reg2hw.dbus_addr_matching[0].q), 782 .ds (), 783 784 // to register interface (read) 785 .qs (dbus_addr_matching_0_qs) 786 ); 787 788 789 // Subregister 1 of Multireg dbus_addr_matching 790 // R[dbus_addr_matching_1]: V(False) 791 // Create REGWEN-gated WE signal 792 logic dbus_addr_matching_1_gated_we; 793 1/1 assign dbus_addr_matching_1_gated_we = dbus_addr_matching_1_we & dbus_regwen_1_qs; Tests: T221 T301 T302  794 prim_subreg #( 795 .DW (32), 796 .SwAccess(prim_subreg_pkg::SwAccessRW), 797 .RESVAL (32'h0), 798 .Mubi (1'b0) 799 ) u_dbus_addr_matching_1 ( 800 .clk_i (clk_i), 801 .rst_ni (rst_ni), 802 803 // from register interface 804 .we (dbus_addr_matching_1_gated_we), 805 .wd (dbus_addr_matching_1_wd), 806 807 // from internal hardware 808 .de (1'b0), 809 .d ('0), 810 811 // to internal hardware 812 .qe (), 813 .q (reg2hw.dbus_addr_matching[1].q), 814 .ds (), 815 816 // to register interface (read) 817 .qs (dbus_addr_matching_1_qs) 818 ); 819 820 821 // Subregister 0 of Multireg dbus_remap_addr 822 // R[dbus_remap_addr_0]: V(False) 823 // Create REGWEN-gated WE signal 824 logic dbus_remap_addr_0_gated_we; 825 1/1 assign dbus_remap_addr_0_gated_we = dbus_remap_addr_0_we & dbus_regwen_0_qs; Tests: T221 T301 T302  826 prim_subreg #( 827 .DW (32), 828 .SwAccess(prim_subreg_pkg::SwAccessRW), 829 .RESVAL (32'h0), 830 .Mubi (1'b0) 831 ) u_dbus_remap_addr_0 ( 832 .clk_i (clk_i), 833 .rst_ni (rst_ni), 834 835 // from register interface 836 .we (dbus_remap_addr_0_gated_we), 837 .wd (dbus_remap_addr_0_wd), 838 839 // from internal hardware 840 .de (1'b0), 841 .d ('0), 842 843 // to internal hardware 844 .qe (), 845 .q (reg2hw.dbus_remap_addr[0].q), 846 .ds (), 847 848 // to register interface (read) 849 .qs (dbus_remap_addr_0_qs) 850 ); 851 852 853 // Subregister 1 of Multireg dbus_remap_addr 854 // R[dbus_remap_addr_1]: V(False) 855 // Create REGWEN-gated WE signal 856 logic dbus_remap_addr_1_gated_we; 857 1/1 assign dbus_remap_addr_1_gated_we = dbus_remap_addr_1_we & dbus_regwen_1_qs; Tests: T221 T301 T302  858 prim_subreg #( 859 .DW (32), 860 .SwAccess(prim_subreg_pkg::SwAccessRW), 861 .RESVAL (32'h0), 862 .Mubi (1'b0) 863 ) u_dbus_remap_addr_1 ( 864 .clk_i (clk_i), 865 .rst_ni (rst_ni), 866 867 // from register interface 868 .we (dbus_remap_addr_1_gated_we), 869 .wd (dbus_remap_addr_1_wd), 870 871 // from internal hardware 872 .de (1'b0), 873 .d ('0), 874 875 // to internal hardware 876 .qe (), 877 .q (reg2hw.dbus_remap_addr[1].q), 878 .ds (), 879 880 // to register interface (read) 881 .qs (dbus_remap_addr_1_qs) 882 ); 883 884 885 // R[nmi_enable]: V(False) 886 // F[alert_en]: 0:0 887 prim_subreg #( 888 .DW (1), 889 .SwAccess(prim_subreg_pkg::SwAccessW1S), 890 .RESVAL (1'h0), 891 .Mubi (1'b0) 892 ) u_nmi_enable_alert_en ( 893 .clk_i (clk_i), 894 .rst_ni (rst_ni), 895 896 // from register interface 897 .we (nmi_enable_we), 898 .wd (nmi_enable_alert_en_wd), 899 900 // from internal hardware 901 .de (1'b0), 902 .d ('0), 903 904 // to internal hardware 905 .qe (), 906 .q (reg2hw.nmi_enable.alert_en.q), 907 .ds (), 908 909 // to register interface (read) 910 .qs (nmi_enable_alert_en_qs) 911 ); 912 913 // F[wdog_en]: 1:1 914 prim_subreg #( 915 .DW (1), 916 .SwAccess(prim_subreg_pkg::SwAccessW1S), 917 .RESVAL (1'h0), 918 .Mubi (1'b0) 919 ) u_nmi_enable_wdog_en ( 920 .clk_i (clk_i), 921 .rst_ni (rst_ni), 922 923 // from register interface 924 .we (nmi_enable_we), 925 .wd (nmi_enable_wdog_en_wd), 926 927 // from internal hardware 928 .de (1'b0), 929 .d ('0), 930 931 // to internal hardware 932 .qe (), 933 .q (reg2hw.nmi_enable.wdog_en.q), 934 .ds (), 935 936 // to register interface (read) 937 .qs (nmi_enable_wdog_en_qs) 938 ); 939 940 941 // R[nmi_state]: V(False) 942 // F[alert]: 0:0 943 prim_subreg #( 944 .DW (1), 945 .SwAccess(prim_subreg_pkg::SwAccessW1C), 946 .RESVAL (1'h0), 947 .Mubi (1'b0) 948 ) u_nmi_state_alert ( 949 .clk_i (clk_i), 950 .rst_ni (rst_ni), 951 952 // from register interface 953 .we (nmi_state_we), 954 .wd (nmi_state_alert_wd), 955 956 // from internal hardware 957 .de (hw2reg.nmi_state.alert.de), 958 .d (hw2reg.nmi_state.alert.d), 959 960 // to internal hardware 961 .qe (), 962 .q (reg2hw.nmi_state.alert.q), 963 .ds (), 964 965 // to register interface (read) 966 .qs (nmi_state_alert_qs) 967 ); 968 969 // F[wdog]: 1:1 970 prim_subreg #( 971 .DW (1), 972 .SwAccess(prim_subreg_pkg::SwAccessW1C), 973 .RESVAL (1'h0), 974 .Mubi (1'b0) 975 ) u_nmi_state_wdog ( 976 .clk_i (clk_i), 977 .rst_ni (rst_ni), 978 979 // from register interface 980 .we (nmi_state_we), 981 .wd (nmi_state_wdog_wd), 982 983 // from internal hardware 984 .de (hw2reg.nmi_state.wdog.de), 985 .d (hw2reg.nmi_state.wdog.d), 986 987 // to internal hardware 988 .qe (), 989 .q (reg2hw.nmi_state.wdog.q), 990 .ds (), 991 992 // to register interface (read) 993 .qs (nmi_state_wdog_qs) 994 ); 995 996 997 // R[err_status]: V(False) 998 // F[reg_intg_err]: 0:0 999 prim_subreg #( 1000 .DW (1), 1001 .SwAccess(prim_subreg_pkg::SwAccessW1C), 1002 .RESVAL (1'h0), 1003 .Mubi (1'b0) 1004 ) u_err_status_reg_intg_err ( 1005 .clk_i (clk_i), 1006 .rst_ni (rst_ni), 1007 1008 // from register interface 1009 .we (err_status_we), 1010 .wd (err_status_reg_intg_err_wd), 1011 1012 // from internal hardware 1013 .de (hw2reg.err_status.reg_intg_err.de), 1014 .d (hw2reg.err_status.reg_intg_err.d), 1015 1016 // to internal hardware 1017 .qe (), 1018 .q (), 1019 .ds (), 1020 1021 // to register interface (read) 1022 .qs (err_status_reg_intg_err_qs) 1023 ); 1024 1025 // F[fatal_intg_err]: 8:8 1026 prim_subreg #( 1027 .DW (1), 1028 .SwAccess(prim_subreg_pkg::SwAccessW1C), 1029 .RESVAL (1'h0), 1030 .Mubi (1'b0) 1031 ) u_err_status_fatal_intg_err ( 1032 .clk_i (clk_i), 1033 .rst_ni (rst_ni), 1034 1035 // from register interface 1036 .we (err_status_we), 1037 .wd (err_status_fatal_intg_err_wd), 1038 1039 // from internal hardware 1040 .de (hw2reg.err_status.fatal_intg_err.de), 1041 .d (hw2reg.err_status.fatal_intg_err.d), 1042 1043 // to internal hardware 1044 .qe (), 1045 .q (), 1046 .ds (), 1047 1048 // to register interface (read) 1049 .qs (err_status_fatal_intg_err_qs) 1050 ); 1051 1052 // F[fatal_core_err]: 9:9 1053 prim_subreg #( 1054 .DW (1), 1055 .SwAccess(prim_subreg_pkg::SwAccessW1C), 1056 .RESVAL (1'h0), 1057 .Mubi (1'b0) 1058 ) u_err_status_fatal_core_err ( 1059 .clk_i (clk_i), 1060 .rst_ni (rst_ni), 1061 1062 // from register interface 1063 .we (err_status_we), 1064 .wd (err_status_fatal_core_err_wd), 1065 1066 // from internal hardware 1067 .de (hw2reg.err_status.fatal_core_err.de), 1068 .d (hw2reg.err_status.fatal_core_err.d), 1069 1070 // to internal hardware 1071 .qe (), 1072 .q (), 1073 .ds (), 1074 1075 // to register interface (read) 1076 .qs (err_status_fatal_core_err_qs) 1077 ); 1078 1079 // F[recov_core_err]: 10:10 1080 prim_subreg #( 1081 .DW (1), 1082 .SwAccess(prim_subreg_pkg::SwAccessW1C), 1083 .RESVAL (1'h0), 1084 .Mubi (1'b0) 1085 ) u_err_status_recov_core_err ( 1086 .clk_i (clk_i), 1087 .rst_ni (rst_ni), 1088 1089 // from register interface 1090 .we (err_status_we), 1091 .wd (err_status_recov_core_err_wd), 1092 1093 // from internal hardware 1094 .de (hw2reg.err_status.recov_core_err.de), 1095 .d (hw2reg.err_status.recov_core_err.d), 1096 1097 // to internal hardware 1098 .qe (), 1099 .q (), 1100 .ds (), 1101 1102 // to register interface (read) 1103 .qs (err_status_recov_core_err_qs) 1104 ); 1105 1106 1107 // R[rnd_data]: V(True) 1108 prim_subreg_ext #( 1109 .DW (32) 1110 ) u_rnd_data ( 1111 .re (rnd_data_re), 1112 .we (1'b0), 1113 .wd ('0), 1114 .d (hw2reg.rnd_data.d), 1115 .qre (reg2hw.rnd_data.re), 1116 .qe (), 1117 .q (reg2hw.rnd_data.q), 1118 .ds (), 1119 .qs (rnd_data_qs) 1120 ); 1121 1122 1123 // R[rnd_status]: V(True) 1124 // F[rnd_data_valid]: 0:0 1125 prim_subreg_ext #( 1126 .DW (1) 1127 ) u_rnd_status_rnd_data_valid ( 1128 .re (rnd_status_re), 1129 .we (1'b0), 1130 .wd ('0), 1131 .d (hw2reg.rnd_status.rnd_data_valid.d), 1132 .qre (), 1133 .qe (), 1134 .q (), 1135 .ds (), 1136 .qs (rnd_status_rnd_data_valid_qs) 1137 ); 1138 1139 // F[rnd_data_fips]: 1:1 1140 prim_subreg_ext #( 1141 .DW (1) 1142 ) u_rnd_status_rnd_data_fips ( 1143 .re (rnd_status_re), 1144 .we (1'b0), 1145 .wd ('0), 1146 .d (hw2reg.rnd_status.rnd_data_fips.d), 1147 .qre (), 1148 .qe (), 1149 .q (), 1150 .ds (), 1151 .qs (rnd_status_rnd_data_fips_qs) 1152 ); 1153 1154 1155 // R[fpga_info]: V(True) 1156 prim_subreg_ext #( 1157 .DW (32) 1158 ) u_fpga_info ( 1159 .re (fpga_info_re), 1160 .we (1'b0), 1161 .wd ('0), 1162 .d (hw2reg.fpga_info.d), 1163 .qre (), 1164 .qe (), 1165 .q (), 1166 .ds (), 1167 .qs (fpga_info_qs) 1168 ); 1169 1170 1171 1172 logic [24:0] addr_hit; 1173 always_comb begin 1174 1/1 addr_hit = '0; Tests: T1 T2 T3  1175 1/1 addr_hit[ 0] = (reg_addr == RV_CORE_IBEX_ALERT_TEST_OFFSET); Tests: T1 T2 T3  1176 1/1 addr_hit[ 1] = (reg_addr == RV_CORE_IBEX_SW_RECOV_ERR_OFFSET); Tests: T1 T2 T3  1177 1/1 addr_hit[ 2] = (reg_addr == RV_CORE_IBEX_SW_FATAL_ERR_OFFSET); Tests: T1 T2 T3  1178 1/1 addr_hit[ 3] = (reg_addr == RV_CORE_IBEX_IBUS_REGWEN_0_OFFSET); Tests: T1 T2 T3  1179 1/1 addr_hit[ 4] = (reg_addr == RV_CORE_IBEX_IBUS_REGWEN_1_OFFSET); Tests: T1 T2 T3  1180 1/1 addr_hit[ 5] = (reg_addr == RV_CORE_IBEX_IBUS_ADDR_EN_0_OFFSET); Tests: T1 T2 T3  1181 1/1 addr_hit[ 6] = (reg_addr == RV_CORE_IBEX_IBUS_ADDR_EN_1_OFFSET); Tests: T1 T2 T3  1182 1/1 addr_hit[ 7] = (reg_addr == RV_CORE_IBEX_IBUS_ADDR_MATCHING_0_OFFSET); Tests: T1 T2 T3  1183 1/1 addr_hit[ 8] = (reg_addr == RV_CORE_IBEX_IBUS_ADDR_MATCHING_1_OFFSET); Tests: T1 T2 T3  1184 1/1 addr_hit[ 9] = (reg_addr == RV_CORE_IBEX_IBUS_REMAP_ADDR_0_OFFSET); Tests: T1 T2 T3  1185 1/1 addr_hit[10] = (reg_addr == RV_CORE_IBEX_IBUS_REMAP_ADDR_1_OFFSET); Tests: T1 T2 T3  1186 1/1 addr_hit[11] = (reg_addr == RV_CORE_IBEX_DBUS_REGWEN_0_OFFSET); Tests: T1 T2 T3  1187 1/1 addr_hit[12] = (reg_addr == RV_CORE_IBEX_DBUS_REGWEN_1_OFFSET); Tests: T1 T2 T3  1188 1/1 addr_hit[13] = (reg_addr == RV_CORE_IBEX_DBUS_ADDR_EN_0_OFFSET); Tests: T1 T2 T3  1189 1/1 addr_hit[14] = (reg_addr == RV_CORE_IBEX_DBUS_ADDR_EN_1_OFFSET); Tests: T1 T2 T3  1190 1/1 addr_hit[15] = (reg_addr == RV_CORE_IBEX_DBUS_ADDR_MATCHING_0_OFFSET); Tests: T1 T2 T3  1191 1/1 addr_hit[16] = (reg_addr == RV_CORE_IBEX_DBUS_ADDR_MATCHING_1_OFFSET); Tests: T1 T2 T3  1192 1/1 addr_hit[17] = (reg_addr == RV_CORE_IBEX_DBUS_REMAP_ADDR_0_OFFSET); Tests: T1 T2 T3  1193 1/1 addr_hit[18] = (reg_addr == RV_CORE_IBEX_DBUS_REMAP_ADDR_1_OFFSET); Tests: T1 T2 T3  1194 1/1 addr_hit[19] = (reg_addr == RV_CORE_IBEX_NMI_ENABLE_OFFSET); Tests: T1 T2 T3  1195 1/1 addr_hit[20] = (reg_addr == RV_CORE_IBEX_NMI_STATE_OFFSET); Tests: T1 T2 T3  1196 1/1 addr_hit[21] = (reg_addr == RV_CORE_IBEX_ERR_STATUS_OFFSET); Tests: T1 T2 T3  1197 1/1 addr_hit[22] = (reg_addr == RV_CORE_IBEX_RND_DATA_OFFSET); Tests: T1 T2 T3  1198 1/1 addr_hit[23] = (reg_addr == RV_CORE_IBEX_RND_STATUS_OFFSET); Tests: T1 T2 T3  1199 1/1 addr_hit[24] = (reg_addr == RV_CORE_IBEX_FPGA_INFO_OFFSET); Tests: T1 T2 T3  1200 end 1201 1202 1/1 assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ; Tests: T1 T2 T3  1203 1204 // Check sub-word write is permitted 1205 always_comb begin 1206 1/1 wr_err = (reg_we & Tests: T1 T2 T3  1207 ((addr_hit[ 0] & (|(RV_CORE_IBEX_CFG_PERMIT[ 0] & ~reg_be))) | 1208 (addr_hit[ 1] & (|(RV_CORE_IBEX_CFG_PERMIT[ 1] & ~reg_be))) | 1209 (addr_hit[ 2] & (|(RV_CORE_IBEX_CFG_PERMIT[ 2] & ~reg_be))) | 1210 (addr_hit[ 3] & (|(RV_CORE_IBEX_CFG_PERMIT[ 3] & ~reg_be))) | 1211 (addr_hit[ 4] & (|(RV_CORE_IBEX_CFG_PERMIT[ 4] & ~reg_be))) | 1212 (addr_hit[ 5] & (|(RV_CORE_IBEX_CFG_PERMIT[ 5] & ~reg_be))) | 1213 (addr_hit[ 6] & (|(RV_CORE_IBEX_CFG_PERMIT[ 6] & ~reg_be))) | 1214 (addr_hit[ 7] & (|(RV_CORE_IBEX_CFG_PERMIT[ 7] & ~reg_be))) | 1215 (addr_hit[ 8] & (|(RV_CORE_IBEX_CFG_PERMIT[ 8] & ~reg_be))) | 1216 (addr_hit[ 9] & (|(RV_CORE_IBEX_CFG_PERMIT[ 9] & ~reg_be))) | 1217 (addr_hit[10] & (|(RV_CORE_IBEX_CFG_PERMIT[10] & ~reg_be))) | 1218 (addr_hit[11] & (|(RV_CORE_IBEX_CFG_PERMIT[11] & ~reg_be))) | 1219 (addr_hit[12] & (|(RV_CORE_IBEX_CFG_PERMIT[12] & ~reg_be))) | 1220 (addr_hit[13] & (|(RV_CORE_IBEX_CFG_PERMIT[13] & ~reg_be))) | 1221 (addr_hit[14] & (|(RV_CORE_IBEX_CFG_PERMIT[14] & ~reg_be))) | 1222 (addr_hit[15] & (|(RV_CORE_IBEX_CFG_PERMIT[15] & ~reg_be))) | 1223 (addr_hit[16] & (|(RV_CORE_IBEX_CFG_PERMIT[16] & ~reg_be))) | 1224 (addr_hit[17] & (|(RV_CORE_IBEX_CFG_PERMIT[17] & ~reg_be))) | 1225 (addr_hit[18] & (|(RV_CORE_IBEX_CFG_PERMIT[18] & ~reg_be))) | 1226 (addr_hit[19] & (|(RV_CORE_IBEX_CFG_PERMIT[19] & ~reg_be))) | 1227 (addr_hit[20] & (|(RV_CORE_IBEX_CFG_PERMIT[20] & ~reg_be))) | 1228 (addr_hit[21] & (|(RV_CORE_IBEX_CFG_PERMIT[21] & ~reg_be))) | 1229 (addr_hit[22] & (|(RV_CORE_IBEX_CFG_PERMIT[22] & ~reg_be))) | 1230 (addr_hit[23] & (|(RV_CORE_IBEX_CFG_PERMIT[23] & ~reg_be))) | 1231 (addr_hit[24] & (|(RV_CORE_IBEX_CFG_PERMIT[24] & ~reg_be))))); 1232 end 1233 1234 // Generate write-enables 1235 1/1 assign alert_test_we = addr_hit[0] & reg_we & !reg_error; Tests: T1 T2 T3  1236 1237 1/1 assign alert_test_fatal_sw_err_wd = reg_wdata[0]; Tests: T1 T2 T3  1238 1239 1/1 assign alert_test_recov_sw_err_wd = reg_wdata[1]; Tests: T1 T2 T3  1240 1241 1/1 assign alert_test_fatal_hw_err_wd = reg_wdata[2]; Tests: T1 T2 T3  1242 1243 1/1 assign alert_test_recov_hw_err_wd = reg_wdata[3]; Tests: T1 T2 T3  1244 1/1 assign sw_recov_err_we = addr_hit[1] & reg_we & !reg_error; Tests: T1 T2 T3  1245 1246 1/1 assign sw_recov_err_wd = reg_wdata[3:0]; Tests: T1 T2 T3  1247 1/1 assign sw_fatal_err_we = addr_hit[2] & reg_we & !reg_error; Tests: T1 T2 T3  1248 1249 1/1 assign sw_fatal_err_wd = reg_wdata[3:0]; Tests: T1 T2 T3  1250 1/1 assign ibus_regwen_0_we = addr_hit[3] & reg_we & !reg_error; Tests: T1 T2 T3  1251 1252 1/1 assign ibus_regwen_0_wd = reg_wdata[0]; Tests: T1 T2 T3  1253 1/1 assign ibus_regwen_1_we = addr_hit[4] & reg_we & !reg_error; Tests: T1 T2 T3  1254 1255 1/1 assign ibus_regwen_1_wd = reg_wdata[0]; Tests: T1 T2 T3  1256 1/1 assign ibus_addr_en_0_we = addr_hit[5] & reg_we & !reg_error; Tests: T1 T2 T3  1257 1258 1/1 assign ibus_addr_en_0_wd = reg_wdata[0]; Tests: T1 T2 T3  1259 1/1 assign ibus_addr_en_1_we = addr_hit[6] & reg_we & !reg_error; Tests: T1 T2 T3  1260 1261 1/1 assign ibus_addr_en_1_wd = reg_wdata[0]; Tests: T1 T2 T3  1262 1/1 assign ibus_addr_matching_0_we = addr_hit[7] & reg_we & !reg_error; Tests: T1 T2 T3  1263 1264 1/1 assign ibus_addr_matching_0_wd = reg_wdata[31:0]; Tests: T1 T2 T3  1265 1/1 assign ibus_addr_matching_1_we = addr_hit[8] & reg_we & !reg_error; Tests: T1 T2 T3  1266 1267 1/1 assign ibus_addr_matching_1_wd = reg_wdata[31:0]; Tests: T1 T2 T3  1268 1/1 assign ibus_remap_addr_0_we = addr_hit[9] & reg_we & !reg_error; Tests: T1 T2 T3  1269 1270 1/1 assign ibus_remap_addr_0_wd = reg_wdata[31:0]; Tests: T1 T2 T3  1271 1/1 assign ibus_remap_addr_1_we = addr_hit[10] & reg_we & !reg_error; Tests: T1 T2 T3  1272 1273 1/1 assign ibus_remap_addr_1_wd = reg_wdata[31:0]; Tests: T1 T2 T3  1274 1/1 assign dbus_regwen_0_we = addr_hit[11] & reg_we & !reg_error; Tests: T1 T2 T3  1275 1276 1/1 assign dbus_regwen_0_wd = reg_wdata[0]; Tests: T1 T2 T3  1277 1/1 assign dbus_regwen_1_we = addr_hit[12] & reg_we & !reg_error; Tests: T1 T2 T3  1278 1279 1/1 assign dbus_regwen_1_wd = reg_wdata[0]; Tests: T1 T2 T3  1280 1/1 assign dbus_addr_en_0_we = addr_hit[13] & reg_we & !reg_error; Tests: T1 T2 T3  1281 1282 1/1 assign dbus_addr_en_0_wd = reg_wdata[0]; Tests: T1 T2 T3  1283 1/1 assign dbus_addr_en_1_we = addr_hit[14] & reg_we & !reg_error; Tests: T1 T2 T3  1284 1285 1/1 assign dbus_addr_en_1_wd = reg_wdata[0]; Tests: T1 T2 T3  1286 1/1 assign dbus_addr_matching_0_we = addr_hit[15] & reg_we & !reg_error; Tests: T1 T2 T3  1287 1288 1/1 assign dbus_addr_matching_0_wd = reg_wdata[31:0]; Tests: T1 T2 T3  1289 1/1 assign dbus_addr_matching_1_we = addr_hit[16] & reg_we & !reg_error; Tests: T1 T2 T3  1290 1291 1/1 assign dbus_addr_matching_1_wd = reg_wdata[31:0]; Tests: T1 T2 T3  1292 1/1 assign dbus_remap_addr_0_we = addr_hit[17] & reg_we & !reg_error; Tests: T1 T2 T3  1293 1294 1/1 assign dbus_remap_addr_0_wd = reg_wdata[31:0]; Tests: T1 T2 T3  1295 1/1 assign dbus_remap_addr_1_we = addr_hit[18] & reg_we & !reg_error; Tests: T1 T2 T3  1296 1297 1/1 assign dbus_remap_addr_1_wd = reg_wdata[31:0]; Tests: T1 T2 T3  1298 1/1 assign nmi_enable_we = addr_hit[19] & reg_we & !reg_error; Tests: T1 T2 T3  1299 1300 1/1 assign nmi_enable_alert_en_wd = reg_wdata[0]; Tests: T1 T2 T3  1301 1302 1/1 assign nmi_enable_wdog_en_wd = reg_wdata[1]; Tests: T1 T2 T3  1303 1/1 assign nmi_state_we = addr_hit[20] & reg_we & !reg_error; Tests: T1 T2 T3  1304 1305 1/1 assign nmi_state_alert_wd = reg_wdata[0]; Tests: T1 T2 T3  1306 1307 1/1 assign nmi_state_wdog_wd = reg_wdata[1]; Tests: T1 T2 T3  1308 1/1 assign err_status_we = addr_hit[21] & reg_we & !reg_error; Tests: T1 T2 T3  1309 1310 1/1 assign err_status_reg_intg_err_wd = reg_wdata[0]; Tests: T1 T2 T3  1311 1312 1/1 assign err_status_fatal_intg_err_wd = reg_wdata[8]; Tests: T1 T2 T3  1313 1314 1/1 assign err_status_fatal_core_err_wd = reg_wdata[9]; Tests: T1 T2 T3  1315 1316 1/1 assign err_status_recov_core_err_wd = reg_wdata[10]; Tests: T1 T2 T3  1317 1/1 assign rnd_data_re = addr_hit[22] & reg_re & !reg_error; Tests: T1 T2 T3  1318 1/1 assign rnd_status_re = addr_hit[23] & reg_re & !reg_error; Tests: T1 T2 T3  1319 1/1 assign fpga_info_re = addr_hit[24] & reg_re & !reg_error; Tests: T1 T2 T3  1320 1321 // Assign write-enables to checker logic vector. 1322 always_comb begin 1323 1/1 reg_we_check = '0; Tests: T45 T86 T87  1324 1/1 reg_we_check[0] = alert_test_we; Tests: T45 T86 T87  1325 1/1 reg_we_check[1] = sw_recov_err_we; Tests: T45 T86 T87  1326 1/1 reg_we_check[2] = sw_fatal_err_we; Tests: T45 T86 T87  1327 1/1 reg_we_check[3] = ibus_regwen_0_we; Tests: T45 T86 T87  1328 1/1 reg_we_check[4] = ibus_regwen_1_we; Tests: T45 T86 T87  1329 1/1 reg_we_check[5] = ibus_addr_en_0_gated_we; Tests: T45 T86 T87  1330 1/1 reg_we_check[6] = ibus_addr_en_1_gated_we; Tests: T45 T86 T87  1331 1/1 reg_we_check[7] = ibus_addr_matching_0_gated_we; Tests: T45 T86 T87  1332 1/1 reg_we_check[8] = ibus_addr_matching_1_gated_we; Tests: T45 T86 T87  1333 1/1 reg_we_check[9] = ibus_remap_addr_0_gated_we; Tests: T45 T86 T87  1334 1/1 reg_we_check[10] = ibus_remap_addr_1_gated_we; Tests: T45 T86 T87  1335 1/1 reg_we_check[11] = dbus_regwen_0_we; Tests: T45 T86 T87  1336 1/1 reg_we_check[12] = dbus_regwen_1_we; Tests: T45 T86 T87  1337 1/1 reg_we_check[13] = dbus_addr_en_0_gated_we; Tests: T45 T86 T87  1338 1/1 reg_we_check[14] = dbus_addr_en_1_gated_we; Tests: T45 T86 T87  1339 1/1 reg_we_check[15] = dbus_addr_matching_0_gated_we; Tests: T45 T86 T87  1340 1/1 reg_we_check[16] = dbus_addr_matching_1_gated_we; Tests: T45 T86 T87  1341 1/1 reg_we_check[17] = dbus_remap_addr_0_gated_we; Tests: T45 T86 T87  1342 1/1 reg_we_check[18] = dbus_remap_addr_1_gated_we; Tests: T45 T86 T87  1343 1/1 reg_we_check[19] = nmi_enable_we; Tests: T45 T86 T87  1344 1/1 reg_we_check[20] = nmi_state_we; Tests: T45 T86 T87  1345 1/1 reg_we_check[21] = err_status_we; Tests: T45 T86 T87  1346 1/1 reg_we_check[22] = 1'b0; Tests: T45 T86 T87  1347 1/1 reg_we_check[23] = 1'b0; Tests: T45 T86 T87  1348 1/1 reg_we_check[24] = 1'b0; Tests: T45 T86 T87  1349 end 1350 1351 // Read data return 1352 always_comb begin 1353 1/1 reg_rdata_next = '0; Tests: T1 T2 T3  1354 1/1 unique case (1'b1) Tests: T1 T2 T3  1355 addr_hit[0]: begin 1356 1/1 reg_rdata_next[0] = '0; Tests: T1 T2 T3  1357 1/1 reg_rdata_next[1] = '0; Tests: T1 T2 T3  1358 1/1 reg_rdata_next[2] = '0; Tests: T1 T2 T3  1359 1/1 reg_rdata_next[3] = '0; Tests: T1 T2 T3  1360 end 1361 1362 addr_hit[1]: begin 1363 1/1 reg_rdata_next[3:0] = sw_recov_err_qs; Tests: T169 T276 T465  1364 end 1365 1366 addr_hit[2]: begin 1367 1/1 reg_rdata_next[3:0] = sw_fatal_err_qs; Tests: T303 T98 T103  1368 end 1369 1370 addr_hit[3]: begin 1371 1/1 reg_rdata_next[0] = ibus_regwen_0_qs; Tests: T221 T301 T302  1372 end 1373 1374 addr_hit[4]: begin 1375 1/1 reg_rdata_next[0] = ibus_regwen_1_qs; Tests: T221 T301 T302  1376 end 1377 1378 addr_hit[5]: begin 1379 1/1 reg_rdata_next[0] = ibus_addr_en_0_qs; Tests: T221 T301 T302  1380 end 1381 1382 addr_hit[6]: begin 1383 1/1 reg_rdata_next[0] = ibus_addr_en_1_qs; Tests: T221 T301 T302  1384 end 1385 1386 addr_hit[7]: begin 1387 1/1 reg_rdata_next[31:0] = ibus_addr_matching_0_qs; Tests: T221 T301 T302  1388 end 1389 1390 addr_hit[8]: begin 1391 1/1 reg_rdata_next[31:0] = ibus_addr_matching_1_qs; Tests: T221 T301 T302  1392 end 1393 1394 addr_hit[9]: begin 1395 1/1 reg_rdata_next[31:0] = ibus_remap_addr_0_qs; Tests: T221 T301 T302  1396 end 1397 1398 addr_hit[10]: begin 1399 1/1 reg_rdata_next[31:0] = ibus_remap_addr_1_qs; Tests: T221 T301 T302  1400 end 1401 1402 addr_hit[11]: begin 1403 1/1 reg_rdata_next[0] = dbus_regwen_0_qs; Tests: T221 T301 T302  1404 end 1405 1406 addr_hit[12]: begin 1407 1/1 reg_rdata_next[0] = dbus_regwen_1_qs; Tests: T221 T301 T302  1408 end 1409 1410 addr_hit[13]: begin 1411 1/1 reg_rdata_next[0] = dbus_addr_en_0_qs; Tests: T221 T301 T302  1412 end 1413 1414 addr_hit[14]: begin 1415 1/1 reg_rdata_next[0] = dbus_addr_en_1_qs; Tests: T221 T301 T302  1416 end 1417 1418 addr_hit[15]: begin 1419 1/1 reg_rdata_next[31:0] = dbus_addr_matching_0_qs; Tests: T221 T301 T302  1420 end 1421 1422 addr_hit[16]: begin 1423 1/1 reg_rdata_next[31:0] = dbus_addr_matching_1_qs; Tests: T221 T301 T302  1424 end 1425 1426 addr_hit[17]: begin 1427 1/1 reg_rdata_next[31:0] = dbus_remap_addr_0_qs; Tests: T221 T301 T302  1428 end 1429 1430 addr_hit[18]: begin 1431 1/1 reg_rdata_next[31:0] = dbus_remap_addr_1_qs; Tests: T221 T301 T302  1432 end 1433 1434 addr_hit[19]: begin 1435 1/1 reg_rdata_next[0] = nmi_enable_alert_en_qs; Tests: T45 T86 T87  1436 1/1 reg_rdata_next[1] = nmi_enable_wdog_en_qs; Tests: T45 T86 T87  1437 end 1438 1439 addr_hit[20]: begin 1440 1/1 reg_rdata_next[0] = nmi_state_alert_qs; Tests: T45 T86 T87  1441 1/1 reg_rdata_next[1] = nmi_state_wdog_qs; Tests: T45 T86 T87  1442 end 1443 1444 addr_hit[21]: begin 1445 1/1 reg_rdata_next[0] = err_status_reg_intg_err_qs; Tests: T87 T267 T336  1446 1/1 reg_rdata_next[8] = err_status_fatal_intg_err_qs; Tests: T87 T267 T336  1447 1/1 reg_rdata_next[9] = err_status_fatal_core_err_qs; Tests: T87 T267 T336  1448 1/1 reg_rdata_next[10] = err_status_recov_core_err_qs; Tests: T87 T267 T336  1449 end 1450 1451 addr_hit[22]: begin 1452 1/1 reg_rdata_next[31:0] = rnd_data_qs; Tests: T2 T4 T5  1453 end 1454 1455 addr_hit[23]: begin 1456 1/1 reg_rdata_next[0] = rnd_status_rnd_data_valid_qs; Tests: T2 T4 T5  1457 1/1 reg_rdata_next[1] = rnd_status_rnd_data_fips_qs; Tests: T2 T4 T5  1458 end 1459 1460 addr_hit[24]: begin 1461 1/1 reg_rdata_next[31:0] = fpga_info_qs; Tests: T2 T3 T4  1462 end 1463 1464 default: begin 1465 reg_rdata_next = '1; 1466 end 1467 endcase 1468 end 1469 1470 // shadow busy 1471 logic shadow_busy; 1472 assign shadow_busy = 1'b0; 1473 1474 // register busy 1475 unreachable assign reg_busy = shadow_busy; 1476 1477 // Unused signal tieoff 1478 1479 // wdata / byte enable are not always fully used 1480 // add a blanket unused statement to handle lint waivers 1481 logic unused_wdata; 1482 logic unused_be; 1483 1/1 assign unused_wdata = ^reg_wdata; Tests: T1 T2 T3  1484 1/1 assign unused_be = ^reg_be; Tests: T1 T2 T3 

Cond Coverage for Module : rv_core_ibex_cfg_reg_top
TotalCoveredPercent
Conditions31131099.68
Logical31131099.68
Non-Logical00
Event00

This module contains a very large number of conditions, so the report has been split into multiple pages, by source line number. Click on the line number range in the table below to see the condition coverage for that section of the module.
Line numbersPercent
63-129599.65
1298-1319100.00

Branch Coverage for Module : rv_core_ibex_cfg_reg_top
Line No.TotalCoveredPercent
Branches 35 35 100.00
TERNARY 1202 2 2 100.00
IF 73 3 3 100.00
TERNARY 130 2 2 100.00
IF 136 2 2 100.00
CASE 1354 26 26 100.00


1202 assign addrmiss = (reg_re || reg_we) ? ~|addr_hit : 1'b0 ; -1- ==> ==>

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


73 if (!rst_ni) begin -1- 74 err_q <= '0; ==> 75 end else if (intg_err || reg_we_err) begin -2- 76 err_q <= 1'b1; ==> 77 end MISSING_ELSE ==>

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


130 reg_steer = 131 tl_i.a_address[AW-1:0] inside {[128:159]} ? 1'd0 : -1- ==> ==>

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


136 if (intg_err) begin -1- 137 reg_steer = 1'd1; ==> 138 end MISSING_ELSE ==>

Branches:
-1-StatusTests
1 Covered T276,T307,T466
0 Covered T1,T2,T3


1354 unique case (1'b1) -1- 1355 addr_hit[0]: begin 1356 reg_rdata_next[0] = '0; ==> 1357 reg_rdata_next[1] = '0; 1358 reg_rdata_next[2] = '0; 1359 reg_rdata_next[3] = '0; 1360 end 1361 1362 addr_hit[1]: begin 1363 reg_rdata_next[3:0] = sw_recov_err_qs; ==> 1364 end 1365 1366 addr_hit[2]: begin 1367 reg_rdata_next[3:0] = sw_fatal_err_qs; ==> 1368 end 1369 1370 addr_hit[3]: begin 1371 reg_rdata_next[0] = ibus_regwen_0_qs; ==> 1372 end 1373 1374 addr_hit[4]: begin 1375 reg_rdata_next[0] = ibus_regwen_1_qs; ==> 1376 end 1377 1378 addr_hit[5]: begin 1379 reg_rdata_next[0] = ibus_addr_en_0_qs; ==> 1380 end 1381 1382 addr_hit[6]: begin 1383 reg_rdata_next[0] = ibus_addr_en_1_qs; ==> 1384 end 1385 1386 addr_hit[7]: begin 1387 reg_rdata_next[31:0] = ibus_addr_matching_0_qs; ==> 1388 end 1389 1390 addr_hit[8]: begin 1391 reg_rdata_next[31:0] = ibus_addr_matching_1_qs; ==> 1392 end 1393 1394 addr_hit[9]: begin 1395 reg_rdata_next[31:0] = ibus_remap_addr_0_qs; ==> 1396 end 1397 1398 addr_hit[10]: begin 1399 reg_rdata_next[31:0] = ibus_remap_addr_1_qs; ==> 1400 end 1401 1402 addr_hit[11]: begin 1403 reg_rdata_next[0] = dbus_regwen_0_qs; ==> 1404 end 1405 1406 addr_hit[12]: begin 1407 reg_rdata_next[0] = dbus_regwen_1_qs; ==> 1408 end 1409 1410 addr_hit[13]: begin 1411 reg_rdata_next[0] = dbus_addr_en_0_qs; ==> 1412 end 1413 1414 addr_hit[14]: begin 1415 reg_rdata_next[0] = dbus_addr_en_1_qs; ==> 1416 end 1417 1418 addr_hit[15]: begin 1419 reg_rdata_next[31:0] = dbus_addr_matching_0_qs; ==> 1420 end 1421 1422 addr_hit[16]: begin 1423 reg_rdata_next[31:0] = dbus_addr_matching_1_qs; ==> 1424 end 1425 1426 addr_hit[17]: begin 1427 reg_rdata_next[31:0] = dbus_remap_addr_0_qs; ==> 1428 end 1429 1430 addr_hit[18]: begin 1431 reg_rdata_next[31:0] = dbus_remap_addr_1_qs; ==> 1432 end 1433 1434 addr_hit[19]: begin 1435 reg_rdata_next[0] = nmi_enable_alert_en_qs; ==> 1436 reg_rdata_next[1] = nmi_enable_wdog_en_qs; 1437 end 1438 1439 addr_hit[20]: begin 1440 reg_rdata_next[0] = nmi_state_alert_qs; ==> 1441 reg_rdata_next[1] = nmi_state_wdog_qs; 1442 end 1443 1444 addr_hit[21]: begin 1445 reg_rdata_next[0] = err_status_reg_intg_err_qs; ==> 1446 reg_rdata_next[8] = err_status_fatal_intg_err_qs; 1447 reg_rdata_next[9] = err_status_fatal_core_err_qs; 1448 reg_rdata_next[10] = err_status_recov_core_err_qs; 1449 end 1450 1451 addr_hit[22]: begin 1452 reg_rdata_next[31:0] = rnd_data_qs; ==> 1453 end 1454 1455 addr_hit[23]: begin 1456 reg_rdata_next[0] = rnd_status_rnd_data_valid_qs; ==> 1457 reg_rdata_next[1] = rnd_status_rnd_data_fips_qs; 1458 end 1459 1460 addr_hit[24]: begin 1461 reg_rdata_next[31:0] = fpga_info_qs; ==> 1462 end 1463 1464 default: begin 1465 reg_rdata_next = '1; ==>

Branches:
-1-StatusTests
addr_hit[0] Covered T1,T2,T3
addr_hit[1] Covered T169,T276,T465
addr_hit[2] Covered T303,T98,T103
addr_hit[3] Covered T221,T301,T302
addr_hit[4] Covered T221,T301,T302
addr_hit[5] Covered T221,T301,T302
addr_hit[6] Covered T221,T301,T302
addr_hit[7] Covered T221,T301,T302
addr_hit[8] Covered T221,T301,T302
addr_hit[9] Covered T221,T301,T302
addr_hit[10] Covered T221,T301,T302
addr_hit[11] Covered T221,T301,T302
addr_hit[12] Covered T221,T301,T302
addr_hit[13] Covered T221,T301,T302
addr_hit[14] Covered T221,T301,T302
addr_hit[15] Covered T221,T301,T302
addr_hit[16] Covered T221,T301,T302
addr_hit[17] Covered T221,T301,T302
addr_hit[18] Covered T221,T301,T302
addr_hit[19] Covered T45,T86,T87
addr_hit[20] Covered T45,T86,T87
addr_hit[21] Covered T87,T267,T336
addr_hit[22] Covered T2,T4,T5
addr_hit[23] Covered T2,T4,T5
addr_hit[24] Covered T2,T3,T4
default Covered T1,T2,T3


Assert Coverage for Module : rv_core_ibex_cfg_reg_top
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 4 4 100.00 4 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 4 4 100.00 4 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
en2addrHit 576051747 38936 0 0
reAfterRv 576051747 38936 0 0
rePulse 576051747 31052 0 0
wePulse 576051747 7884 0 0


en2addrHit
NameAttemptsReal SuccessesFailuresIncomplete
Total 576051747 38936 0 0
T2 88852 3 0 0
T3 72976 1 0 0
T4 73392 3 0 0
T5 85968 3 0 0
T6 110425 3 0 0
T7 107344 1 0 0
T9 80162 3 0 0
T25 101485 3 0 0
T107 62251 1 0 0
T124 108667 3 0 0

reAfterRv
NameAttemptsReal SuccessesFailuresIncomplete
Total 576051747 38936 0 0
T2 88852 3 0 0
T3 72976 1 0 0
T4 73392 3 0 0
T5 85968 3 0 0
T6 110425 3 0 0
T7 107344 1 0 0
T9 80162 3 0 0
T25 101485 3 0 0
T107 62251 1 0 0
T124 108667 3 0 0

rePulse
NameAttemptsReal SuccessesFailuresIncomplete
Total 576051747 31052 0 0
T2 88852 3 0 0
T3 72976 1 0 0
T4 73392 3 0 0
T5 85968 3 0 0
T6 110425 3 0 0
T7 107344 1 0 0
T9 80162 3 0 0
T25 101485 3 0 0
T107 62251 1 0 0
T124 108667 3 0 0

wePulse
NameAttemptsReal SuccessesFailuresIncomplete
Total 576051747 7884 0 0
T27 184848 0 0 0
T29 52072 0 0 0
T36 40602 0 0 0
T39 166279 0 0 0
T45 234026 2 0 0
T62 253169 0 0 0
T66 257690 0 0 0
T80 0 4 0 0
T86 0 2 0 0
T87 0 2 0 0
T146 126304 0 0 0
T194 101074 0 0 0
T198 0 2 0 0
T199 0 1 0 0
T221 0 20 0 0
T235 95893 0 0 0
T279 0 2 0 0
T461 0 8 0 0
T657 0 1 0 0

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