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

Module : otp_ctrl_dai
SCORELINECONDTOGGLEFSMBRANCHASSERT
0.00 0.00 0.00 0.00 0.00

Source File(s) :
/workspace/default/sim-vcs/../src/lowrisc_ip_otp_ctrl_1.0/rtl/otp_ctrl_dai.sv

Module self-instances :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
tb.dut.u_otp_ctrl_dai 0.00 0.00 0.00 0.00 0.00



Module Instance : tb.dut.u_otp_ctrl_dai

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
0.00 0.00 0.00 0.00 0.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
0.00 0.00 0.00 0.00 0.00 0.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
7.86 0.00 0.00 31.46 0.00 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
u_part_sel_idx 0.00 0.00 0.00 0.00
u_prim_count 0.00 0.00
u_state_regs 0.00 0.00 0.00

Line Coverage for Module : otp_ctrl_dai
Line No.TotalCoveredPercent
TOTAL23500.00
CONT_ASSIGN164100.00
CONT_ASSIGN166100.00
CONT_ASSIGN167100.00
CONT_ASSIGN171100.00
ALWAYS17419300.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
ALWAYS7201100.00
CONT_ASSIGN761100.00
CONT_ASSIGN762100.00
ALWAYS768300.00
ALWAYS7711400.00
WARNING: The source file '/workspace/default/sim-vcs/../src/lowrisc_ip_otp_ctrl_1.0/rtl/otp_ctrl_dai.sv' or '../src/lowrisc_ip_otp_ctrl_1.0/rtl/otp_ctrl_dai.sv' was not found, so annotated line coverage report could not be generated.
Line No.CoveredStatements
164 0 1
166 0 1
167 0 1
171 0 1
174 0 1
177 0 1
178 0 1
181 0 1
182 0 1
183 0 1
186 0 1
187 0 1
190 0 1
193 0 1
194 0 1
195 0 1
196 0 1
199 0 1
200 0 1
201 0 1
204 0 1
205 0 1
206 0 1
209 0 1
210 0 1
212 0 1
219 0 1
220 0 1
221 0 1
222 0 1
223 0 1
224 0 1
225 0 1
==> MISSING_ELSE
==> MISSING_ELSE
234 0 1
235 0 1
236 0 1
237 0 1
238 0 1
239 0 1
241 0 1
==> MISSING_ELSE
250 0 1
251 0 1
252 0 1
253 0 1
254 0 1
==> MISSING_ELSE
261 0 1
262 0 1
264 0 1
265 0 1
266 0 1
268 0 1
270 0 1
271 0 1
274 0 1
276 0 1
277 0 1
279 0 1
280 0 1
282 0 1
286 0 1
287 0 1
288 0 1
==> MISSING_ELSE
300 0 1
303 0 1
304 0 1
305 0 1
306 0 1
==> MISSING_ELSE
309 0 1
310 0 1
311 0 1
321 0 1
324 0 1
327 0 1
329 0 1
331 0 1
332 0 1
334 0 1
335 0 1
342 0 1
343 0 1
==> MISSING_ELSE
346 0 1
347 0 1
==> MISSING_ELSE
354 0 1
355 0 1
365 0 1
366 0 1
367 0 1
368 0 1
369 0 1
370 0 1
==> MISSING_ELSE
378 0 1
379 0 1
380 0 1
381 0 1
382 0 1
383 0 1
384 0 1
==> MISSING_ELSE
395 0 1
396 0 1
405 0 1
406 0 1
407 0 1
408 0 1
==> MISSING_ELSE
412 0 1
413 0 1
414 0 1
415 0 1
423 0 1
425 0 1
435 0 1
437 0 1
438 0 1
439 0 1
442 0 1
443 0 1
444 0 1
446 0 1
447 0 1
==> MISSING_ELSE
==> MISSING_ELSE
455 0 1
456 0 1
466 0 1
468 0 1
474 0 1
475 0 1
476 0 1
477 0 1
478 0 1
==> MISSING_ELSE
481 0 1
482 0 1
483 0 1
491 0 1
493 0 1
498 0 1
499 0 1
500 0 1
501 0 1
==> MISSING_ELSE
507 0 1
508 0 1
515 0 1
516 0 1
518 0 1
519 0 1
520 0 1
==> MISSING_ELSE
528 0 1
529 0 1
531 0 1
532 0 1
533 0 1
534 0 1
==> MISSING_ELSE
537 0 1
538 0 1
539 0 1
549 0 1
550 0 1
551 0 1
553 0 1
554 0 1
555 0 1
557 0 1
558 0 1
560 0 1
561 0 1
==> MISSING_ELSE
==> MISSING_ELSE
572 0 1
573 0 1
575 0 1
577 0 1
578 0 1
579 0 1
580 0 1
==> MISSING_ELSE
583 0 1
584 0 1
==> MISSING_ELSE
588 0 1
589 0 1
==> MISSING_ELSE
592 0 1
593 0 1
==> MISSING_ELSE
602 0 1
603 0 1
604 0 1
605 0 1
606 0 1
==> MISSING_ELSE
613 0 1
614 0 1
615 0 1
616 0 1
617 0 1
==> MISSING_ELSE
628 0 1
629 0 1
630 0 1
631 0 1
632 0 1
==> MISSING_ELSE
640 0 1
641 0 1
==> MISSING_ELSE
656 0 1
657 0 1
658 0 1
659 0 1
660 0 1
==> MISSING_ELSE
==> MISSING_ELSE
689 0 8
720 0 1
721 0 1
724 0 1
725 0 1
726 0 1
728 0 1
729 0 1
730 0 1
732 0 1
734 0 1
735 0 1
==> MISSING_ELSE
761 0 1
762 0 1
768 0 3
771 0 1
772 0 1
773 0 1
774 0 1
776 0 1
777 0 1
780 0 1
781 0 1
782 0 1
783 0 1
784 0 1
785 0 1
786 0 1
788 0 1
==> MISSING_ELSE


Cond Coverage for Module : otp_ctrl_dai
TotalCoveredPercent
Conditions8000.00
Logical8000.00
Non-Logical00
Event00

 LINE       171
 EXPRESSION ((state_q == IdleSt) ? data_q : '0)
             ---------1---------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       171
 SUB-EXPRESSION (state_q == IdleSt)
                ---------1---------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       253
 EXPRESSION (part_init_done_i == {otp_ctrl_reg_pkg::NumPart {1'b1}})
            ----------------------------1---------------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       327
 EXPRESSION 
 Number  Term
      1  (((!otp_ctrl_part_pkg::PartInfo[part_idx].ecc_fatal)) && (otp_err_e'(otp_err_i) == MacroEccUncorrError)) || 
      2  (otp_err_e'(otp_err_i) inside {NoError, MacroEccCorrError}))
-1--2-StatusTests
00Not Covered
01Not Covered
10Not Covered

 LINE       327
 SUB-EXPRESSION (((!otp_ctrl_part_pkg::PartInfo[part_idx].ecc_fatal)) && (otp_err_e'(otp_err_i) == MacroEccUncorrError))
                 --------------------------1-------------------------    -----------------------2----------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       327
 SUB-EXPRESSION (otp_err_e'(otp_err_i) == MacroEccUncorrError)
                -----------------------1----------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       331
 EXPRESSION (otp_ctrl_part_pkg::PartInfo[part_idx].secret && (otp_addr_o != digest_addr_lut[part_idx]))
             ----------------------1---------------------    --------------------2--------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       331
 SUB-EXPRESSION (otp_addr_o != digest_addr_lut[part_idx])
                --------------------1--------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       342
 EXPRESSION (otp_err_e'(otp_err_i) != NoError)
            -----------------1----------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       369
 EXPRESSION (scrmbl_mtx_gnt_i && scrmbl_ready_i)
             --------1-------    -------2------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       446
 EXPRESSION (otp_err_e'(otp_err_i) == MacroWriteBlankError)
            -----------------------1-----------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       477
 EXPRESSION (scrmbl_mtx_gnt_i && scrmbl_ready_i)
             --------1-------    -------2------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       519
 EXPRESSION (scrmbl_mtx_gnt_i && scrmbl_ready_i)
             --------1-------    -------2------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       560
 EXPRESSION (otp_err_e'(otp_err_i) == MacroEccCorrError)
            ----------------------1---------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       575
 EXPRESSION (otp_addr_o == digest_addr_lut[part_idx])
            --------------------1--------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       640
 EXPRESSION (error_q == NoError)
            ----------1---------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       659
 EXPRESSION (state_q != ErrorSt)
            ----------1---------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b0) & ({1'b0, dai_addr_i} < gen_part_sel[0].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ----------1----------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b00001000000) & ({1'b0, dai_addr_i} < gen_part_sel[1].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b01101100000) & ({1'b0, dai_addr_i} < gen_part_sel[2].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11010000000) & ({1'b0, dai_addr_i} < gen_part_sel[3].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11011010000) & ({1'b0, dai_addr_i} < gen_part_sel[4].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11011111000) & ({1'b0, dai_addr_i} < gen_part_sel[5].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11101010000) & ({1'b0, dai_addr_i} < gen_part_sel[6].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11110101000) & ({1'b0, dai_addr_i} < gen_part_sel[7].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       728
 EXPRESSION (otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest && (base_sel_q == PartOffset))
             -----------------------1-----------------------    -------------2------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       728
 SUB-EXPRESSION (base_sel_q == PartOffset)
                -------------1------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       732
 EXPRESSION ((base_sel_q == DaiOffset) && ({dai_addr_i[(otp_ctrl_reg_pkg::OtpByteAddrWidth - 1):3], 2'b0} == digest_addr_lut[part_idx]))
             ------------1------------    ----------------------------------------------2----------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       732
 SUB-EXPRESSION (base_sel_q == DaiOffset)
                ------------1------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       732
 SUB-EXPRESSION ({dai_addr_i[(otp_ctrl_reg_pkg::OtpByteAddrWidth - 1):3], 2'b0} == digest_addr_lut[part_idx])
                ----------------------------------------------1----------------------------------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       783
 EXPRESSION (data_sel == ScrmblData)
            ------------1-----------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       785
 EXPRESSION (data_sel == DaiData)
            ----------1----------
-1-StatusTests
0Not Covered
1Not Covered

FSM Coverage for Module : otp_ctrl_dai
Summary for FSM :: state_q
TotalCoveredPercent
States 20 0 0.00 (Not included in score)
Transitions 48 0 0.00
Sequences 0 0

State, Transition and Sequence Details for FSM :: state_q
statesLine No.CoveredTests
DescrSt 332 Not Covered
DescrWaitSt 370 Not Covered
DigClrSt 286 Not Covered
DigFinSt 580 Not Covered
DigPadSt 584 Not Covered
DigReadSt 520 Not Covered
DigReadWaitSt 534 Not Covered
DigSt 558 Not Covered
DigWaitSt 617 Not Covered
ErrorSt 238 Not Covered
IdleSt 254 Not Covered
InitOtpSt 225 Not Covered
InitPartSt 241 Not Covered
ReadSt 268 Not Covered
ReadWaitSt 306 Not Covered
ResetSt 218 Not Covered
ScrSt 280 Not Covered
ScrWaitSt 478 Not Covered
WriteSt 282 Not Covered
WriteWaitSt 408 Not Covered


transitionsLine No.CoveredTests
DescrSt->DescrWaitSt 370 Not Covered
DescrSt->ErrorSt 657 Not Covered
DescrWaitSt->ErrorSt 657 Not Covered
DescrWaitSt->IdleSt 382 Not Covered
DigClrSt->DigReadSt 520 Not Covered
DigClrSt->ErrorSt 657 Not Covered
DigFinSt->DigWaitSt 617 Not Covered
DigFinSt->ErrorSt 657 Not Covered
DigPadSt->DigFinSt 606 Not Covered
DigPadSt->ErrorSt 657 Not Covered
DigReadSt->DigReadWaitSt 534 Not Covered
DigReadSt->ErrorSt 657 Not Covered
DigReadSt->IdleSt 537 Not Covered
DigReadWaitSt->DigSt 558 Not Covered
DigReadWaitSt->ErrorSt 554 Not Covered
DigSt->DigFinSt 580 Not Covered
DigSt->DigPadSt 584 Not Covered
DigSt->DigReadSt 593 Not Covered
DigSt->ErrorSt 657 Not Covered
DigWaitSt->ErrorSt 657 Not Covered
DigWaitSt->WriteSt 631 Not Covered
IdleSt->DigClrSt 286 Not Covered
IdleSt->ErrorSt 657 Not Covered
IdleSt->ReadSt 268 Not Covered
IdleSt->ScrSt 280 Not Covered
IdleSt->WriteSt 282 Not Covered
InitOtpSt->ErrorSt 238 Not Covered
InitOtpSt->InitPartSt 241 Not Covered
InitPartSt->ErrorSt 657 Not Covered
InitPartSt->IdleSt 254 Not Covered
ReadSt->ErrorSt 657 Not Covered
ReadSt->IdleSt 309 Not Covered
ReadSt->ReadWaitSt 306 Not Covered
ReadWaitSt->DescrSt 332 Not Covered
ReadWaitSt->ErrorSt 346 Not Covered
ReadWaitSt->IdleSt 334 Not Covered
ResetSt->ErrorSt 657 Not Covered
ResetSt->InitOtpSt 225 Not Covered
ScrSt->ErrorSt 657 Not Covered
ScrSt->IdleSt 481 Not Covered
ScrSt->ScrWaitSt 478 Not Covered
ScrWaitSt->ErrorSt 507 Not Covered
ScrWaitSt->WriteSt 500 Not Covered
WriteSt->ErrorSt 657 Not Covered
WriteSt->IdleSt 413 Not Covered
WriteSt->WriteWaitSt 408 Not Covered
WriteWaitSt->ErrorSt 438 Not Covered
WriteWaitSt->IdleSt 443 Not Covered


Summary for FSM :: error_q
TotalCoveredPercent
States 4 0 0.00 (Not included in score)
Transitions 12 0 0.00
Sequences 0 0

State, Transition and Sequence Details for FSM :: error_q
statesLine No.CoveredTests
AccessError 310 Not Covered
FsmStateError 355 Not Covered
MacroEccCorrError 343 Not Covered
NoError 264 Not Covered


transitionsLine No.CoveredTests
AccessError->FsmStateError 355 Not Covered
AccessError->MacroEccCorrError 343 Not Covered
AccessError->NoError 264 Not Covered
FsmStateError->AccessError 310 Not Covered
FsmStateError->MacroEccCorrError 343 Not Covered
FsmStateError->NoError 264 Not Covered
MacroEccCorrError->AccessError 310 Not Covered
MacroEccCorrError->FsmStateError 355 Not Covered
MacroEccCorrError->NoError 264 Not Covered
NoError->AccessError 310 Not Covered
NoError->FsmStateError 355 Not Covered
NoError->MacroEccCorrError 343 Not Covered



Branch Coverage for Module : otp_ctrl_dai
Line No.TotalCoveredPercent
Branches 85 0 0.00
TERNARY 171 2 0 0.00
CASE 212 68 0 0.00
IF 656 3 0 0.00
IF 724 4 0 0.00
IF 768 2 0 0.00
IF 771 6 0 0.00

WARNING: The source file /workspace/default/sim-vcs/../src/lowrisc_ip_otp_ctrl_1.0/rtl/otp_ctrl_dai.sv' or '../src/lowrisc_ip_otp_ctrl_1.0/rtl/otp_ctrl_dai.sv was not found/opened, so annotated branch coverage report could not be generated.

LineNo. Expression -1-: 171 ((state_q == IdleSt)) ?

Branches:
-1-StatusTests
1 Not Covered
0 Not Covered


LineNo. Expression -1-: 212 case (state_q) -2-: 222 if (init_req_i) -3-: 224 if (otp_gnt_i) -4-: 236 if (otp_rvalid_i) -5-: 237 if ((!(otp_err_e'(otp_err_i) inside {NoError, MacroEccCorrError}))) -6-: 253 if ((part_init_done_i == {otp_ctrl_reg_pkg::NumPart {1'b1}})) -7-: 262 if (dai_req_i) -8-: 266 case (dai_cmd_i) -9-: 279 if (otp_ctrl_part_pkg::PartInfo[part_idx].secret) -10-: 300 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].read_lock) || (otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest && (otp_addr_o == digest_addr_lut[part_idx])))) -11-: 305 if (otp_gnt_i) -12-: 321 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].read_lock) || (otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest && (otp_addr_o == digest_addr_lut[part_idx])))) -13-: 324 if (otp_rvalid_i) -14-: 327 if ((((!otp_ctrl_part_pkg::PartInfo[part_idx].ecc_fatal) && (otp_err_e'(otp_err_i) == MacroEccUncorrError)) || (otp_err_e'(otp_err_i) inside {NoError, MacroEccCorrError}))) -15-: 331 if ((otp_ctrl_part_pkg::PartInfo[part_idx].secret && (otp_addr_o != digest_addr_lut[part_idx]))) -16-: 342 if ((otp_err_e'(otp_err_i) != NoError)) -17-: 369 if ((scrmbl_mtx_gnt_i && scrmbl_ready_i)) -18-: 381 if (scrmbl_valid_i) -19-: 396 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock) && ((((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == PartOffset)) && (otp_addr_o == digest_addr_lut[part_idx])) || ((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == DaiOffset)) && (otp_addr_o < digest_addr_lut[part_idx]))) || ((otp_ctrl_part_pkg::PartInfo[part_idx].variant != Buffered) && (base_sel_q == DaiOffset))))) -20-: 407 if (otp_gnt_i) -21-: 425 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock) && ((((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == PartOffset)) && (otp_addr_o == digest_addr_lut[part_idx])) || ((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == DaiOffset)) && (otp_addr_o < digest_addr_lut[part_idx]))) || ((otp_ctrl_part_pkg::PartInfo[part_idx].variant != Buffered) && (base_sel_q == DaiOffset))))) -22-: 435 if (otp_rvalid_i) -23-: 437 if ((!(otp_err_e'(otp_err_i) inside {NoError, MacroWriteBlankError}))) -24-: 446 if ((otp_err_e'(otp_err_i) == MacroWriteBlankError)) -25-: 468 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock) && (((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].secret) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == DaiOffset)) && (otp_addr_o < digest_addr_lut[part_idx])))) -26-: 477 if ((scrmbl_mtx_gnt_i && scrmbl_ready_i)) -27-: 493 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock) && (((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].secret) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == DaiOffset)) && (otp_addr_o < digest_addr_lut[part_idx])))) -28-: 499 if (scrmbl_valid_i) -29-: 519 if ((scrmbl_mtx_gnt_i && scrmbl_ready_i)) -30-: 529 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].read_lock) && prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock))) -31-: 533 if (otp_gnt_i) -32-: 550 if (otp_rvalid_i) -33-: 553 if ((!(otp_err_e'(otp_err_i) inside {NoError, MacroEccCorrError}))) -34-: 560 if ((otp_err_e'(otp_err_i) == MacroEccCorrError)) -35-: 575 if ((otp_addr_o == digest_addr_lut[part_idx])) -36-: 577 if ((!cnt[0])) -37-: 579 if (scrmbl_ready_i) -38-: 583 if (scrmbl_ready_i) -39-: 588 if ((!cnt[0])) -40-: 592 if (scrmbl_ready_i) -41-: 605 if (scrmbl_ready_i) -42-: 616 if (scrmbl_ready_i) -43-: 630 if (scrmbl_valid_i) -44-: 640 if ((error_q == NoError))

Branches:
-1--2--3--4--5--6--7--8--9--10--11--12--13--14--15--16--17--18--19--20--21--22--23--24--25--26--27--28--29--30--31--32--33--34--35--36--37--38--39--40--41--42--43--44-StatusTests
ResetSt 1 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ResetSt 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ResetSt 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitOtpSt - - 1 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitOtpSt - - 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitOtpSt - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitPartSt - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitPartSt - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 DaiRead - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 DaiWrite 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 DaiWrite 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 DaiDigest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 default - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadSt - - - - - - - - 1 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadSt - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadSt - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 1 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
DescrSt - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
DescrSt - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
DescrWaitSt - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
DescrWaitSt - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteSt - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteSt - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteSt - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 1 1 1 - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 1 1 0 1 - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 1 1 0 0 - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ScrSt - - - - - - - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - - - - - - - - Not Covered
ScrSt - - - - - - - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - Not Covered
ScrSt - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - Not Covered
ScrWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - - - - - - Not Covered
ScrWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - Not Covered
ScrWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - Not Covered
DigClrSt - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - Not Covered
DigClrSt - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - Not Covered
DigReadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - - - Not Covered
DigReadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - Not Covered
DigReadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - Not Covered
DigReadWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - Not Covered
DigReadWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 1 - - - - - - - - - - Not Covered
DigReadWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 0 - - - - - - - - - - Not Covered
DigReadWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 1 - - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 0 - - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 - 1 - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 - 0 - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 1 - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - 1 - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - 0 - - - - Not Covered
DigPadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - Not Covered
DigPadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - Not Covered
DigFinSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - Not Covered
DigFinSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - Not Covered
DigWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - Not Covered
DigWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - Not Covered
ErrorSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 Not Covered
ErrorSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 Not Covered
default - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered


LineNo. Expression -1-: 656 if ((lc_ctrl_pkg::lc_tx_test_true_loose(escalate_en_i) || cnt_err)) -2-: 659 if ((state_q != ErrorSt))

Branches:
-1--2-StatusTests
1 1 Not Covered
1 0 Not Covered
0 - Not Covered


LineNo. Expression -1-: 724 if (otp_ctrl_part_pkg::PartInfo[part_idx].secret) -2-: 728 if ((otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest && (base_sel_q == PartOffset))) -3-: 732 if (((base_sel_q == DaiOffset) && ({dai_addr_i[(otp_ctrl_reg_pkg::OtpByteAddrWidth - 1):3], 2'b0} == digest_addr_lut[part_idx])))

Branches:
-1--2--3-StatusTests
1 - - Not Covered
0 1 - Not Covered
0 0 1 Not Covered
0 0 0 Not Covered


LineNo. Expression -1-: 768 if ((!rst_ni))

Branches:
-1-StatusTests
1 Not Covered
0 Not Covered


LineNo. Expression -1-: 771 if ((!rst_ni)) -2-: 780 if (data_clr) -3-: 782 if (data_en) -4-: 783 if ((data_sel == ScrmblData)) -5-: 785 if ((data_sel == DaiData))

Branches:
-1--2--3--4--5-StatusTests
1 - - - - Not Covered
0 1 - - - Not Covered
0 0 1 1 - Not Covered
0 0 1 0 1 Not Covered
0 0 1 0 0 Not Covered
0 0 0 - - Not Covered

Line Coverage for Instance : tb.dut.u_otp_ctrl_dai
Line No.TotalCoveredPercent
TOTAL23500.00
CONT_ASSIGN164100.00
CONT_ASSIGN166100.00
CONT_ASSIGN167100.00
CONT_ASSIGN171100.00
ALWAYS17419300.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
CONT_ASSIGN689100.00
ALWAYS7201100.00
CONT_ASSIGN761100.00
CONT_ASSIGN762100.00
ALWAYS768300.00
ALWAYS7711400.00
WARNING: The source file '/workspace/default/sim-vcs/../src/lowrisc_ip_otp_ctrl_1.0/rtl/otp_ctrl_dai.sv' or '../src/lowrisc_ip_otp_ctrl_1.0/rtl/otp_ctrl_dai.sv' was not found, so annotated line coverage report could not be generated.
Line No.CoveredStatements
164 0 1
166 0 1
167 0 1
171 0 1
174 0 1
177 0 1
178 0 1
181 0 1
182 0 1
183 0 1
186 0 1
187 0 1
190 0 1
193 0 1
194 0 1
195 0 1
196 0 1
199 0 1
200 0 1
201 0 1
204 0 1
205 0 1
206 0 1
209 0 1
210 0 1
212 0 1
219 0 1
220 0 1
221 0 1
222 0 1
223 0 1
224 0 1
225 0 1
==> MISSING_ELSE
==> MISSING_ELSE
234 0 1
235 0 1
236 0 1
237 0 1
238 0 1
239 0 1
241 0 1
==> MISSING_ELSE
250 0 1
251 0 1
252 0 1
253 0 1
254 0 1
==> MISSING_ELSE
261 0 1
262 0 1
264 0 1
265 0 1
266 0 1
268 0 1
270 0 1
271 0 1
274 0 1
276 0 1
277 0 1
279 0 1
280 0 1
282 0 1
286 0 1
287 0 1
288 0 1
==> MISSING_ELSE
300 0 1
303 0 1
304 0 1
305 0 1
306 0 1
==> MISSING_ELSE
309 0 1
310 0 1
311 0 1
321 0 1
324 0 1
327 0 1
329 0 1
331 0 1
332 0 1
334 0 1
335 0 1
342 0 1
343 0 1
==> MISSING_ELSE
346 0 1
347 0 1
==> MISSING_ELSE
354 0 1
355 0 1
365 0 1
366 0 1
367 0 1
368 0 1
369 0 1
370 0 1
==> MISSING_ELSE
378 0 1
379 0 1
380 0 1
381 0 1
382 0 1
383 0 1
384 0 1
==> MISSING_ELSE
395 0 1
396 0 1
405 0 1
406 0 1
407 0 1
408 0 1
==> MISSING_ELSE
412 0 1
413 0 1
414 0 1
415 0 1
423 0 1
425 0 1
435 0 1
437 0 1
438 0 1
439 0 1
442 0 1
443 0 1
444 0 1
446 0 1
447 0 1
==> MISSING_ELSE
==> MISSING_ELSE
455 0 1
456 0 1
466 0 1
468 0 1
474 0 1
475 0 1
476 0 1
477 0 1
478 0 1
==> MISSING_ELSE
481 0 1
482 0 1
483 0 1
491 0 1
493 0 1
498 0 1
499 0 1
500 0 1
501 0 1
==> MISSING_ELSE
507 0 1
508 0 1
515 0 1
516 0 1
518 0 1
519 0 1
520 0 1
==> MISSING_ELSE
528 0 1
529 0 1
531 0 1
532 0 1
533 0 1
534 0 1
==> MISSING_ELSE
537 0 1
538 0 1
539 0 1
549 0 1
550 0 1
551 0 1
553 0 1
554 0 1
555 0 1
557 0 1
558 0 1
560 0 1
561 0 1
==> MISSING_ELSE
==> MISSING_ELSE
572 0 1
573 0 1
575 0 1
577 0 1
578 0 1
579 0 1
580 0 1
==> MISSING_ELSE
583 0 1
584 0 1
==> MISSING_ELSE
588 0 1
589 0 1
==> MISSING_ELSE
592 0 1
593 0 1
==> MISSING_ELSE
602 0 1
603 0 1
604 0 1
605 0 1
606 0 1
==> MISSING_ELSE
613 0 1
614 0 1
615 0 1
616 0 1
617 0 1
==> MISSING_ELSE
628 0 1
629 0 1
630 0 1
631 0 1
632 0 1
==> MISSING_ELSE
640 0 1
641 0 1
==> MISSING_ELSE
656 0 1
657 0 1
658 0 1
659 0 1
660 0 1
==> MISSING_ELSE
==> MISSING_ELSE
689 0 8
720 0 1
721 0 1
724 0 1
725 0 1
726 0 1
728 0 1
729 0 1
730 0 1
732 0 1
734 0 1
735 0 1
==> MISSING_ELSE
761 0 1
762 0 1
768 0 3
771 0 1
772 0 1
773 0 1
774 0 1
776 0 1
777 0 1
780 0 1
781 0 1
782 0 1
783 0 1
784 0 1
785 0 1
786 0 1
788 0 1
==> MISSING_ELSE


Cond Coverage for Instance : tb.dut.u_otp_ctrl_dai
TotalCoveredPercent
Conditions8000.00
Logical8000.00
Non-Logical00
Event00

 LINE       171
 EXPRESSION ((state_q == IdleSt) ? data_q : '0)
             ---------1---------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       171
 SUB-EXPRESSION (state_q == IdleSt)
                ---------1---------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       253
 EXPRESSION (part_init_done_i == {otp_ctrl_reg_pkg::NumPart {1'b1}})
            ----------------------------1---------------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       327
 EXPRESSION 
 Number  Term
      1  (((!otp_ctrl_part_pkg::PartInfo[part_idx].ecc_fatal)) && (otp_err_e'(otp_err_i) == MacroEccUncorrError)) || 
      2  (otp_err_e'(otp_err_i) inside {NoError, MacroEccCorrError}))
-1--2-StatusTests
00Not Covered
01Not Covered
10Not Covered

 LINE       327
 SUB-EXPRESSION (((!otp_ctrl_part_pkg::PartInfo[part_idx].ecc_fatal)) && (otp_err_e'(otp_err_i) == MacroEccUncorrError))
                 --------------------------1-------------------------    -----------------------2----------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       327
 SUB-EXPRESSION (otp_err_e'(otp_err_i) == MacroEccUncorrError)
                -----------------------1----------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       331
 EXPRESSION (otp_ctrl_part_pkg::PartInfo[part_idx].secret && (otp_addr_o != digest_addr_lut[part_idx]))
             ----------------------1---------------------    --------------------2--------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       331
 SUB-EXPRESSION (otp_addr_o != digest_addr_lut[part_idx])
                --------------------1--------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       342
 EXPRESSION (otp_err_e'(otp_err_i) != NoError)
            -----------------1----------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       369
 EXPRESSION (scrmbl_mtx_gnt_i && scrmbl_ready_i)
             --------1-------    -------2------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       446
 EXPRESSION (otp_err_e'(otp_err_i) == MacroWriteBlankError)
            -----------------------1-----------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       477
 EXPRESSION (scrmbl_mtx_gnt_i && scrmbl_ready_i)
             --------1-------    -------2------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       519
 EXPRESSION (scrmbl_mtx_gnt_i && scrmbl_ready_i)
             --------1-------    -------2------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       560
 EXPRESSION (otp_err_e'(otp_err_i) == MacroEccCorrError)
            ----------------------1---------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       575
 EXPRESSION (otp_addr_o == digest_addr_lut[part_idx])
            --------------------1--------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       640
 EXPRESSION (error_q == NoError)
            ----------1---------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       659
 EXPRESSION (state_q != ErrorSt)
            ----------1---------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b0) & ({1'b0, dai_addr_i} < gen_part_sel[0].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ----------1----------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b00001000000) & ({1'b0, dai_addr_i} < gen_part_sel[1].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b01101100000) & ({1'b0, dai_addr_i} < gen_part_sel[2].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11010000000) & ({1'b0, dai_addr_i} < gen_part_sel[3].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11011010000) & ({1'b0, dai_addr_i} < gen_part_sel[4].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11011111000) & ({1'b0, dai_addr_i} < gen_part_sel[5].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11101010000) & ({1'b0, dai_addr_i} < gen_part_sel[6].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       689
 EXPRESSION ((dai_addr_i >= 11'b11110101000) & ({1'b0, dai_addr_i} < gen_part_sel[7].PartEndInt[otp_ctrl_reg_pkg::OtpByteAddrWidth:0]))
             ---------------1---------------   -------------------------------------------2-------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       728
 EXPRESSION (otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest && (base_sel_q == PartOffset))
             -----------------------1-----------------------    -------------2------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       728
 SUB-EXPRESSION (base_sel_q == PartOffset)
                -------------1------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       732
 EXPRESSION ((base_sel_q == DaiOffset) && ({dai_addr_i[(otp_ctrl_reg_pkg::OtpByteAddrWidth - 1):3], 2'b0} == digest_addr_lut[part_idx]))
             ------------1------------    ----------------------------------------------2----------------------------------------------
-1--2-StatusTests
01Not Covered
10Not Covered
11Not Covered

 LINE       732
 SUB-EXPRESSION (base_sel_q == DaiOffset)
                ------------1------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       732
 SUB-EXPRESSION ({dai_addr_i[(otp_ctrl_reg_pkg::OtpByteAddrWidth - 1):3], 2'b0} == digest_addr_lut[part_idx])
                ----------------------------------------------1----------------------------------------------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       783
 EXPRESSION (data_sel == ScrmblData)
            ------------1-----------
-1-StatusTests
0Not Covered
1Not Covered

 LINE       785
 EXPRESSION (data_sel == DaiData)
            ----------1----------
-1-StatusTests
0Not Covered
1Not Covered

FSM Coverage for Instance : tb.dut.u_otp_ctrl_dai
Summary for FSM :: state_q
TotalCoveredPercent
States 20 0 0.00 (Not included in score)
Transitions 48 0 0.00
Sequences 0 0

State, Transition and Sequence Details for FSM :: state_q
statesLine No.CoveredTests
DescrSt 332 Not Covered
DescrWaitSt 370 Not Covered
DigClrSt 286 Not Covered
DigFinSt 580 Not Covered
DigPadSt 584 Not Covered
DigReadSt 520 Not Covered
DigReadWaitSt 534 Not Covered
DigSt 558 Not Covered
DigWaitSt 617 Not Covered
ErrorSt 238 Not Covered
IdleSt 254 Not Covered
InitOtpSt 225 Not Covered
InitPartSt 241 Not Covered
ReadSt 268 Not Covered
ReadWaitSt 306 Not Covered
ResetSt 218 Not Covered
ScrSt 280 Not Covered
ScrWaitSt 478 Not Covered
WriteSt 282 Not Covered
WriteWaitSt 408 Not Covered


transitionsLine No.CoveredTests
DescrSt->DescrWaitSt 370 Not Covered
DescrSt->ErrorSt 657 Not Covered
DescrWaitSt->ErrorSt 657 Not Covered
DescrWaitSt->IdleSt 382 Not Covered
DigClrSt->DigReadSt 520 Not Covered
DigClrSt->ErrorSt 657 Not Covered
DigFinSt->DigWaitSt 617 Not Covered
DigFinSt->ErrorSt 657 Not Covered
DigPadSt->DigFinSt 606 Not Covered
DigPadSt->ErrorSt 657 Not Covered
DigReadSt->DigReadWaitSt 534 Not Covered
DigReadSt->ErrorSt 657 Not Covered
DigReadSt->IdleSt 537 Not Covered
DigReadWaitSt->DigSt 558 Not Covered
DigReadWaitSt->ErrorSt 554 Not Covered
DigSt->DigFinSt 580 Not Covered
DigSt->DigPadSt 584 Not Covered
DigSt->DigReadSt 593 Not Covered
DigSt->ErrorSt 657 Not Covered
DigWaitSt->ErrorSt 657 Not Covered
DigWaitSt->WriteSt 631 Not Covered
IdleSt->DigClrSt 286 Not Covered
IdleSt->ErrorSt 657 Not Covered
IdleSt->ReadSt 268 Not Covered
IdleSt->ScrSt 280 Not Covered
IdleSt->WriteSt 282 Not Covered
InitOtpSt->ErrorSt 238 Not Covered
InitOtpSt->InitPartSt 241 Not Covered
InitPartSt->ErrorSt 657 Not Covered
InitPartSt->IdleSt 254 Not Covered
ReadSt->ErrorSt 657 Not Covered
ReadSt->IdleSt 309 Not Covered
ReadSt->ReadWaitSt 306 Not Covered
ReadWaitSt->DescrSt 332 Not Covered
ReadWaitSt->ErrorSt 346 Not Covered
ReadWaitSt->IdleSt 334 Not Covered
ResetSt->ErrorSt 657 Not Covered
ResetSt->InitOtpSt 225 Not Covered
ScrSt->ErrorSt 657 Not Covered
ScrSt->IdleSt 481 Not Covered
ScrSt->ScrWaitSt 478 Not Covered
ScrWaitSt->ErrorSt 507 Not Covered
ScrWaitSt->WriteSt 500 Not Covered
WriteSt->ErrorSt 657 Not Covered
WriteSt->IdleSt 413 Not Covered
WriteSt->WriteWaitSt 408 Not Covered
WriteWaitSt->ErrorSt 438 Not Covered
WriteWaitSt->IdleSt 443 Not Covered


Summary for FSM :: error_q
TotalCoveredPercent
States 4 0 0.00 (Not included in score)
Transitions 9 0 0.00
Sequences 0 0

State, Transition and Sequence Details for FSM :: error_q
statesLine No.CoveredTests
AccessError 310 Not Covered
FsmStateError 355 Not Covered
MacroEccCorrError 343 Not Covered
NoError 264 Not Covered


transitionsLine No.CoveredTestsExclude Annotation
AccessError->FsmStateError 355 Not Covered
AccessError->MacroEccCorrError 343 Excluded VC_COV_UNR
AccessError->NoError 264 Not Covered
FsmStateError->AccessError 310 Excluded VC_COV_UNR
FsmStateError->MacroEccCorrError 343 Excluded VC_COV_UNR
FsmStateError->NoError 264 Not Covered
MacroEccCorrError->AccessError 310 Not Covered
MacroEccCorrError->FsmStateError 355 Not Covered
MacroEccCorrError->NoError 264 Not Covered
NoError->AccessError 310 Not Covered
NoError->FsmStateError 355 Not Covered
NoError->MacroEccCorrError 343 Not Covered



Branch Coverage for Instance : tb.dut.u_otp_ctrl_dai
Line No.TotalCoveredPercent
Branches 85 0 0.00
TERNARY 171 2 0 0.00
CASE 212 68 0 0.00
IF 656 3 0 0.00
IF 724 4 0 0.00
IF 768 2 0 0.00
IF 771 6 0 0.00

WARNING: The source file /workspace/default/sim-vcs/../src/lowrisc_ip_otp_ctrl_1.0/rtl/otp_ctrl_dai.sv' or '../src/lowrisc_ip_otp_ctrl_1.0/rtl/otp_ctrl_dai.sv was not found/opened, so annotated branch coverage report could not be generated.

LineNo. Expression -1-: 171 ((state_q == IdleSt)) ?

Branches:
-1-StatusTests
1 Not Covered
0 Not Covered


LineNo. Expression -1-: 212 case (state_q) -2-: 222 if (init_req_i) -3-: 224 if (otp_gnt_i) -4-: 236 if (otp_rvalid_i) -5-: 237 if ((!(otp_err_e'(otp_err_i) inside {NoError, MacroEccCorrError}))) -6-: 253 if ((part_init_done_i == {otp_ctrl_reg_pkg::NumPart {1'b1}})) -7-: 262 if (dai_req_i) -8-: 266 case (dai_cmd_i) -9-: 279 if (otp_ctrl_part_pkg::PartInfo[part_idx].secret) -10-: 300 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].read_lock) || (otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest && (otp_addr_o == digest_addr_lut[part_idx])))) -11-: 305 if (otp_gnt_i) -12-: 321 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].read_lock) || (otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest && (otp_addr_o == digest_addr_lut[part_idx])))) -13-: 324 if (otp_rvalid_i) -14-: 327 if ((((!otp_ctrl_part_pkg::PartInfo[part_idx].ecc_fatal) && (otp_err_e'(otp_err_i) == MacroEccUncorrError)) || (otp_err_e'(otp_err_i) inside {NoError, MacroEccCorrError}))) -15-: 331 if ((otp_ctrl_part_pkg::PartInfo[part_idx].secret && (otp_addr_o != digest_addr_lut[part_idx]))) -16-: 342 if ((otp_err_e'(otp_err_i) != NoError)) -17-: 369 if ((scrmbl_mtx_gnt_i && scrmbl_ready_i)) -18-: 381 if (scrmbl_valid_i) -19-: 396 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock) && ((((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == PartOffset)) && (otp_addr_o == digest_addr_lut[part_idx])) || ((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == DaiOffset)) && (otp_addr_o < digest_addr_lut[part_idx]))) || ((otp_ctrl_part_pkg::PartInfo[part_idx].variant != Buffered) && (base_sel_q == DaiOffset))))) -20-: 407 if (otp_gnt_i) -21-: 425 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock) && ((((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == PartOffset)) && (otp_addr_o == digest_addr_lut[part_idx])) || ((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == DaiOffset)) && (otp_addr_o < digest_addr_lut[part_idx]))) || ((otp_ctrl_part_pkg::PartInfo[part_idx].variant != Buffered) && (base_sel_q == DaiOffset))))) -22-: 435 if (otp_rvalid_i) -23-: 437 if ((!(otp_err_e'(otp_err_i) inside {NoError, MacroWriteBlankError}))) -24-: 446 if ((otp_err_e'(otp_err_i) == MacroWriteBlankError)) -25-: 468 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock) && (((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].secret) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == DaiOffset)) && (otp_addr_o < digest_addr_lut[part_idx])))) -26-: 477 if ((scrmbl_mtx_gnt_i && scrmbl_ready_i)) -27-: 493 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock) && (((((otp_ctrl_part_pkg::PartInfo[part_idx].variant == Buffered) && otp_ctrl_part_pkg::PartInfo[part_idx].secret) && otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest) && (base_sel_q == DaiOffset)) && (otp_addr_o < digest_addr_lut[part_idx])))) -28-: 499 if (scrmbl_valid_i) -29-: 519 if ((scrmbl_mtx_gnt_i && scrmbl_ready_i)) -30-: 529 if ((prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].read_lock) && prim_mubi_pkg::mubi8_test_false_strict(part_access_i[part_idx].write_lock))) -31-: 533 if (otp_gnt_i) -32-: 550 if (otp_rvalid_i) -33-: 553 if ((!(otp_err_e'(otp_err_i) inside {NoError, MacroEccCorrError}))) -34-: 560 if ((otp_err_e'(otp_err_i) == MacroEccCorrError)) -35-: 575 if ((otp_addr_o == digest_addr_lut[part_idx])) -36-: 577 if ((!cnt[0])) -37-: 579 if (scrmbl_ready_i) -38-: 583 if (scrmbl_ready_i) -39-: 588 if ((!cnt[0])) -40-: 592 if (scrmbl_ready_i) -41-: 605 if (scrmbl_ready_i) -42-: 616 if (scrmbl_ready_i) -43-: 630 if (scrmbl_valid_i) -44-: 640 if ((error_q == NoError))

Branches:
-1--2--3--4--5--6--7--8--9--10--11--12--13--14--15--16--17--18--19--20--21--22--23--24--25--26--27--28--29--30--31--32--33--34--35--36--37--38--39--40--41--42--43--44-StatusTests
ResetSt 1 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ResetSt 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ResetSt 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitOtpSt - - 1 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitOtpSt - - 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitOtpSt - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitPartSt - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
InitPartSt - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 DaiRead - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 DaiWrite 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 DaiWrite 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 DaiDigest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 1 default - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
IdleSt - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadSt - - - - - - - - 1 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadSt - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadSt - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 1 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ReadWaitSt - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
DescrSt - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
DescrSt - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
DescrWaitSt - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
DescrWaitSt - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteSt - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteSt - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteSt - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 1 1 1 - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 1 1 0 1 - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 1 1 0 0 - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - - - - - Not Covered
WriteWaitSt - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - Not Covered
ScrSt - - - - - - - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - - - - - - - - Not Covered
ScrSt - - - - - - - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - - - Not Covered
ScrSt - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - Not Covered
ScrWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - - - - - - Not Covered
ScrWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - - - - Not Covered
ScrWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - Not Covered
DigClrSt - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - Not Covered
DigClrSt - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - Not Covered
DigReadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - - - Not Covered
DigReadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 - - - - - - - - - - - - - Not Covered
DigReadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - Not Covered
DigReadWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 - - - - - - - - - - - Not Covered
DigReadWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 1 - - - - - - - - - - Not Covered
DigReadWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 0 - - - - - - - - - - Not Covered
DigReadWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 1 - - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 1 0 - - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 - 1 - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 0 - 0 - - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 1 - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - 0 - - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - 1 - - - - Not Covered
DigSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - 0 - - - - Not Covered
DigPadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - Not Covered
DigPadSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - Not Covered
DigFinSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - Not Covered
DigFinSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - Not Covered
DigWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - Not Covered
DigWaitSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - Not Covered
ErrorSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 Not Covered
ErrorSt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 Not Covered
default - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Not Covered


LineNo. Expression -1-: 656 if ((lc_ctrl_pkg::lc_tx_test_true_loose(escalate_en_i) || cnt_err)) -2-: 659 if ((state_q != ErrorSt))

Branches:
-1--2-StatusTests
1 1 Not Covered
1 0 Not Covered
0 - Not Covered


LineNo. Expression -1-: 724 if (otp_ctrl_part_pkg::PartInfo[part_idx].secret) -2-: 728 if ((otp_ctrl_part_pkg::PartInfo[part_idx].hw_digest && (base_sel_q == PartOffset))) -3-: 732 if (((base_sel_q == DaiOffset) && ({dai_addr_i[(otp_ctrl_reg_pkg::OtpByteAddrWidth - 1):3], 2'b0} == digest_addr_lut[part_idx])))

Branches:
-1--2--3-StatusTests
1 - - Not Covered
0 1 - Not Covered
0 0 1 Not Covered
0 0 0 Not Covered


LineNo. Expression -1-: 768 if ((!rst_ni))

Branches:
-1-StatusTests
1 Not Covered
0 Not Covered


LineNo. Expression -1-: 771 if ((!rst_ni)) -2-: 780 if (data_clr) -3-: 782 if (data_en) -4-: 783 if ((data_sel == ScrmblData)) -5-: 785 if ((data_sel == DaiData))

Branches:
-1--2--3--4--5-StatusTests
1 - - - - Not Covered
0 1 - - - Not Covered
0 0 1 1 - Not Covered
0 0 1 0 1 Not Covered
0 0 1 0 0 Not Covered
0 0 0 - - Not Covered

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