Line Coverage for Module : 
lc_ctrl_fsm
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 179 | 175 | 97.77 | 
| CONT_ASSIGN | 126 | 1 | 1 | 100.00 | 
| ALWAYS | 146 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 171 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 178 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 179 | 1 | 1 | 100.00 | 
| ALWAYS | 204 | 114 | 110 | 96.49 | 
| ALWAYS | 584 | 3 | 3 | 100.00 | 
| ALWAYS | 585 | 3 | 3 | 100.00 | 
| ALWAYS | 586 | 3 | 3 | 100.00 | 
| ALWAYS | 589 | 3 | 3 | 100.00 | 
| ALWAYS | 608 | 5 | 5 | 100.00 | 
| CONT_ASSIGN | 619 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 666 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 667 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 668 | 1 | 1 | 100.00 | 
| ALWAYS | 677 | 15 | 15 | 100.00 | 
| ALWAYS | 712 | 14 | 14 | 100.00 | 
| CONT_ASSIGN | 732 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 736 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 740 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 742 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 749 | 1 | 1 | 100.00 | 
| ALWAYS | 882 | 3 | 3 | 100.00 | 
Click here to see the source line report.
Cond Coverage for Module : 
lc_ctrl_fsm
 | Total | Covered | Percent | 
| Conditions | 92 | 83 | 90.22 | 
| Logical | 92 | 83 | 90.22 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       251
 EXPRESSION (init_req_i && lc_state_valid_q)
             -----1----    --------2-------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T13,T15,T43 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       284
 EXPRESSION (lc_state_q == LcStScrap)
            ------------1------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T44,T45,T46 | 
 LINE       293
 EXPRESSION (SecVolatileRawUnlockEn && volatile_raw_unlock_i && trans_cmd_i)
             -----------1----------    ----------2----------    -----3-----
| -1- | -2- | -3- | Status | Tests |                       
| - | 0 | 1 | Covered | T1,T3,T4 | 
| - | 1 | 0 | Covered | T1,T6,T7 | 
| - | 1 | 1 | Covered | T1,T31,T32 | 
 LINE       295
 EXPRESSION ((lc_state_q == LcStRaw) && (trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStTestUnlocked0}}) && ((!trans_invalid_error_o)))
             -----------1-----------    ----------------------------------------2---------------------------------------    -------------3------------
| -1- | -2- | -3- | Status | Tests |                       
| 0 | 1 | 1 | Not Covered |  | 
| 1 | 0 | 1 | Not Covered |  | 
| 1 | 1 | 0 | Not Covered |  | 
| 1 | 1 | 1 | Covered | T1,T31,T32 | 
 LINE       295
 SUB-EXPRESSION (lc_state_q == LcStRaw)
                -----------1-----------
| -1- | Status | Tests |                       
| 0 | Covered | T32,T33,T34 | 
| 1 | Covered | T1,T31,T32 | 
 LINE       295
 SUB-EXPRESSION (trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStTestUnlocked0}})
                ----------------------------------------1---------------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T32,T33,T34 | 
| 1 | Covered | T1,T31,T32 | 
 LINE       299
 EXPRESSION (unhashed_token_i == lc_ctrl_state_pkg::RndCnstRawUnlockTokenHashed)
            ----------------------------------1---------------------------------
| -1- | Status | Tests |                       
| 0 | Not Covered |  | 
| 1 | Covered | T1,T31,T32 | 
 LINE       305
 EXPRESSION ((lc_cnt_q == LcCnt0) ? LcCnt1 : lc_cnt_q)
             ----------1---------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T31,T32 | 
| 1 | Covered | T54,T55 | 
 LINE       305
 SUB-EXPRESSION (lc_cnt_q == LcCnt0)
                ----------1---------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T31,T32 | 
| 1 | Covered | T54,T55 | 
 LINE       411
 EXPRESSION (lc_clk_byp_req_o != lc_clk_byp_ack[1])
            -------------------1-------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T4 | 
| 1 | Covered | T17,T38,T39 | 
 LINE       452
 EXPRESSION ((hashed_token_i == hashed_token_mux) && ((!token_hash_err_i)) && ((&hashed_token_valid_mux)))
             ------------------1-----------------    ----------2----------    -------------3-------------
| -1- | -2- | -3- | Status | Tests |                       
| 0 | 1 | 1 | Covered | T37,T35,T38 | 
| 1 | 0 | 1 | Covered | T38,T39,T42 | 
| 1 | 1 | 0 | Not Covered |  | 
| 1 | 1 | 1 | Covered | T1,T3,T5 | 
 LINE       452
 SUB-EXPRESSION (hashed_token_i == hashed_token_mux)
                ------------------1-----------------
| -1- | Status | Tests |                       
| 0 | Covered | T17,T37,T35 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       466
 EXPRESSION (trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}})
            -----------------------------------1----------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T5,T11,T14 | 
 LINE       493
 EXPRESSION ((hashed_token_i == hashed_token_mux) && ((!token_hash_err_i)) && ((&hashed_token_valid_mux)))
             ------------------1-----------------    ----------2----------    -------------3-------------
| -1- | -2- | -3- | Status | Tests |                       
| 0 | 1 | 1 | Not Covered |  | 
| 1 | 0 | 1 | Not Covered |  | 
| 1 | 1 | 0 | Not Covered |  | 
| 1 | 1 | 1 | Covered | T1,T3,T5 | 
 LINE       493
 SUB-EXPRESSION (hashed_token_i == hashed_token_mux)
                ------------------1-----------------
| -1- | Status | Tests |                       
| 0 | Not Covered |  | 
| 1 | Covered | T1,T3,T5 | 
 LINE       496
 EXPRESSION (fsm_state_q == TokenCheck1St)
            ---------------1--------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       524
 EXPRESSION (lc_clk_byp_req_o != lc_clk_byp_ack[2])
            -------------------1-------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T48,T49,T50 | 
 LINE       529
 EXPRESSION 
 Number  Term
      1  ((trans_target_i != {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}}) && ((lc_flash_rma_req_o != Off) || (lc_flash_rma_ack_buf[2] != Off))) || 
      2  ((trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}}) && ((lc_flash_rma_req_o != On) || (lc_flash_rma_ack_buf[2] != On))))
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T3,T5 | 
| 0 | 1 | Covered | T17,T56,T57 | 
| 1 | 0 | Covered | T42,T51,T58 | 
 LINE       529
 SUB-EXPRESSION ((trans_target_i != {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}}) && ((lc_flash_rma_req_o != Off) || (lc_flash_rma_ack_buf[2] != Off)))
                 -----------------------------------1----------------------------------    --------------------------------2--------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T5,T11,T14 | 
| 1 | 0 | Covered | T1,T3,T5 | 
| 1 | 1 | Covered | T42,T51,T58 | 
 LINE       529
 SUB-EXPRESSION (trans_target_i != {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}})
                -----------------------------------1----------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T5,T11,T14 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       529
 SUB-EXPRESSION ((lc_flash_rma_req_o != Off) || (lc_flash_rma_ack_buf[2] != Off))
                 -------------1-------------    ----------------2---------------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T3,T5 | 
| 0 | 1 | Covered | T42,T51,T58 | 
| 1 | 0 | Covered | T59 | 
 LINE       529
 SUB-EXPRESSION (lc_flash_rma_req_o != Off)
                -------------1-------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T5,T11,T14 | 
 LINE       529
 SUB-EXPRESSION (lc_flash_rma_ack_buf[2] != Off)
                ----------------1---------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T5,T11,T14 | 
 LINE       529
 SUB-EXPRESSION ((trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}}) && ((lc_flash_rma_req_o != On) || (lc_flash_rma_ack_buf[2] != On)))
                 -----------------------------------1----------------------------------    -------------------------------2-------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T3,T5 | 
| 1 | 0 | Covered | T5,T11,T14 | 
| 1 | 1 | Covered | T17,T56,T57 | 
 LINE       529
 SUB-EXPRESSION (trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}})
                -----------------------------------1----------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T5,T11,T14 | 
 LINE       529
 SUB-EXPRESSION ((lc_flash_rma_req_o != On) || (lc_flash_rma_ack_buf[2] != On))
                 -------------1------------    ---------------2---------------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T5,T11,T14 | 
| 0 | 1 | Covered | T17,T56,T57 | 
| 1 | 0 | Covered | T58 | 
 LINE       529
 SUB-EXPRESSION (lc_flash_rma_req_o != On)
                -------------1------------
| -1- | Status | Tests |                       
| 0 | Covered | T5,T11,T14 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       529
 SUB-EXPRESSION (lc_flash_rma_ack_buf[2] != On)
                ---------------1---------------
| -1- | Status | Tests |                       
| 0 | Covered | T5,T11,T14 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       567
 EXPRESSION (esc_scrap_state0_i || esc_scrap_state1_i)
             ---------1--------    ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T4,T10,T13 | 
| 1 | 0 | Covered | T4,T10,T13 | 
 LINE       574
 EXPRESSION ((((|state_invalid_error)) | token_if_fsm_err_i) && (fsm_state_q != EscalateSt))
             -----------------------1-----------------------    -------------2-------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T15,T60,T21 | 
| 1 | 1 | Covered | T13,T15,T17 | 
 LINE       574
 SUB-EXPRESSION (((|state_invalid_error)) | token_if_fsm_err_i)
                 ------------1-----------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T15,T60,T21 | 
| 1 | 0 | Covered | T13,T15,T17 | 
 LINE       574
 SUB-EXPRESSION (fsm_state_q != EscalateSt)
                -------------1-------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T10,T13 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       612
 SUB-EXPRESSION (set_strap_en_override || gen_strap_delay_regs.strap_en_override_q[0])
                 ----------1----------    ---------------------2---------------------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T1,T31,T32 | 
| 1 | 0 | Covered | T1,T31,T32 | 
 LINE       732
 EXPRESSION 
 Number  Term
      1  ((int'(dec_lc_state_o[0]) < lc_ctrl_state_pkg::NumLcStates) && (int'(trans_target_i[0]) < lc_ctrl_state_pkg::NumLcStates)) ? lc_ctrl_pkg::TransTokenIdxMatrix[dec_lc_state_o[0]][trans_target_i[0]] : InvalidTokenIdx)
| -1- | Status | Tests |                       
| 0 | Unreachable | T1,T2,T3 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       732
 SUB-EXPRESSION ((int'(dec_lc_state_o[0]) < lc_ctrl_state_pkg::NumLcStates) && (int'(trans_target_i[0]) < lc_ctrl_state_pkg::NumLcStates))
                 -----------------------------1----------------------------    -----------------------------2----------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable | T1,T2,T3 | 
| 1 | 0 | Unreachable | T6,T7,T8 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       736
 EXPRESSION 
 Number  Term
      1  ((int'(dec_lc_state_o[1]) < lc_ctrl_state_pkg::NumLcStates) && (int'(trans_target_i[1]) < lc_ctrl_state_pkg::NumLcStates)) ? lc_ctrl_pkg::TransTokenIdxMatrix[dec_lc_state_o[1]][trans_target_i[1]] : InvalidTokenIdx)
| -1- | Status | Tests |                       
| 0 | Unreachable | T1,T2,T3 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       736
 SUB-EXPRESSION ((int'(dec_lc_state_o[1]) < lc_ctrl_state_pkg::NumLcStates) && (int'(trans_target_i[1]) < lc_ctrl_state_pkg::NumLcStates))
                 -----------------------------1----------------------------    -----------------------------2----------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable | T1,T2,T3 | 
| 1 | 0 | Unreachable | T6,T61,T9 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       749
 EXPRESSION (trans_invalid_error || (token_idx0 != token_idx1))
             ---------1---------    -------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T6,T35,T8 | 
| 1 | 0 | Covered | T38,T39,T42 | 
 LINE       749
 SUB-EXPRESSION (token_idx0 != token_idx1)
                -------------1------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T6,T35,T8 | 
FSM Coverage for Module : 
lc_ctrl_fsm
Summary for FSM :: fsm_state_q
 | Total | Covered | Percent |  | 
| States | 
15 | 
15 | 
100.00 | 
(Not included in score) | 
| Transitions | 
47 | 
34 | 
72.34  | 
 | 
| Sequences | 
0 | 
0 | 
 | 
 | 
State, Transition and Sequence Details for FSM :: fsm_state_q
| states | Line No. | Covered | Tests | 
| ClkMuxSt | 
327 | 
Covered | 
T1,T3,T4 | 
| CntIncrSt | 
385 | 
Covered | 
T1,T3,T4 | 
| CntProgSt | 
401 | 
Covered | 
T1,T3,T4 | 
| EscalateSt | 
568 | 
Covered | 
T4,T10,T13 | 
| FlashRmaSt | 
455 | 
Covered | 
T1,T3,T5 | 
| IdleSt | 
252 | 
Covered | 
T1,T2,T3 | 
| InvalidSt | 
575 | 
Covered | 
T13,T15,T17 | 
| PostTransSt | 
317 | 
Covered | 
T1,T3,T4 | 
| ResetSt | 
246 | 
Covered | 
T1,T2,T3 | 
| ScrapSt | 
285 | 
Covered | 
T44,T45,T46 | 
| TokenCheck0St | 
469 | 
Covered | 
T1,T3,T5 | 
| TokenCheck1St | 
501 | 
Covered | 
T1,T3,T5 | 
| TokenHashSt | 
434 | 
Covered | 
T1,T3,T5 | 
| TransCheckSt | 
423 | 
Covered | 
T1,T3,T5 | 
| TransProgSt | 
499 | 
Covered | 
T1,T3,T5 | 
| transitions | Line No. | Covered | Tests | 
| ClkMuxSt->CntIncrSt | 
385 | 
Covered | 
T1,T3,T4 | 
| ClkMuxSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
| ClkMuxSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| CntIncrSt->CntProgSt | 
401 | 
Covered | 
T1,T3,T4 | 
| CntIncrSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
| CntIncrSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| CntIncrSt->PostTransSt | 
399 | 
Covered | 
T38,T39,T42 | 
| CntProgSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
| CntProgSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| CntProgSt->PostTransSt | 
412 | 
Covered | 
T4,T10,T16 | 
| CntProgSt->TransCheckSt | 
423 | 
Covered | 
T1,T3,T5 | 
| EscalateSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| FlashRmaSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
| FlashRmaSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| FlashRmaSt->TokenCheck0St | 
469 | 
Covered | 
T1,T3,T5 | 
| IdleSt->ClkMuxSt | 
327 | 
Covered | 
T1,T3,T4 | 
| IdleSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
| IdleSt->InvalidSt | 
575 | 
Covered | 
T13,T15,T17 | 
| IdleSt->PostTransSt | 
317 | 
Covered | 
T32,T33,T34 | 
| IdleSt->ScrapSt | 
285 | 
Covered | 
T44,T45,T46 | 
| InvalidSt->EscalateSt | 
568 | 
Covered | 
T13,T15,T17 | 
| PostTransSt->EscalateSt | 
568 | 
Covered | 
T4,T10,T14 | 
| PostTransSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| ResetSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
| ResetSt->IdleSt | 
252 | 
Covered | 
T1,T2,T3 | 
| ResetSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| ScrapSt->EscalateSt | 
568 | 
Covered | 
T44,T63,T64 | 
| ScrapSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| TokenCheck0St->EscalateSt | 
568 | 
Covered | 
T44,T65,T66 | 
| TokenCheck0St->InvalidSt | 
575 | 
Not Covered | 
 | 
| TokenCheck0St->PostTransSt | 
483 | 
Covered | 
T17,T35,T38 | 
| TokenCheck0St->TokenCheck1St | 
501 | 
Covered | 
T1,T3,T5 | 
| TokenCheck1St->EscalateSt | 
568 | 
Covered | 
T62,T63,T64 | 
| TokenCheck1St->InvalidSt | 
575 | 
Not Covered | 
 | 
| TokenCheck1St->PostTransSt | 
483 | 
Covered | 
T17,T35,T39 | 
| TokenCheck1St->TransProgSt | 
499 | 
Covered | 
T1,T3,T5 | 
| TokenHashSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
| TokenHashSt->FlashRmaSt | 
455 | 
Covered | 
T1,T3,T5 | 
| TokenHashSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| TokenHashSt->PostTransSt | 
457 | 
Covered | 
T17,T37,T35 | 
| TransCheckSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T64 | 
| TransCheckSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| TransCheckSt->PostTransSt | 
432 | 
Covered | 
T35,T38,T39 | 
| TransCheckSt->TokenHashSt | 
434 | 
Covered | 
T1,T3,T5 | 
| TransProgSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
| TransProgSt->InvalidSt | 
575 | 
Not Covered | 
 | 
| TransProgSt->PostTransSt | 
525 | 
Covered | 
T1,T3,T5 | 
Summary for FSM :: lc_state_q
 | Total | Covered | Percent |  | 
| States | 
21 | 
2 | 
9.52   | 
(Not included in score) | 
| Transitions | 
1 | 
1 | 
100.00 | 
 | 
| Sequences | 
0 | 
0 | 
 | 
 | 
State, Transition and Sequence Details for FSM :: lc_state_q
| states | Line No. | Covered | Tests | 
| LcStDev | 
92 | 
Not Covered | 
 | 
| LcStProd | 
93 | 
Not Covered | 
 | 
| LcStProdEnd | 
94 | 
Not Covered | 
 | 
| LcStRaw | 
295 | 
Covered | 
T1,T11,T23 | 
| LcStRma | 
333 | 
Not Covered | 
 | 
| LcStScrap | 
284 | 
Not Covered | 
 | 
| LcStTestLocked0 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked1 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked2 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked3 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked4 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked5 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked6 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked0 | 
301 | 
Covered | 
T1,T3,T4 | 
| LcStTestUnlocked1 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked2 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked3 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked4 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked5 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked6 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked7 | 
333 | 
Not Covered | 
 | 
| transitions | Line No. | Covered | Tests | 
| LcStRaw->LcStTestUnlocked0 | 
301 | 
Covered | 
T1,T14,T17 | 
Summary for FSM :: lc_cnt_q
 | Total | Covered | Percent |  | 
| States | 
25 | 
5 | 
20.00  | 
(Not included in score) | 
| Transitions | 
1 | 
1 | 
100.00 | 
 | 
| Sequences | 
0 | 
0 | 
 | 
 | 
State, Transition and Sequence Details for FSM :: lc_cnt_q
| states | Line No. | Covered | Tests | 
| LcCnt0 | 
305 | 
Covered | 
T14,T35,T36 | 
| LcCnt1 | 
305 | 
Covered | 
T4,T10,T14 | 
| LcCnt10 | 
112 | 
Not Covered | 
 | 
| LcCnt11 | 
113 | 
Not Covered | 
 | 
| LcCnt12 | 
114 | 
Not Covered | 
 | 
| LcCnt13 | 
115 | 
Not Covered | 
 | 
| LcCnt14 | 
116 | 
Not Covered | 
 | 
| LcCnt15 | 
117 | 
Not Covered | 
 | 
| LcCnt16 | 
118 | 
Not Covered | 
 | 
| LcCnt17 | 
119 | 
Not Covered | 
 | 
| LcCnt18 | 
120 | 
Not Covered | 
 | 
| LcCnt19 | 
121 | 
Not Covered | 
 | 
| LcCnt2 | 
104 | 
Covered | 
T3,T4,T13 | 
| LcCnt20 | 
122 | 
Not Covered | 
 | 
| LcCnt21 | 
123 | 
Not Covered | 
 | 
| LcCnt22 | 
124 | 
Not Covered | 
 | 
| LcCnt23 | 
125 | 
Not Covered | 
 | 
| LcCnt24 | 
126 | 
Not Covered | 
 | 
| LcCnt3 | 
105 | 
Covered | 
T3,T14,T15 | 
| LcCnt4 | 
106 | 
Covered | 
T3,T14,T15 | 
| LcCnt5 | 
107 | 
Not Covered | 
 | 
| LcCnt6 | 
108 | 
Not Covered | 
 | 
| LcCnt7 | 
109 | 
Not Covered | 
 | 
| LcCnt8 | 
110 | 
Not Covered | 
 | 
| LcCnt9 | 
111 | 
Not Covered | 
 | 
| transitions | Line No. | Covered | Tests | 
| LcCnt0->LcCnt1 | 
305 | 
Covered | 
T42,T67,T68 | 
Branch Coverage for Module : 
lc_ctrl_fsm
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
75 | 
73 | 
97.33  | 
| TERNARY | 
732 | 
1 | 
1 | 
100.00 | 
| TERNARY | 
736 | 
1 | 
1 | 
100.00 | 
| CASE | 
242 | 
46 | 
44 | 
95.65  | 
| IF | 
567 | 
3 | 
3 | 
100.00 | 
| IF | 
584 | 
2 | 
2 | 
100.00 | 
| IF | 
585 | 
2 | 
2 | 
100.00 | 
| IF | 
586 | 
2 | 
2 | 
100.00 | 
| IF | 
589 | 
2 | 
2 | 
100.00 | 
| IF | 
684 | 
2 | 
2 | 
100.00 | 
| IF | 
687 | 
2 | 
2 | 
100.00 | 
| IF | 
691 | 
2 | 
2 | 
100.00 | 
| IF | 
694 | 
2 | 
2 | 
100.00 | 
| IF | 
698 | 
2 | 
2 | 
100.00 | 
| IF | 
701 | 
2 | 
2 | 
100.00 | 
| IF | 
882 | 
2 | 
2 | 
100.00 | 
| IF | 
608 | 
2 | 
2 | 
100.00 | 
732          assign token_idx0 = (int'(dec_lc_state_o[0]) < NumLcStates &&
                                                                          
733                               int'(trans_target_i[0]) < NumLcStates) ?
                                                                         -1-  
                                                                         ==>  
                                                                         ==> (Unreachable)  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Unreachable | 
T1,T2,T3 | 
736          assign token_idx1 = (int'(dec_lc_state_o[1]) < NumLcStates &&
                                                                          
737                               int'(trans_target_i[1]) < NumLcStates) ?
                                                                         -1-  
                                                                         ==>  
                                                                         ==> (Unreachable)  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Unreachable | 
T1,T2,T3 | 
242            unique case (fsm_state_q)
                      -1-  
243              ///////////////////////////////////////////////////////////////////
244              // Wait here until OTP has initialized and the
245              // power manager sends an initialization request.
246              ResetSt: begin
247                init_done_o = 1'b0;
248                lc_clk_byp_req   = Off;
249                lc_flash_rma_req = Off;
250                lc_check_byp_en  = Off;
251                if (init_req_i && lc_state_valid_q) begin
                   -2-  
252                  fsm_state_d = IdleSt;
                     ==>
253                  // Fetch LC state vector from OTP.
254                  lc_state_d  = lc_state_i;
255                  lc_cnt_d    = lc_cnt_i;
256                end
                   MISSING_ELSE
                   ==>
257              end
258              ///////////////////////////////////////////////////////////////////
259              // Idle state where life cycle control signals are broadcast.
260              // Note that the life cycle signals are decoded and broadcast
261              // in the lc_ctrl_signal_decode submodule.
262              IdleSt: begin
263                idle_o = 1'b1;
264        
265                // ---------- VOLATILE_TEST_UNLOCKED CODE SECTION START ----------
266                // NOTE THAT THIS IS A FEATURE FOR TEST CHIPS ONLY TO MITIGATE
267                // THE RISK OF A BROKEN OTP MACRO. THIS WILL BE DISABLED VIA
268                // SecVolatileRawUnlockEn AT COMPILETIME FOR PRODUCTION DEVICES.
269                // ---------------------------------------------------------------
270                // Note that if the volatile unlock mechanism is available,
271                // we have to stop fetching the OTP value after a volatile unlock has succeeded.
272                // Otherwise we unconditionally fetch from OTP in this state.
273                if (!(SecVolatileRawUnlockEn && lc_state_q == LcStTestUnlocked0 && lc_cnt_q != LcCnt0) ||
                   -3-  
274                    prim_mubi_pkg::mubi8_test_false_loose(volatile_raw_unlock_success_q)) begin
275                  // Continuously fetch LC state vector from OTP.
276                  // The state is locked in once a transition is started.
277                  lc_state_d    = lc_state_i;
                     ==>
278                  lc_cnt_d      = lc_cnt_i;
279                end
                   MISSING_ELSE
                   ==>
280                // ----------- VOLATILE_TEST_UNLOCKED CODE SECTION END -----------
281        
282                // If the life cycle state is SCRAP, we move the FSM into a terminal
283                // SCRAP state that does not allow any transitions to be initiated anymore.
284                if (lc_state_q == LcStScrap) begin
                   -4-  
285                  fsm_state_d = ScrapSt;
                     ==>
286        
287                // ---------- VOLATILE_TEST_UNLOCKED CODE SECTION START ----------
288                // NOTE THAT THIS IS A FEATURE FOR TEST CHIPS ONLY TO MITIGATE
289                // THE RISK OF A BROKEN OTP MACRO. THIS WILL BE DISABLED VIA
290                // SecVolatileRawUnlockEn AT COMPILETIME FOR PRODUCTION DEVICES.
291                // ---------------------------------------------------------------
292                // Only enter here if volatile RAW unlock is available and enabled.
293                end else if (SecVolatileRawUnlockEn && volatile_raw_unlock_i && trans_cmd_i) begin
                            -5-  
294                  // We only allow transitions from RAW -> TEST_UNLOCKED0
295                  if (lc_state_q == LcStRaw &&
                     -6-  
296                      trans_target_i == {DecLcStateNumRep{DecLcStTestUnlocked0}} &&
297                      !trans_invalid_error_o) begin
298                    // 128bit token check (without passing it through the KMAC)
299                    if (unhashed_token_i == RndCnstRawUnlockTokenHashed) begin
                       -7-  
300                      // We stay in Idle, but update the life cycle state register (volatile).
301                      lc_state_d = LcStTestUnlocked0;
302                      // If the count is 0, we set it to 1 - otherwise we just leave it as is so that the
303                      // register value is in sync with what has been programmed to OTP already (there may
304                      // have been unsuccessul raw unlock attempts before that already incremented it).
305                      lc_cnt_d = (lc_cnt_q == LcCnt0) ? LcCnt1 : lc_cnt_q;
                                                         -8-  
                                                         ==>  
                                                         ==>  
306                      // Re-sample the DFT straps in the pinmux.
307                      // This signal will be delayed by several cycles so that the LC_CTRL signals
308                      // have time to propagate.
309                      set_strap_en_override = 1'b1;
310                      // We have to remember that the transition was successful in order to correctly
311                      // disable the continuos sampling of the life cycle state vector coming from OTP.
312                      volatile_raw_unlock_success_d = prim_mubi_pkg::MuBi8True;
313                      // Indicate that the transition was successful.
314                      trans_success_o = 1'b1;
315                    end else begin
316                      token_invalid_error_o = 1'b1;
                         ==>
317                      fsm_state_d = PostTransSt;
318                    end
319                  end else begin
320                    // Transition invalid error is set by lc_ctrl_state_transition module.
321                    fsm_state_d = PostTransSt;
                       ==>
322                  end
323                // ----------- VOLATILE_TEST_UNLOCKED CODE SECTION END -----------
324                // Initiate a transition. This will first increment the
325                // life cycle counter before hashing and checking the token.
326                end else if (trans_cmd_i) begin
                            -9-  
327                  fsm_state_d = ClkMuxSt;
                     ==>
328                end
                   MISSING_ELSE
                   ==>
329                // If we are in a non-PROD life cycle state, steer the clock mux if requested. This
330                // action is available in IdleSt so that the mux can be steered without having to initiate
331                // a life cycle transition. If a transition is initiated however, the life cycle controller
332                // will wait for the clock mux acknowledgement in the ClkMuxSt state before proceeding.
333                if (lc_state_q inside {LcStRaw,
                   -10-  
334                                       LcStTestLocked0,
335                                       LcStTestLocked1,
336                                       LcStTestLocked2,
337                                       LcStTestLocked3,
338                                       LcStTestLocked4,
339                                       LcStTestLocked5,
340                                       LcStTestLocked6,
341                                       LcStTestUnlocked0,
342                                       LcStTestUnlocked1,
343                                       LcStTestUnlocked2,
344                                       LcStTestUnlocked3,
345                                       LcStTestUnlocked4,
346                                       LcStTestUnlocked5,
347                                       LcStTestUnlocked6,
348                                       LcStTestUnlocked7,
349                                       LcStRma}) begin
350                  if (use_ext_clock_i) begin
                     -11-  
351                    lc_clk_byp_req = On;
                       ==>
352                  end
                     MISSING_ELSE
                     ==>
353                end
                   MISSING_ELSE
                   ==>
354              end
355              ///////////////////////////////////////////////////////////////////
356              // Clock mux state. If we are in RAW, TEST* or RMA, it is permissible
357              // to switch to an external clock source. If the bypass request is
358              // asserted, we have to wait until the clock mux and clock manager
359              // have switched the mux and the clock divider. Also, we disable the
360              // life cycle partition checks at this point since we are going to
361              // alter the contents in the OTP memory array, which could lead to
362              // spurious escalations.
363              ClkMuxSt: begin
364                lc_check_byp_en = On;
365                if (lc_state_q inside {LcStRaw,
                   -12-  
366                                       LcStTestLocked0,
367                                       LcStTestLocked1,
368                                       LcStTestLocked2,
369                                       LcStTestLocked3,
370                                       LcStTestLocked4,
371                                       LcStTestLocked5,
372                                       LcStTestLocked6,
373                                       LcStTestUnlocked0,
374                                       LcStTestUnlocked1,
375                                       LcStTestUnlocked2,
376                                       LcStTestUnlocked3,
377                                       LcStTestUnlocked4,
378                                       LcStTestUnlocked5,
379                                       LcStTestUnlocked6,
380                                       LcStTestUnlocked7,
381                                       LcStRma}) begin
382                  if (use_ext_clock_i) begin
                     -13-  
383                    lc_clk_byp_req = On;
384                    if (lc_tx_test_true_strict(lc_clk_byp_ack[0])) begin
                       -14-  
385                      fsm_state_d = CntIncrSt;
                         ==>
386                    end
                       MISSING_ELSE
                       ==>
387                  end else begin
388                    fsm_state_d = CntIncrSt;
                       ==>
389                  end
390                end else begin
391                  fsm_state_d = CntIncrSt;
                     ==>
392                end
393              end
394              ///////////////////////////////////////////////////////////////////
395              // This increments the life cycle counter state.
396              CntIncrSt: begin
397                // If the counter has reached the maximum, bail out.
398                if (trans_cnt_oflw_error_o) begin
                   -15-  
399                  fsm_state_d = PostTransSt;
                     ==>
400                end else begin
401                  fsm_state_d = CntProgSt;
                     ==>
402                end
403              end
404              ///////////////////////////////////////////////////////////////////
405              // This programs the life cycle counter state.
406              CntProgSt: begin
407                otp_prog_req_o = 1'b1;
408        
409                // If the clock mux has been steered, double check that this is still the case.
410                // Otherwise abort the transition operation.
411                if (lc_clk_byp_req_o != lc_clk_byp_ack[1]) begin
                   -16-  
412                    fsm_state_d = PostTransSt;
                       ==>
413                    otp_prog_error_o = 1'b1;
414                end
                   MISSING_ELSE
                   ==>
415        
416                // Check return value and abort if there
417                // was an error.
418                if (otp_prog_ack_i) begin
                   -17-  
419                  if (otp_prog_err_i) begin
                     -18-  
420                    fsm_state_d = PostTransSt;
                       ==>
421                    otp_prog_error_o = 1'b1;
422                  end else begin
423                    fsm_state_d = TransCheckSt;
                       ==>
424                  end
425                end
                   MISSING_ELSE
                   ==>
426              end
427              ///////////////////////////////////////////////////////////////////
428              // First transition valid check. This will be repeated several
429              // times below.
430              TransCheckSt: begin
431                if (trans_invalid_error_o) begin
                   -19-  
432                  fsm_state_d = PostTransSt;
                     ==>
433                end else begin
434                  fsm_state_d = TokenHashSt;
                     ==>
435                end
436              end
437              ///////////////////////////////////////////////////////////////////
438              // Hash and compare the token, no matter whether this transition
439              // is conditional or not. Unconditional transitions just use a known
440              // all-zero token value. That way, we always compare a hashed token
441              // and guarantee that no other control flow path exists that could
442              // bypass the token check.
443              // SEC_CM: TOKEN.DIGEST
444              TokenHashSt: begin
445                token_hash_req_o = 1'b1;
446                if (token_hash_ack_i) begin
                   -20-  
447                  // This is the first comparison.
448                  // The token is compared two more times further below.
449                  // Also note that conditional transitions won't be possible if the
450                  // corresponding token is not valid. This only applies to tokens stored in
451                  // OTP. I.e., these tokens first have to be provisioned, before they can be used.
452                  if (hashed_token_i == hashed_token_mux &&
                     -21-  
453                      !token_hash_err_i &&
454                      &hashed_token_valid_mux) begin
455                    fsm_state_d = FlashRmaSt;
                       ==>
456                  end else begin
457                    fsm_state_d = PostTransSt;
                       ==>
458                    token_invalid_error_o = 1'b1;
459                  end
460                end
                   MISSING_ELSE
                   ==>
461              end
462              ///////////////////////////////////////////////////////////////////
463              // Flash RMA state. Note that we check the flash response again
464              // two times later below.
465              FlashRmaSt: begin
466                if (trans_target_i == {DecLcStateNumRep{DecLcStRma}}) begin
                   -22-  
467                  lc_flash_rma_req = On;
468                  if (lc_tx_test_true_strict(lc_flash_rma_ack_buf[0])) begin
                     -23-  
469                    fsm_state_d = TokenCheck0St;
                       ==>
470                  end
                     MISSING_ELSE
                     ==>
471                end else begin
472                  fsm_state_d = TokenCheck0St;
                     ==>
473                end
474              end
475              ///////////////////////////////////////////////////////////////////
476              // Check again two times whether this transition and the hashed
477              // token are valid. Also check again whether the flash RMA
478              // response is valid.
479              // SEC_CM: TOKEN.DIGEST
480              TokenCheck0St,
481              TokenCheck1St: begin
482                if (trans_invalid_error_o) begin
                   -24-  
483                  fsm_state_d = PostTransSt;
                     ==>
484                end else begin
485                  // If any of these RMA are conditions are true,
486                  // all of them must be true at the same time.
487                  if ((trans_target_i != {DecLcStateNumRep{DecLcStRma}} &&
                     -25-  
488                       lc_tx_test_false_strict(lc_flash_rma_req_o) &&
489                       lc_tx_test_false_strict(lc_flash_rma_ack_buf[1])) ||
490                      (trans_target_i == {DecLcStateNumRep{DecLcStRma}} &&
491                       lc_tx_test_true_strict(lc_flash_rma_req_o) &&
492                       lc_tx_test_true_strict(lc_flash_rma_ack_buf[1]))) begin
493                    if (hashed_token_i == hashed_token_mux &&
                       -26-  
494                        !token_hash_err_i &&
495                        &hashed_token_valid_mux) begin
496                      if (fsm_state_q == TokenCheck1St) begin
                         -27-  
497                        // This is the only way we can get into the
498                        // programming state.
499                        fsm_state_d = TransProgSt;
                           ==>
500                      end else begin
501                        fsm_state_d = TokenCheck1St;
                           ==>
502                      end
503                    end else begin
504                      fsm_state_d = PostTransSt;
                         ==>
505                      token_invalid_error_o = 1'b1;
506                    end
507                  // The flash RMA process failed.
508                  end else begin
509                      fsm_state_d = PostTransSt;
                         ==>
510                      flash_rma_error_o = 1'b1;
511                  end
512                end
513              end
514              ///////////////////////////////////////////////////////////////////
515              // Initiate OTP transaction. Note that the concurrent
516              // LC state check is continuously checking whether the
517              // new LC state remains valid. Once the ack returns we are
518              // done with the transition and can go into the terminal PosTransSt.
519              TransProgSt: begin
520                otp_prog_req_o = 1'b1;
521        
522                // If the clock mux has been steered, double check that this is still the case.
523                // Otherwise abort the transition operation.
524                if (lc_clk_byp_req_o != lc_clk_byp_ack[2]) begin
                   -28-  
525                  fsm_state_d = PostTransSt;
                     ==>
526                  otp_prog_error_o = 1'b1;
527                // Also double check that the RMA signals remain stable.
528                // Otherwise abort the transition operation.
529                end else if ((trans_target_i != {DecLcStateNumRep{DecLcStRma}} &&
                            -29-  
530                              (lc_flash_rma_req_o != Off || lc_flash_rma_ack_buf[2] != Off)) ||
531                             (trans_target_i == {DecLcStateNumRep{DecLcStRma}} &&
532                              (lc_flash_rma_req_o != On || lc_flash_rma_ack_buf[2] != On))) begin
533                  fsm_state_d = PostTransSt;
                     ==>
534                  flash_rma_error_o = 1'b1;
535                end else if (otp_prog_ack_i) begin
                            -30-  
536                  fsm_state_d = PostTransSt;
                     ==>
537                  otp_prog_error_o = otp_prog_err_i;
538                  trans_success_o  = ~otp_prog_err_i;
539                end
                   MISSING_ELSE
                   ==>
540              end
541              ///////////////////////////////////////////////////////////////////
542              // Terminal states.
543              ScrapSt,
544              PostTransSt: ;
                 ==>
545        
546        
547              EscalateSt: begin
548                // During an escalation it is okay to de-assert token_hash_req without receivng ACK.
549                token_hash_req_chk_o = 1'b0;
                   ==>
550              end
551        
552              InvalidSt: begin
553                // During an escalation it is okay to de-assert token_hash_req without receivng ACK.
554                token_hash_req_chk_o = 1'b0;
                   ==>
555                state_invalid_error_o = 1'b1;
556              end
557              ///////////////////////////////////////////////////////////////////
558              // Go to terminal error state if we get here.
559              default: begin
560                fsm_state_d = InvalidSt;
                   ==>
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- | Status | Tests | 
| ResetSt  | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T2,T3 | 
| ResetSt  | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T2,T3 | 
| IdleSt  | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T2,T3 | 
| IdleSt  | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T31,T32 | 
| IdleSt  | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T44,T45,T46 | 
| IdleSt  | 
- | 
- | 
0 | 
1 | 
1 | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T54,T55 | 
| IdleSt  | 
- | 
- | 
0 | 
1 | 
1 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T31,T32 | 
| IdleSt  | 
- | 
- | 
0 | 
1 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Not Covered | 
 | 
| IdleSt  | 
- | 
- | 
0 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T32,T33,T34 | 
| IdleSt  | 
- | 
- | 
0 | 
0 | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
| IdleSt  | 
- | 
- | 
0 | 
0 | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T2,T3 | 
| IdleSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T6 | 
| IdleSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
| IdleSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T2,T3,T4 | 
| ClkMuxSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T11 | 
| ClkMuxSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T69,T70,T71 | 
| ClkMuxSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T3,T4,T11 | 
| ClkMuxSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T3,T4,T5 | 
| CntIncrSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T38,T39,T42 | 
| CntIncrSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T17,T38,T39 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T4,T10,T16 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
| TransCheckSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T35,T38,T39 | 
| TransCheckSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
| TokenHashSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
| TokenHashSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T17,T37,T35 | 
| TokenHashSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
| FlashRmaSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T5,T11,T14 | 
| FlashRmaSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T5,T11,T14 | 
| FlashRmaSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T35,T41,T47 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
1 | 
1 | 
1 | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
1 | 
1 | 
0 | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
Not Covered | 
 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
0 | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T17,T38,T39 | 
| TransProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
Covered | 
T48,T49,T50 | 
| TransProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
1 | 
- | 
Covered | 
T17,T42,T51 | 
| TransProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
0 | 
1 | 
Covered | 
T1,T3,T5 | 
| TransProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
0 | 
0 | 
Covered | 
T1,T3,T5 | 
| ScrapSt PostTransSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
| EscalateSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T4,T10,T13 | 
| InvalidSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T13,T15,T17 | 
| default | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T13,T43,T60 | 
567            if (esc_scrap_state0_i || esc_scrap_state1_i) begin
               -1-  
568              fsm_state_d = EscalateSt;
                 ==>
569            // SEC_CM: MAIN.FSM.LOCAL_ESC
570            // If at any time the life cycle state encoding or any other FSM state within this module
571            // is not valid, we jump into the terminal error state right away.
572            // Note that state_invalid_error is a multibit error signal
573            // with different error sources - need to reduce this to one bit here.
574            end else if ((|state_invalid_error | token_if_fsm_err_i) && (fsm_state_q != EscalateSt)) begin
                        -2-                                  
575              fsm_state_d = InvalidSt;
                 ==>
576              state_invalid_error_o = 1'b1;
577            end
               MISSING_ELSE
               ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
- | 
Covered | 
T4,T10,T13 | 
| 0 | 
1 | 
Covered | 
T13,T15,T17 | 
| 0 | 
0 | 
Covered | 
T1,T2,T3 | 
584          `PRIM_FLOP_SPARSE_FSM(u_fsm_state_regs, fsm_state_d, fsm_state_q, fsm_state_e, ResetSt)
             -1-                                                                                       
             ==>                                                                                       
             ==>                                                                                       
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
585          `PRIM_FLOP_SPARSE_FSM(u_state_regs, lc_state_d, lc_state_q, lc_state_e, LcStScrap)
             -1-                                                                                  
             ==>                                                                                  
             ==>                                                                                  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
586          `PRIM_FLOP_SPARSE_FSM(u_cnt_regs, lc_cnt_d, lc_cnt_q, lc_cnt_e, LcCnt24)
             -1-                                                                        
             ==>                                                                        
             ==>                                                                        
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
589            if (!rst_ni) begin
               -1-  
590              lc_state_valid_q <= 1'b0;
                 ==>
591            end else begin
592              lc_state_valid_q <= lc_state_valid_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
684            if (lc_tx_test_true_strict(test_tokens_valid[0])) begin
               -1-  
685              hashed_tokens_lower[TestUnlockTokenIdx] = test_unlock_token_lower;
                 ==>
686            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
687            if (lc_tx_test_true_strict(test_tokens_valid[1])) begin
               -1-  
688              hashed_tokens_upper[TestUnlockTokenIdx] = test_unlock_token_upper;
                 ==>
689            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
691            if (lc_tx_test_true_strict(test_tokens_valid[2])) begin
               -1-  
692              hashed_tokens_lower[TestExitTokenIdx] = test_exit_token_lower;
                 ==>
693            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
694            if (lc_tx_test_true_strict(test_tokens_valid[3])) begin
               -1-  
695              hashed_tokens_upper[TestExitTokenIdx] = test_exit_token_upper;
                 ==>
696            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
698            if (lc_tx_test_true_strict(rma_token_valid[0])) begin
               -1-  
699              hashed_tokens_lower[RmaTokenIdx] = rma_token_lower;
                 ==>
700            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
701            if (lc_tx_test_true_strict(rma_token_valid[1])) begin
               -1-  
702              hashed_tokens_upper[RmaTokenIdx] = rma_token_upper;
                 ==>
703            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
882          `ASSERT_FPV_LINEAR_FSM(SecCmCFILinear_A, fsm_state_q, fsm_state_e)
             -1-                                                                  
             ==>                                                                  
             ==>                                                                  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
608              if(!rst_ni) begin
                 -1-  
609                strap_en_override_q <= '0;
                   ==>
610                volatile_raw_unlock_success_q <= prim_mubi_pkg::MuBi8False;
611              end else begin
612                strap_en_override_q <= {strap_en_override_q[NumStrapDelayRegs-2:0],
                   ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Module : 
lc_ctrl_fsm
Assertion Details
ClkBypStaysOnOnceAsserted_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
3192570 | 
0 | 
71 | 
| T1 | 
1578 | 
1342 | 
0 | 
1 | 
| T2 | 
905 | 
0 | 
0 | 
0 | 
| T3 | 
3817 | 
320 | 
0 | 
0 | 
| T4 | 
5102 | 
0 | 
0 | 
0 | 
| T5 | 
6928 | 
0 | 
0 | 
0 | 
| T6 | 
9137 | 
6217 | 
0 | 
1 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T8 | 
0 | 
16525 | 
0 | 
1 | 
| T9 | 
0 | 
0 | 
0 | 
1 | 
| T10 | 
25330 | 
0 | 
0 | 
0 | 
| T11 | 
20632 | 
4763 | 
0 | 
1 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T18 | 
0 | 
9321 | 
0 | 
0 | 
| T19 | 
0 | 
34430 | 
0 | 
0 | 
| T24 | 
0 | 
0 | 
0 | 
1 | 
| T31 | 
0 | 
1054 | 
0 | 
1 | 
| T36 | 
0 | 
2516 | 
0 | 
0 | 
| T69 | 
0 | 
0 | 
0 | 
1 | 
| T72 | 
0 | 
3387 | 
0 | 
0 | 
| T73 | 
0 | 
0 | 
0 | 
1 | 
| T74 | 
0 | 
0 | 
0 | 
1 | 
EscStaysOnOnceAsserted_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
11718090 | 
0 | 
9 | 
| T4 | 
5102 | 
1477 | 
0 | 
0 | 
| T5 | 
6928 | 
0 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T10 | 
25330 | 
4877 | 
0 | 
0 | 
| T11 | 
20632 | 
0 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
6718 | 
1903 | 
0 | 
0 | 
| T14 | 
0 | 
11342 | 
0 | 
0 | 
| T15 | 
0 | 
10459 | 
0 | 
0 | 
| T16 | 
0 | 
661 | 
0 | 
0 | 
| T17 | 
0 | 
3604 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
0 | 
| T23 | 
619 | 
0 | 
0 | 
0 | 
| T38 | 
0 | 
2123 | 
0 | 
0 | 
| T39 | 
0 | 
995 | 
0 | 
0 | 
| T44 | 
0 | 
15036 | 
0 | 
0 | 
| T45 | 
0 | 
0 | 
0 | 
1 | 
| T75 | 
0 | 
0 | 
0 | 
1 | 
| T76 | 
0 | 
0 | 
0 | 
1 | 
| T77 | 
0 | 
0 | 
0 | 
1 | 
| T78 | 
0 | 
0 | 
0 | 
1 | 
| T79 | 
0 | 
0 | 
0 | 
1 | 
| T80 | 
0 | 
0 | 
0 | 
1 | 
| T81 | 
0 | 
0 | 
0 | 
1 | 
| T82 | 
0 | 
0 | 
0 | 
1 | 
FlashRmaStaysOnOnceAsserted_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
386492 | 
0 | 
10 | 
| T5 | 
6928 | 
175 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T10 | 
25330 | 
0 | 
0 | 
0 | 
| T11 | 
20632 | 
58 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
6718 | 
0 | 
0 | 
0 | 
| T14 | 
22855 | 
555 | 
0 | 
0 | 
| T15 | 
0 | 
1691 | 
0 | 
0 | 
| T17 | 
0 | 
547 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
0 | 
| T23 | 
619 | 
0 | 
0 | 
0 | 
| T35 | 
0 | 
480 | 
0 | 
0 | 
| T38 | 
0 | 
1043 | 
0 | 
0 | 
| T39 | 
0 | 
321 | 
0 | 
0 | 
| T44 | 
0 | 
594 | 
0 | 
0 | 
| T70 | 
0 | 
0 | 
0 | 
1 | 
| T72 | 
0 | 
35 | 
0 | 
0 | 
| T83 | 
0 | 
0 | 
0 | 
1 | 
| T84 | 
0 | 
0 | 
0 | 
1 | 
| T85 | 
0 | 
0 | 
0 | 
1 | 
| T86 | 
0 | 
0 | 
0 | 
1 | 
| T87 | 
0 | 
0 | 
0 | 
1 | 
| T88 | 
0 | 
0 | 
0 | 
1 | 
| T89 | 
0 | 
0 | 
0 | 
1 | 
| T90 | 
0 | 
0 | 
0 | 
1 | 
| T91 | 
0 | 
0 | 
0 | 
1 | 
FsmStateKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
51201573 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
LcCntKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
51201573 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
LcStateKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
51201573 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
NoClkBypInProdStates_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
7108066 | 
0 | 
0 | 
| T2 | 
905 | 
811 | 
0 | 
0 | 
| T3 | 
3817 | 
220 | 
0 | 
0 | 
| T4 | 
5102 | 
323 | 
0 | 
0 | 
| T5 | 
6928 | 
6714 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
12109 | 
0 | 
0 | 
| T10 | 
25330 | 
5046 | 
0 | 
0 | 
| T11 | 
20632 | 
7701 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
0 | 
1257 | 
0 | 
0 | 
| T14 | 
0 | 
2982 | 
0 | 
0 | 
| T15 | 
0 | 
5493 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
0 | 
SecCmCFILinear_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
262165 | 
0 | 
2059 | 
| T3 | 
3817 | 
143 | 
0 | 
11 | 
| T4 | 
5102 | 
72 | 
0 | 
1 | 
| T5 | 
6928 | 
11 | 
0 | 
11 | 
| T6 | 
9137 | 
0 | 
0 | 
1 | 
| T7 | 
12200 | 
0 | 
0 | 
1 | 
| T10 | 
25330 | 
84 | 
0 | 
1 | 
| T11 | 
20632 | 
44 | 
0 | 
11 | 
| T12 | 
942 | 
0 | 
0 | 
1 | 
| T13 | 
6718 | 
94 | 
0 | 
1 | 
| T14 | 
0 | 
396 | 
0 | 
0 | 
| T15 | 
0 | 
111 | 
0 | 
0 | 
| T16 | 
0 | 
30 | 
0 | 
0 | 
| T17 | 
0 | 
385 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
11 | 
SecCmCFITerminal0_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
8380010 | 
0 | 
0 | 
| T1 | 
1578 | 
945 | 
0 | 
0 | 
| T2 | 
905 | 
0 | 
0 | 
0 | 
| T3 | 
3817 | 
703 | 
0 | 
0 | 
| T4 | 
5102 | 
731 | 
0 | 
0 | 
| T5 | 
6928 | 
1429 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T10 | 
25330 | 
5870 | 
0 | 
0 | 
| T11 | 
20632 | 
996 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
0 | 
1770 | 
0 | 
0 | 
| T14 | 
0 | 
6 | 
0 | 
0 | 
| T15 | 
0 | 
15291 | 
0 | 
0 | 
| T22 | 
0 | 
756 | 
0 | 
0 | 
SecCmCFITerminal1_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
60894 | 
0 | 
0 | 
| T8 | 
17141 | 
0 | 
0 | 
0 | 
| T18 | 
61993 | 
0 | 
0 | 
0 | 
| T19 | 
105875 | 
0 | 
0 | 
0 | 
| T20 | 
37814 | 
0 | 
0 | 
0 | 
| T39 | 
18457 | 
0 | 
0 | 
0 | 
| T43 | 
5798 | 
0 | 
0 | 
0 | 
| T44 | 
30968 | 
4 | 
0 | 
0 | 
| T45 | 
1652 | 
1562 | 
0 | 
0 | 
| T46 | 
0 | 
1 | 
0 | 
0 | 
| T60 | 
15037 | 
0 | 
0 | 
0 | 
| T63 | 
0 | 
8 | 
0 | 
0 | 
| T64 | 
0 | 
4 | 
0 | 
0 | 
| T67 | 
0 | 
59 | 
0 | 
0 | 
| T70 | 
0 | 
10 | 
0 | 
0 | 
| T72 | 
27673 | 
0 | 
0 | 
0 | 
| T92 | 
0 | 
477 | 
0 | 
0 | 
| T93 | 
0 | 
427 | 
0 | 
0 | 
| T94 | 
0 | 
585 | 
0 | 
0 | 
SecCmCFITerminal2_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
4645372 | 
0 | 
0 | 
| T4 | 
5102 | 
1489 | 
0 | 
0 | 
| T5 | 
6928 | 
0 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T10 | 
25330 | 
4891 | 
0 | 
0 | 
| T11 | 
20632 | 
0 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
6718 | 
1212 | 
0 | 
0 | 
| T14 | 
0 | 
11401 | 
0 | 
0 | 
| T15 | 
0 | 
5348 | 
0 | 
0 | 
| T16 | 
0 | 
666 | 
0 | 
0 | 
| T17 | 
0 | 
2682 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
0 | 
| T23 | 
619 | 
0 | 
0 | 
0 | 
| T38 | 
0 | 
2139 | 
0 | 
0 | 
| T39 | 
0 | 
1003 | 
0 | 
0 | 
| T44 | 
0 | 
15112 | 
0 | 
0 | 
SecCmCFITerminal3_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
7025350 | 
0 | 
0 | 
| T13 | 
6718 | 
694 | 
0 | 
0 | 
| T14 | 
22855 | 
0 | 
0 | 
0 | 
| T15 | 
41510 | 
5115 | 
0 | 
0 | 
| T16 | 
2099 | 
0 | 
0 | 
0 | 
| T17 | 
18111 | 
944 | 
0 | 
0 | 
| T21 | 
0 | 
9614 | 
0 | 
0 | 
| T23 | 
619 | 
0 | 
0 | 
0 | 
| T35 | 
33457 | 
0 | 
0 | 
0 | 
| T37 | 
25701 | 
0 | 
0 | 
0 | 
| T38 | 
56642 | 
0 | 
0 | 
0 | 
| T43 | 
0 | 
754 | 
0 | 
0 | 
| T46 | 
0 | 
4536 | 
0 | 
0 | 
| T52 | 
0 | 
2503 | 
0 | 
0 | 
| T60 | 
0 | 
3171 | 
0 | 
0 | 
| T95 | 
0 | 
9151 | 
0 | 
0 | 
| T96 | 
0 | 
915 | 
0 | 
0 | 
| T97 | 
1402 | 
0 | 
0 | 
0 | 
u_cnt_regs_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
49480781 | 
46501357 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
u_fsm_state_regs_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
52777257 | 
49610468 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
u_state_regs_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
51079967 | 
48100041 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_lc_ctrl_fsm
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 177 | 175 | 98.87 | 
| CONT_ASSIGN | 126 | 1 | 1 | 100.00 | 
| ALWAYS | 146 | 3 | 3 | 100.00 | 
| CONT_ASSIGN | 171 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 178 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 179 | 1 | 1 | 100.00 | 
| ALWAYS | 204 | 112 | 110 | 98.21 | 
| ALWAYS | 584 | 3 | 3 | 100.00 | 
| ALWAYS | 585 | 3 | 3 | 100.00 | 
| ALWAYS | 586 | 3 | 3 | 100.00 | 
| ALWAYS | 589 | 3 | 3 | 100.00 | 
| ALWAYS | 608 | 5 | 5 | 100.00 | 
| CONT_ASSIGN | 619 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 666 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 667 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 668 | 1 | 1 | 100.00 | 
| ALWAYS | 677 | 15 | 15 | 100.00 | 
| ALWAYS | 712 | 14 | 14 | 100.00 | 
| CONT_ASSIGN | 732 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 736 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 740 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 742 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 749 | 1 | 1 | 100.00 | 
| ALWAYS | 882 | 3 | 3 | 100.00 | 
Click here to see the source line report.
Cond Coverage for Instance : tb.dut.u_lc_ctrl_fsm
 | Total | Covered | Percent | 
| Conditions | 86 | 81 | 94.19 | 
| Logical | 86 | 81 | 94.19 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       251
 EXPRESSION (init_req_i && lc_state_valid_q)
             -----1----    --------2-------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T13,T15,T43 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       284
 EXPRESSION (lc_state_q == LcStScrap)
            ------------1------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T44,T45,T46 | 
 LINE       293
 EXPRESSION (SecVolatileRawUnlockEn && volatile_raw_unlock_i && trans_cmd_i)
             -----------1----------    ----------2----------    -----3-----
| -1- | -2- | -3- | Status | Tests |                       
| - | 0 | 1 | Covered | T1,T3,T4 | 
| - | 1 | 0 | Covered | T1,T6,T7 | 
| - | 1 | 1 | Covered | T1,T31,T32 | 
 LINE       295
 EXPRESSION ((lc_state_q == LcStRaw) && (trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStTestUnlocked0}}) && ((!trans_invalid_error_o)))
             -----------1-----------    ----------------------------------------2---------------------------------------    -------------3------------
| -1- | -2- | -3- | Status | Tests | Exclude Annotation | 
| 0 | 1 | 1 | Excluded |  | 
VC_COV_UNR | 
| 1 | 0 | 1 | Excluded |  | 
VC_COV_UNR | 
| 1 | 1 | 0 | Excluded |  | 
VC_COV_UNR | 
| 1 | 1 | 1 | Covered | T1,T31,T32 | 
 LINE       295
 SUB-EXPRESSION (lc_state_q == LcStRaw)
                -----------1-----------
| -1- | Status | Tests |                       
| 0 | Covered | T32,T33,T34 | 
| 1 | Covered | T1,T31,T32 | 
 LINE       295
 SUB-EXPRESSION (trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStTestUnlocked0}})
                ----------------------------------------1---------------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T32,T33,T34 | 
| 1 | Covered | T1,T31,T32 | 
 LINE       299
 EXPRESSION (unhashed_token_i == lc_ctrl_state_pkg::RndCnstRawUnlockTokenHashed)
            ----------------------------------1---------------------------------
| -1- | Status | Tests | Exclude Annotation | 
| 0 | Excluded |  | 
VC_COV_UNR | 
| 1 | Covered | T1,T31,T32 | 
 LINE       305
 EXPRESSION ((lc_cnt_q == LcCnt0) ? LcCnt1 : lc_cnt_q)
             ----------1---------
| -1- | Status | Tests | Exclude Annotation | 
| 0 | Covered | T1,T31,T32 | 
| 1 | Excluded | T54,T55 | 
VC_COV_UNR | 
 LINE       305
 SUB-EXPRESSION (lc_cnt_q == LcCnt0)
                ----------1---------
| -1- | Status | Tests | Exclude Annotation | 
| 0 | Covered | T1,T31,T32 | 
| 1 | Excluded | T54,T55 | 
VC_COV_UNR | 
 LINE       411
 EXPRESSION (lc_clk_byp_req_o != lc_clk_byp_ack[1])
            -------------------1-------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T4 | 
| 1 | Covered | T17,T38,T39 | 
 LINE       452
 EXPRESSION ((hashed_token_i == hashed_token_mux) && ((!token_hash_err_i)) && ((&hashed_token_valid_mux)))
             ------------------1-----------------    ----------2----------    -------------3-------------
| -1- | -2- | -3- | Status | Tests |                       
| 0 | 1 | 1 | Covered | T37,T35,T38 | 
| 1 | 0 | 1 | Covered | T38,T39,T42 | 
| 1 | 1 | 0 | Not Covered |  | 
| 1 | 1 | 1 | Covered | T1,T3,T5 | 
 LINE       452
 SUB-EXPRESSION (hashed_token_i == hashed_token_mux)
                ------------------1-----------------
| -1- | Status | Tests |                       
| 0 | Covered | T17,T37,T35 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       466
 EXPRESSION (trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}})
            -----------------------------------1----------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T5,T11,T14 | 
 LINE       493
 EXPRESSION ((hashed_token_i == hashed_token_mux) && ((!token_hash_err_i)) && ((&hashed_token_valid_mux)))
             ------------------1-----------------    ----------2----------    -------------3-------------
| -1- | -2- | -3- | Status | Tests |                       
| 0 | 1 | 1 | Not Covered |  | 
| 1 | 0 | 1 | Not Covered |  | 
| 1 | 1 | 0 | Not Covered |  | 
| 1 | 1 | 1 | Covered | T1,T3,T5 | 
 LINE       493
 SUB-EXPRESSION (hashed_token_i == hashed_token_mux)
                ------------------1-----------------
| -1- | Status | Tests |                       
| 0 | Not Covered |  | 
| 1 | Covered | T1,T3,T5 | 
 LINE       496
 EXPRESSION (fsm_state_q == TokenCheck1St)
            ---------------1--------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       524
 EXPRESSION (lc_clk_byp_req_o != lc_clk_byp_ack[2])
            -------------------1-------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T48,T49,T50 | 
 LINE       529
 EXPRESSION 
 Number  Term
      1  ((trans_target_i != {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}}) && ((lc_flash_rma_req_o != Off) || (lc_flash_rma_ack_buf[2] != Off))) || 
      2  ((trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}}) && ((lc_flash_rma_req_o != On) || (lc_flash_rma_ack_buf[2] != On))))
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T3,T5 | 
| 0 | 1 | Covered | T17,T56,T57 | 
| 1 | 0 | Covered | T42,T51,T58 | 
 LINE       529
 SUB-EXPRESSION ((trans_target_i != {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}}) && ((lc_flash_rma_req_o != Off) || (lc_flash_rma_ack_buf[2] != Off)))
                 -----------------------------------1----------------------------------    --------------------------------2--------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T5,T11,T14 | 
| 1 | 0 | Covered | T1,T3,T5 | 
| 1 | 1 | Covered | T42,T51,T58 | 
 LINE       529
 SUB-EXPRESSION (trans_target_i != {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}})
                -----------------------------------1----------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T5,T11,T14 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       529
 SUB-EXPRESSION ((lc_flash_rma_req_o != Off) || (lc_flash_rma_ack_buf[2] != Off))
                 -------------1-------------    ----------------2---------------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T3,T5 | 
| 0 | 1 | Covered | T42,T51,T58 | 
| 1 | 0 | Covered | T59 | 
 LINE       529
 SUB-EXPRESSION (lc_flash_rma_req_o != Off)
                -------------1-------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T5,T11,T14 | 
 LINE       529
 SUB-EXPRESSION (lc_flash_rma_ack_buf[2] != Off)
                ----------------1---------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T5,T11,T14 | 
 LINE       529
 SUB-EXPRESSION ((trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}}) && ((lc_flash_rma_req_o != On) || (lc_flash_rma_ack_buf[2] != On)))
                 -----------------------------------1----------------------------------    -------------------------------2-------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T3,T5 | 
| 1 | 0 | Covered | T5,T11,T14 | 
| 1 | 1 | Covered | T17,T56,T57 | 
 LINE       529
 SUB-EXPRESSION (trans_target_i == {lc_ctrl_state_pkg::DecLcStateNumRep {DecLcStRma}})
                -----------------------------------1----------------------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T3,T5 | 
| 1 | Covered | T5,T11,T14 | 
 LINE       529
 SUB-EXPRESSION ((lc_flash_rma_req_o != On) || (lc_flash_rma_ack_buf[2] != On))
                 -------------1------------    ---------------2---------------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T5,T11,T14 | 
| 0 | 1 | Covered | T17,T56,T57 | 
| 1 | 0 | Covered | T58 | 
 LINE       529
 SUB-EXPRESSION (lc_flash_rma_req_o != On)
                -------------1------------
| -1- | Status | Tests |                       
| 0 | Covered | T5,T11,T14 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       529
 SUB-EXPRESSION (lc_flash_rma_ack_buf[2] != On)
                ---------------1---------------
| -1- | Status | Tests |                       
| 0 | Covered | T5,T11,T14 | 
| 1 | Covered | T1,T3,T5 | 
 LINE       567
 EXPRESSION (esc_scrap_state0_i || esc_scrap_state1_i)
             ---------1--------    ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T4,T10,T13 | 
| 1 | 0 | Covered | T4,T10,T13 | 
 LINE       574
 EXPRESSION ((((|state_invalid_error)) | token_if_fsm_err_i) && (fsm_state_q != EscalateSt))
             -----------------------1-----------------------    -------------2-------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T15,T60,T21 | 
| 1 | 1 | Covered | T13,T15,T17 | 
 LINE       574
 SUB-EXPRESSION (((|state_invalid_error)) | token_if_fsm_err_i)
                 ------------1-----------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T15,T60,T21 | 
| 1 | 0 | Covered | T13,T15,T17 | 
 LINE       574
 SUB-EXPRESSION (fsm_state_q != EscalateSt)
                -------------1-------------
| -1- | Status | Tests |                       
| 0 | Covered | T4,T10,T13 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       612
 SUB-EXPRESSION (set_strap_en_override || gen_strap_delay_regs.strap_en_override_q[0])
                 ----------1----------    ---------------------2---------------------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T1,T31,T32 | 
| 1 | 0 | Covered | T1,T31,T32 | 
 LINE       732
 EXPRESSION 
 Number  Term
      1  ((int'(dec_lc_state_o[0]) < lc_ctrl_state_pkg::NumLcStates) && (int'(trans_target_i[0]) < lc_ctrl_state_pkg::NumLcStates)) ? lc_ctrl_pkg::TransTokenIdxMatrix[dec_lc_state_o[0]][trans_target_i[0]] : InvalidTokenIdx)
| -1- | Status | Tests |                       
| 0 | Unreachable | T1,T2,T3 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       732
 SUB-EXPRESSION ((int'(dec_lc_state_o[0]) < lc_ctrl_state_pkg::NumLcStates) && (int'(trans_target_i[0]) < lc_ctrl_state_pkg::NumLcStates))
                 -----------------------------1----------------------------    -----------------------------2----------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable | T1,T2,T3 | 
| 1 | 0 | Unreachable | T6,T7,T8 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       736
 EXPRESSION 
 Number  Term
      1  ((int'(dec_lc_state_o[1]) < lc_ctrl_state_pkg::NumLcStates) && (int'(trans_target_i[1]) < lc_ctrl_state_pkg::NumLcStates)) ? lc_ctrl_pkg::TransTokenIdxMatrix[dec_lc_state_o[1]][trans_target_i[1]] : InvalidTokenIdx)
| -1- | Status | Tests |                       
| 0 | Unreachable | T1,T2,T3 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       736
 SUB-EXPRESSION ((int'(dec_lc_state_o[1]) < lc_ctrl_state_pkg::NumLcStates) && (int'(trans_target_i[1]) < lc_ctrl_state_pkg::NumLcStates))
                 -----------------------------1----------------------------    -----------------------------2----------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable | T1,T2,T3 | 
| 1 | 0 | Unreachable | T6,T61,T9 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       749
 EXPRESSION (trans_invalid_error || (token_idx0 != token_idx1))
             ---------1---------    -------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T6,T35,T8 | 
| 1 | 0 | Covered | T38,T39,T42 | 
 LINE       749
 SUB-EXPRESSION (token_idx0 != token_idx1)
                -------------1------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T6,T35,T8 | 
FSM Coverage for Instance : tb.dut.u_lc_ctrl_fsm
Summary for FSM :: fsm_state_q
 | Total | Covered | Percent |  | 
| States | 
15 | 
15 | 
100.00 | 
(Not included in score) | 
| Transitions | 
35 | 
34 | 
97.14  | 
 | 
| Sequences | 
0 | 
0 | 
 | 
 | 
State, Transition and Sequence Details for FSM :: fsm_state_q
| states | Line No. | Covered | Tests | 
| ClkMuxSt | 
327 | 
Covered | 
T1,T3,T4 | 
| CntIncrSt | 
385 | 
Covered | 
T1,T3,T4 | 
| CntProgSt | 
401 | 
Covered | 
T1,T3,T4 | 
| EscalateSt | 
568 | 
Covered | 
T4,T10,T13 | 
| FlashRmaSt | 
455 | 
Covered | 
T1,T3,T5 | 
| IdleSt | 
252 | 
Covered | 
T1,T2,T3 | 
| InvalidSt | 
575 | 
Covered | 
T13,T15,T17 | 
| PostTransSt | 
317 | 
Covered | 
T1,T3,T4 | 
| ResetSt | 
246 | 
Covered | 
T1,T2,T3 | 
| ScrapSt | 
285 | 
Covered | 
T44,T45,T46 | 
| TokenCheck0St | 
469 | 
Covered | 
T1,T3,T5 | 
| TokenCheck1St | 
501 | 
Covered | 
T1,T3,T5 | 
| TokenHashSt | 
434 | 
Covered | 
T1,T3,T5 | 
| TransCheckSt | 
423 | 
Covered | 
T1,T3,T5 | 
| TransProgSt | 
499 | 
Covered | 
T1,T3,T5 | 
| transitions | Line No. | Covered | Tests | Exclude Annotation | 
| ClkMuxSt->CntIncrSt | 
385 | 
Covered | 
T1,T3,T4 | 
 | 
| ClkMuxSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
 | 
| ClkMuxSt->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| CntIncrSt->CntProgSt | 
401 | 
Covered | 
T1,T3,T4 | 
 | 
| CntIncrSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
 | 
| CntIncrSt->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| CntIncrSt->PostTransSt | 
399 | 
Covered | 
T38,T39,T42 | 
 | 
| CntProgSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
 | 
| CntProgSt->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| CntProgSt->PostTransSt | 
412 | 
Covered | 
T4,T10,T16 | 
 | 
| CntProgSt->TransCheckSt | 
423 | 
Covered | 
T1,T3,T5 | 
 | 
| EscalateSt->InvalidSt | 
575 | 
Excluded | 
 | 
VC_COV_UNR | 
| FlashRmaSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
 | 
| FlashRmaSt->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| FlashRmaSt->TokenCheck0St | 
469 | 
Covered | 
T1,T3,T5 | 
 | 
| IdleSt->ClkMuxSt | 
327 | 
Covered | 
T1,T3,T4 | 
 | 
| IdleSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
 | 
| IdleSt->InvalidSt | 
575 | 
Covered | 
T13,T15,T17 | 
 | 
| IdleSt->PostTransSt | 
317 | 
Covered | 
T32,T33,T34 | 
 | 
| IdleSt->ScrapSt | 
285 | 
Covered | 
T44,T45,T46 | 
 | 
| InvalidSt->EscalateSt | 
568 | 
Covered | 
T13,T15,T17 | 
 | 
| PostTransSt->EscalateSt | 
568 | 
Covered | 
T4,T10,T14 | 
 | 
| PostTransSt->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| ResetSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
 | 
| ResetSt->IdleSt | 
252 | 
Covered | 
T1,T2,T3 | 
 | 
| ResetSt->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| ScrapSt->EscalateSt | 
568 | 
Covered | 
T44,T63,T64 | 
 | 
| ScrapSt->InvalidSt | 
575 | 
Not Covered | 
 | 
 | 
| TokenCheck0St->EscalateSt | 
568 | 
Covered | 
T44,T65,T66 | 
 | 
| TokenCheck0St->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| TokenCheck0St->PostTransSt | 
483 | 
Covered | 
T17,T35,T38 | 
 | 
| TokenCheck0St->TokenCheck1St | 
501 | 
Covered | 
T1,T3,T5 | 
 | 
| TokenCheck1St->EscalateSt | 
568 | 
Covered | 
T62,T63,T64 | 
 | 
| TokenCheck1St->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| TokenCheck1St->PostTransSt | 
483 | 
Covered | 
T17,T35,T39 | 
 | 
| TokenCheck1St->TransProgSt | 
499 | 
Covered | 
T1,T3,T5 | 
 | 
| TokenHashSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
 | 
| TokenHashSt->FlashRmaSt | 
455 | 
Covered | 
T1,T3,T5 | 
 | 
| TokenHashSt->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| TokenHashSt->PostTransSt | 
457 | 
Covered | 
T17,T37,T35 | 
 | 
| TransCheckSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T64 | 
 | 
| TransCheckSt->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| TransCheckSt->PostTransSt | 
432 | 
Covered | 
T35,T38,T39 | 
 | 
| TransCheckSt->TokenHashSt | 
434 | 
Covered | 
T1,T3,T5 | 
 | 
| TransProgSt->EscalateSt | 
568 | 
Covered | 
T14,T44,T62 | 
 | 
| TransProgSt->InvalidSt | 
575 | 
Excluded | 
 | 
[LOW_RISK] The transition from any state to error_terminal state is fully verified in FPV. | 
| TransProgSt->PostTransSt | 
525 | 
Covered | 
T1,T3,T5 | 
 | 
Summary for FSM :: lc_state_q
 | Total | Covered | Percent |  | 
| States | 
21 | 
2 | 
9.52   | 
(Not included in score) | 
| Transitions | 
1 | 
1 | 
100.00 | 
 | 
| Sequences | 
0 | 
0 | 
 | 
 | 
State, Transition and Sequence Details for FSM :: lc_state_q
| states | Line No. | Covered | Tests | 
| LcStDev | 
92 | 
Not Covered | 
 | 
| LcStProd | 
93 | 
Not Covered | 
 | 
| LcStProdEnd | 
94 | 
Not Covered | 
 | 
| LcStRaw | 
295 | 
Covered | 
T1,T11,T23 | 
| LcStRma | 
333 | 
Not Covered | 
 | 
| LcStScrap | 
284 | 
Not Covered | 
 | 
| LcStTestLocked0 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked1 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked2 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked3 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked4 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked5 | 
333 | 
Not Covered | 
 | 
| LcStTestLocked6 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked0 | 
301 | 
Covered | 
T1,T3,T4 | 
| LcStTestUnlocked1 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked2 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked3 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked4 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked5 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked6 | 
333 | 
Not Covered | 
 | 
| LcStTestUnlocked7 | 
333 | 
Not Covered | 
 | 
| transitions | Line No. | Covered | Tests | 
| LcStRaw->LcStTestUnlocked0 | 
301 | 
Covered | 
T1,T14,T17 | 
Summary for FSM :: lc_cnt_q
 | Total | Covered | Percent |  | 
| States | 
25 | 
5 | 
20.00  | 
(Not included in score) | 
| Transitions | 
1 | 
1 | 
100.00 | 
 | 
| Sequences | 
0 | 
0 | 
 | 
 | 
State, Transition and Sequence Details for FSM :: lc_cnt_q
| states | Line No. | Covered | Tests | 
| LcCnt0 | 
305 | 
Covered | 
T14,T35,T36 | 
| LcCnt1 | 
305 | 
Covered | 
T4,T10,T14 | 
| LcCnt10 | 
112 | 
Not Covered | 
 | 
| LcCnt11 | 
113 | 
Not Covered | 
 | 
| LcCnt12 | 
114 | 
Not Covered | 
 | 
| LcCnt13 | 
115 | 
Not Covered | 
 | 
| LcCnt14 | 
116 | 
Not Covered | 
 | 
| LcCnt15 | 
117 | 
Not Covered | 
 | 
| LcCnt16 | 
118 | 
Not Covered | 
 | 
| LcCnt17 | 
119 | 
Not Covered | 
 | 
| LcCnt18 | 
120 | 
Not Covered | 
 | 
| LcCnt19 | 
121 | 
Not Covered | 
 | 
| LcCnt2 | 
104 | 
Covered | 
T3,T4,T13 | 
| LcCnt20 | 
122 | 
Not Covered | 
 | 
| LcCnt21 | 
123 | 
Not Covered | 
 | 
| LcCnt22 | 
124 | 
Not Covered | 
 | 
| LcCnt23 | 
125 | 
Not Covered | 
 | 
| LcCnt24 | 
126 | 
Not Covered | 
 | 
| LcCnt3 | 
105 | 
Covered | 
T3,T14,T15 | 
| LcCnt4 | 
106 | 
Covered | 
T3,T14,T15 | 
| LcCnt5 | 
107 | 
Not Covered | 
 | 
| LcCnt6 | 
108 | 
Not Covered | 
 | 
| LcCnt7 | 
109 | 
Not Covered | 
 | 
| LcCnt8 | 
110 | 
Not Covered | 
 | 
| LcCnt9 | 
111 | 
Not Covered | 
 | 
| transitions | Line No. | Covered | Tests | 
| LcCnt0->LcCnt1 | 
305 | 
Covered | 
T42,T67,T68 | 
Branch Coverage for Instance : tb.dut.u_lc_ctrl_fsm
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
73 | 
72 | 
98.63  | 
| TERNARY | 
732 | 
1 | 
1 | 
100.00 | 
| TERNARY | 
736 | 
1 | 
1 | 
100.00 | 
| CASE | 
242 | 
44 | 
43 | 
97.73  | 
| IF | 
567 | 
3 | 
3 | 
100.00 | 
| IF | 
584 | 
2 | 
2 | 
100.00 | 
| IF | 
585 | 
2 | 
2 | 
100.00 | 
| IF | 
586 | 
2 | 
2 | 
100.00 | 
| IF | 
589 | 
2 | 
2 | 
100.00 | 
| IF | 
684 | 
2 | 
2 | 
100.00 | 
| IF | 
687 | 
2 | 
2 | 
100.00 | 
| IF | 
691 | 
2 | 
2 | 
100.00 | 
| IF | 
694 | 
2 | 
2 | 
100.00 | 
| IF | 
698 | 
2 | 
2 | 
100.00 | 
| IF | 
701 | 
2 | 
2 | 
100.00 | 
| IF | 
882 | 
2 | 
2 | 
100.00 | 
| IF | 
608 | 
2 | 
2 | 
100.00 | 
732          assign token_idx0 = (int'(dec_lc_state_o[0]) < NumLcStates &&
                                                                          
733                               int'(trans_target_i[0]) < NumLcStates) ?
                                                                         -1-  
                                                                         ==>  
                                                                         ==> (Unreachable)  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Unreachable | 
T1,T2,T3 | 
736          assign token_idx1 = (int'(dec_lc_state_o[1]) < NumLcStates &&
                                                                          
737                               int'(trans_target_i[1]) < NumLcStates) ?
                                                                         -1-  
                                                                         ==>  
                                                                         ==> (Unreachable)  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Unreachable | 
T1,T2,T3 | 
242            unique case (fsm_state_q)
                      -1-  
243              ///////////////////////////////////////////////////////////////////
244              // Wait here until OTP has initialized and the
245              // power manager sends an initialization request.
246              ResetSt: begin
247                init_done_o = 1'b0;
248                lc_clk_byp_req   = Off;
249                lc_flash_rma_req = Off;
250                lc_check_byp_en  = Off;
251                if (init_req_i && lc_state_valid_q) begin
                   -2-  
252                  fsm_state_d = IdleSt;
                     ==>
253                  // Fetch LC state vector from OTP.
254                  lc_state_d  = lc_state_i;
255                  lc_cnt_d    = lc_cnt_i;
256                end
                   MISSING_ELSE
                   ==>
257              end
258              ///////////////////////////////////////////////////////////////////
259              // Idle state where life cycle control signals are broadcast.
260              // Note that the life cycle signals are decoded and broadcast
261              // in the lc_ctrl_signal_decode submodule.
262              IdleSt: begin
263                idle_o = 1'b1;
264        
265                // ---------- VOLATILE_TEST_UNLOCKED CODE SECTION START ----------
266                // NOTE THAT THIS IS A FEATURE FOR TEST CHIPS ONLY TO MITIGATE
267                // THE RISK OF A BROKEN OTP MACRO. THIS WILL BE DISABLED VIA
268                // SecVolatileRawUnlockEn AT COMPILETIME FOR PRODUCTION DEVICES.
269                // ---------------------------------------------------------------
270                // Note that if the volatile unlock mechanism is available,
271                // we have to stop fetching the OTP value after a volatile unlock has succeeded.
272                // Otherwise we unconditionally fetch from OTP in this state.
273                if (!(SecVolatileRawUnlockEn && lc_state_q == LcStTestUnlocked0 && lc_cnt_q != LcCnt0) ||
                   -3-  
274                    prim_mubi_pkg::mubi8_test_false_loose(volatile_raw_unlock_success_q)) begin
275                  // Continuously fetch LC state vector from OTP.
276                  // The state is locked in once a transition is started.
277                  lc_state_d    = lc_state_i;
                     ==>
278                  lc_cnt_d      = lc_cnt_i;
279                end
                   MISSING_ELSE
                   ==>
280                // ----------- VOLATILE_TEST_UNLOCKED CODE SECTION END -----------
281        
282                // If the life cycle state is SCRAP, we move the FSM into a terminal
283                // SCRAP state that does not allow any transitions to be initiated anymore.
284                if (lc_state_q == LcStScrap) begin
                   -4-  
285                  fsm_state_d = ScrapSt;
                     ==>
286        
287                // ---------- VOLATILE_TEST_UNLOCKED CODE SECTION START ----------
288                // NOTE THAT THIS IS A FEATURE FOR TEST CHIPS ONLY TO MITIGATE
289                // THE RISK OF A BROKEN OTP MACRO. THIS WILL BE DISABLED VIA
290                // SecVolatileRawUnlockEn AT COMPILETIME FOR PRODUCTION DEVICES.
291                // ---------------------------------------------------------------
292                // Only enter here if volatile RAW unlock is available and enabled.
293                end else if (SecVolatileRawUnlockEn && volatile_raw_unlock_i && trans_cmd_i) begin
                            -5-  
294                  // We only allow transitions from RAW -> TEST_UNLOCKED0
295                  if (lc_state_q == LcStRaw &&
                     -6-  
296                      trans_target_i == {DecLcStateNumRep{DecLcStTestUnlocked0}} &&
297                      !trans_invalid_error_o) begin
298                    // 128bit token check (without passing it through the KMAC)
299                    if (unhashed_token_i == RndCnstRawUnlockTokenHashed) begin
                       -7-  
300                      // We stay in Idle, but update the life cycle state register (volatile).
301                      lc_state_d = LcStTestUnlocked0;
302                      // If the count is 0, we set it to 1 - otherwise we just leave it as is so that the
303                      // register value is in sync with what has been programmed to OTP already (there may
304                      // have been unsuccessul raw unlock attempts before that already incremented it).
305                      lc_cnt_d = (lc_cnt_q == LcCnt0) ? LcCnt1 : lc_cnt_q;
                                                         -8-  
                                                         ==> (Excluded)  
                                                         ==>  
306                      // Re-sample the DFT straps in the pinmux.
307                      // This signal will be delayed by several cycles so that the LC_CTRL signals
308                      // have time to propagate.
309                      set_strap_en_override = 1'b1;
310                      // We have to remember that the transition was successful in order to correctly
311                      // disable the continuos sampling of the life cycle state vector coming from OTP.
312                      volatile_raw_unlock_success_d = prim_mubi_pkg::MuBi8True;
313                      // Indicate that the transition was successful.
314                      trans_success_o = 1'b1;
315                    end else begin
316                      token_invalid_error_o = 1'b1;
                         ==> (Excluded)
Exclude Annotation: VC_COV_UNR
317                      fsm_state_d = PostTransSt;
318                    end
319                  end else begin
320                    // Transition invalid error is set by lc_ctrl_state_transition module.
321                    fsm_state_d = PostTransSt;
                       ==>
322                  end
323                // ----------- VOLATILE_TEST_UNLOCKED CODE SECTION END -----------
324                // Initiate a transition. This will first increment the
325                // life cycle counter before hashing and checking the token.
326                end else if (trans_cmd_i) begin
                            -9-  
327                  fsm_state_d = ClkMuxSt;
                     ==>
328                end
                   MISSING_ELSE
                   ==>
329                // If we are in a non-PROD life cycle state, steer the clock mux if requested. This
330                // action is available in IdleSt so that the mux can be steered without having to initiate
331                // a life cycle transition. If a transition is initiated however, the life cycle controller
332                // will wait for the clock mux acknowledgement in the ClkMuxSt state before proceeding.
333                if (lc_state_q inside {LcStRaw,
                   -10-  
334                                       LcStTestLocked0,
335                                       LcStTestLocked1,
336                                       LcStTestLocked2,
337                                       LcStTestLocked3,
338                                       LcStTestLocked4,
339                                       LcStTestLocked5,
340                                       LcStTestLocked6,
341                                       LcStTestUnlocked0,
342                                       LcStTestUnlocked1,
343                                       LcStTestUnlocked2,
344                                       LcStTestUnlocked3,
345                                       LcStTestUnlocked4,
346                                       LcStTestUnlocked5,
347                                       LcStTestUnlocked6,
348                                       LcStTestUnlocked7,
349                                       LcStRma}) begin
350                  if (use_ext_clock_i) begin
                     -11-  
351                    lc_clk_byp_req = On;
                       ==>
352                  end
                     MISSING_ELSE
                     ==>
353                end
                   MISSING_ELSE
                   ==>
354              end
355              ///////////////////////////////////////////////////////////////////
356              // Clock mux state. If we are in RAW, TEST* or RMA, it is permissible
357              // to switch to an external clock source. If the bypass request is
358              // asserted, we have to wait until the clock mux and clock manager
359              // have switched the mux and the clock divider. Also, we disable the
360              // life cycle partition checks at this point since we are going to
361              // alter the contents in the OTP memory array, which could lead to
362              // spurious escalations.
363              ClkMuxSt: begin
364                lc_check_byp_en = On;
365                if (lc_state_q inside {LcStRaw,
                   -12-  
366                                       LcStTestLocked0,
367                                       LcStTestLocked1,
368                                       LcStTestLocked2,
369                                       LcStTestLocked3,
370                                       LcStTestLocked4,
371                                       LcStTestLocked5,
372                                       LcStTestLocked6,
373                                       LcStTestUnlocked0,
374                                       LcStTestUnlocked1,
375                                       LcStTestUnlocked2,
376                                       LcStTestUnlocked3,
377                                       LcStTestUnlocked4,
378                                       LcStTestUnlocked5,
379                                       LcStTestUnlocked6,
380                                       LcStTestUnlocked7,
381                                       LcStRma}) begin
382                  if (use_ext_clock_i) begin
                     -13-  
383                    lc_clk_byp_req = On;
384                    if (lc_tx_test_true_strict(lc_clk_byp_ack[0])) begin
                       -14-  
385                      fsm_state_d = CntIncrSt;
                         ==>
386                    end
                       MISSING_ELSE
                       ==>
387                  end else begin
388                    fsm_state_d = CntIncrSt;
                       ==>
389                  end
390                end else begin
391                  fsm_state_d = CntIncrSt;
                     ==>
392                end
393              end
394              ///////////////////////////////////////////////////////////////////
395              // This increments the life cycle counter state.
396              CntIncrSt: begin
397                // If the counter has reached the maximum, bail out.
398                if (trans_cnt_oflw_error_o) begin
                   -15-  
399                  fsm_state_d = PostTransSt;
                     ==>
400                end else begin
401                  fsm_state_d = CntProgSt;
                     ==>
402                end
403              end
404              ///////////////////////////////////////////////////////////////////
405              // This programs the life cycle counter state.
406              CntProgSt: begin
407                otp_prog_req_o = 1'b1;
408        
409                // If the clock mux has been steered, double check that this is still the case.
410                // Otherwise abort the transition operation.
411                if (lc_clk_byp_req_o != lc_clk_byp_ack[1]) begin
                   -16-  
412                    fsm_state_d = PostTransSt;
                       ==>
413                    otp_prog_error_o = 1'b1;
414                end
                   MISSING_ELSE
                   ==>
415        
416                // Check return value and abort if there
417                // was an error.
418                if (otp_prog_ack_i) begin
                   -17-  
419                  if (otp_prog_err_i) begin
                     -18-  
420                    fsm_state_d = PostTransSt;
                       ==>
421                    otp_prog_error_o = 1'b1;
422                  end else begin
423                    fsm_state_d = TransCheckSt;
                       ==>
424                  end
425                end
                   MISSING_ELSE
                   ==>
426              end
427              ///////////////////////////////////////////////////////////////////
428              // First transition valid check. This will be repeated several
429              // times below.
430              TransCheckSt: begin
431                if (trans_invalid_error_o) begin
                   -19-  
432                  fsm_state_d = PostTransSt;
                     ==>
433                end else begin
434                  fsm_state_d = TokenHashSt;
                     ==>
435                end
436              end
437              ///////////////////////////////////////////////////////////////////
438              // Hash and compare the token, no matter whether this transition
439              // is conditional or not. Unconditional transitions just use a known
440              // all-zero token value. That way, we always compare a hashed token
441              // and guarantee that no other control flow path exists that could
442              // bypass the token check.
443              // SEC_CM: TOKEN.DIGEST
444              TokenHashSt: begin
445                token_hash_req_o = 1'b1;
446                if (token_hash_ack_i) begin
                   -20-  
447                  // This is the first comparison.
448                  // The token is compared two more times further below.
449                  // Also note that conditional transitions won't be possible if the
450                  // corresponding token is not valid. This only applies to tokens stored in
451                  // OTP. I.e., these tokens first have to be provisioned, before they can be used.
452                  if (hashed_token_i == hashed_token_mux &&
                     -21-  
453                      !token_hash_err_i &&
454                      &hashed_token_valid_mux) begin
455                    fsm_state_d = FlashRmaSt;
                       ==>
456                  end else begin
457                    fsm_state_d = PostTransSt;
                       ==>
458                    token_invalid_error_o = 1'b1;
459                  end
460                end
                   MISSING_ELSE
                   ==>
461              end
462              ///////////////////////////////////////////////////////////////////
463              // Flash RMA state. Note that we check the flash response again
464              // two times later below.
465              FlashRmaSt: begin
466                if (trans_target_i == {DecLcStateNumRep{DecLcStRma}}) begin
                   -22-  
467                  lc_flash_rma_req = On;
468                  if (lc_tx_test_true_strict(lc_flash_rma_ack_buf[0])) begin
                     -23-  
469                    fsm_state_d = TokenCheck0St;
                       ==>
470                  end
                     MISSING_ELSE
                     ==>
471                end else begin
472                  fsm_state_d = TokenCheck0St;
                     ==>
473                end
474              end
475              ///////////////////////////////////////////////////////////////////
476              // Check again two times whether this transition and the hashed
477              // token are valid. Also check again whether the flash RMA
478              // response is valid.
479              // SEC_CM: TOKEN.DIGEST
480              TokenCheck0St,
481              TokenCheck1St: begin
482                if (trans_invalid_error_o) begin
                   -24-  
483                  fsm_state_d = PostTransSt;
                     ==>
484                end else begin
485                  // If any of these RMA are conditions are true,
486                  // all of them must be true at the same time.
487                  if ((trans_target_i != {DecLcStateNumRep{DecLcStRma}} &&
                     -25-  
488                       lc_tx_test_false_strict(lc_flash_rma_req_o) &&
489                       lc_tx_test_false_strict(lc_flash_rma_ack_buf[1])) ||
490                      (trans_target_i == {DecLcStateNumRep{DecLcStRma}} &&
491                       lc_tx_test_true_strict(lc_flash_rma_req_o) &&
492                       lc_tx_test_true_strict(lc_flash_rma_ack_buf[1]))) begin
493                    if (hashed_token_i == hashed_token_mux &&
                       -26-  
494                        !token_hash_err_i &&
495                        &hashed_token_valid_mux) begin
496                      if (fsm_state_q == TokenCheck1St) begin
                         -27-  
497                        // This is the only way we can get into the
498                        // programming state.
499                        fsm_state_d = TransProgSt;
                           ==>
500                      end else begin
501                        fsm_state_d = TokenCheck1St;
                           ==>
502                      end
503                    end else begin
504                      fsm_state_d = PostTransSt;
                         ==>
505                      token_invalid_error_o = 1'b1;
506                    end
507                  // The flash RMA process failed.
508                  end else begin
509                      fsm_state_d = PostTransSt;
                         ==>
510                      flash_rma_error_o = 1'b1;
511                  end
512                end
513              end
514              ///////////////////////////////////////////////////////////////////
515              // Initiate OTP transaction. Note that the concurrent
516              // LC state check is continuously checking whether the
517              // new LC state remains valid. Once the ack returns we are
518              // done with the transition and can go into the terminal PosTransSt.
519              TransProgSt: begin
520                otp_prog_req_o = 1'b1;
521        
522                // If the clock mux has been steered, double check that this is still the case.
523                // Otherwise abort the transition operation.
524                if (lc_clk_byp_req_o != lc_clk_byp_ack[2]) begin
                   -28-  
525                  fsm_state_d = PostTransSt;
                     ==>
526                  otp_prog_error_o = 1'b1;
527                // Also double check that the RMA signals remain stable.
528                // Otherwise abort the transition operation.
529                end else if ((trans_target_i != {DecLcStateNumRep{DecLcStRma}} &&
                            -29-  
530                              (lc_flash_rma_req_o != Off || lc_flash_rma_ack_buf[2] != Off)) ||
531                             (trans_target_i == {DecLcStateNumRep{DecLcStRma}} &&
532                              (lc_flash_rma_req_o != On || lc_flash_rma_ack_buf[2] != On))) begin
533                  fsm_state_d = PostTransSt;
                     ==>
534                  flash_rma_error_o = 1'b1;
535                end else if (otp_prog_ack_i) begin
                            -30-  
536                  fsm_state_d = PostTransSt;
                     ==>
537                  otp_prog_error_o = otp_prog_err_i;
538                  trans_success_o  = ~otp_prog_err_i;
539                end
                   MISSING_ELSE
                   ==>
540              end
541              ///////////////////////////////////////////////////////////////////
542              // Terminal states.
543              ScrapSt,
544              PostTransSt: ;
                 ==>
545        
546        
547              EscalateSt: begin
548                // During an escalation it is okay to de-assert token_hash_req without receivng ACK.
549                token_hash_req_chk_o = 1'b0;
                   ==>
550              end
551        
552              InvalidSt: begin
553                // During an escalation it is okay to de-assert token_hash_req without receivng ACK.
554                token_hash_req_chk_o = 1'b0;
                   ==>
555                state_invalid_error_o = 1'b1;
556              end
557              ///////////////////////////////////////////////////////////////////
558              // Go to terminal error state if we get here.
559              default: begin
560                fsm_state_d = InvalidSt;
                   ==>
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- | Status | Tests | Exclude Annotation | 
| ResetSt  | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T2,T3 | 
 | 
| ResetSt  | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T2,T3 | 
 | 
| IdleSt  | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T2,T3 | 
 | 
| IdleSt  | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T31,T32 | 
 | 
| IdleSt  | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T44,T45,T46 | 
 | 
| IdleSt  | 
- | 
- | 
0 | 
1 | 
1 | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Excluded | 
T54,T55 | 
VC_COV_UNR | 
| IdleSt  | 
- | 
- | 
0 | 
1 | 
1 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T31,T32 | 
 | 
| IdleSt  | 
- | 
- | 
0 | 
1 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Excluded | 
 | 
VC_COV_UNR | 
| IdleSt  | 
- | 
- | 
0 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T32,T33,T34 | 
 | 
| IdleSt  | 
- | 
- | 
0 | 
0 | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
 | 
| IdleSt  | 
- | 
- | 
0 | 
0 | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T2,T3 | 
 | 
| IdleSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T6 | 
 | 
| IdleSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
 | 
| IdleSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T2,T3,T4 | 
 | 
| ClkMuxSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T11 | 
 | 
| ClkMuxSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T69,T70,T71 | 
 | 
| ClkMuxSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T3,T4,T11 | 
 | 
| ClkMuxSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T3,T4,T5 | 
 | 
| CntIncrSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T38,T39,T42 | 
 | 
| CntIncrSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T17,T38,T39 | 
 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T4,T10,T16 | 
 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
 | 
| CntProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
 | 
| TransCheckSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T35,T38,T39 | 
 | 
| TransCheckSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
 | 
| TokenHashSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
 | 
| TokenHashSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T17,T37,T35 | 
 | 
| TokenHashSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
 | 
| FlashRmaSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T5,T11,T14 | 
 | 
| FlashRmaSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T5,T11,T14 | 
 | 
| FlashRmaSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T35,T41,T47 | 
 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
1 | 
1 | 
1 | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
1 | 
1 | 
0 | 
- | 
- | 
- | 
Covered | 
T1,T3,T5 | 
 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
1 | 
0 | 
- | 
- | 
- | 
- | 
Not Covered | 
 | 
 | 
| TokenCheck0St TokenCheck1St  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
0 | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T17,T38,T39 | 
 | 
| TransProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
1 | 
- | 
- | 
Covered | 
T48,T49,T50 | 
 | 
| TransProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
1 | 
- | 
Covered | 
T17,T42,T51 | 
 | 
| TransProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
0 | 
1 | 
Covered | 
T1,T3,T5 | 
 | 
| TransProgSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
0 | 
0 | 
0 | 
Covered | 
T1,T3,T5 | 
 | 
| ScrapSt PostTransSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T1,T3,T4 | 
 | 
| EscalateSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T4,T10,T13 | 
 | 
| InvalidSt  | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T13,T15,T17 | 
 | 
| default | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
- | 
Covered | 
T13,T43,T60 | 
 | 
567            if (esc_scrap_state0_i || esc_scrap_state1_i) begin
               -1-  
568              fsm_state_d = EscalateSt;
                 ==>
569            // SEC_CM: MAIN.FSM.LOCAL_ESC
570            // If at any time the life cycle state encoding or any other FSM state within this module
571            // is not valid, we jump into the terminal error state right away.
572            // Note that state_invalid_error is a multibit error signal
573            // with different error sources - need to reduce this to one bit here.
574            end else if ((|state_invalid_error | token_if_fsm_err_i) && (fsm_state_q != EscalateSt)) begin
                        -2-                                  
575              fsm_state_d = InvalidSt;
                 ==>
576              state_invalid_error_o = 1'b1;
577            end
               MISSING_ELSE
               ==>
Branches:
| -1- | -2- | Status | Tests | 
| 1 | 
- | 
Covered | 
T4,T10,T13 | 
| 0 | 
1 | 
Covered | 
T13,T15,T17 | 
| 0 | 
0 | 
Covered | 
T1,T2,T3 | 
584          `PRIM_FLOP_SPARSE_FSM(u_fsm_state_regs, fsm_state_d, fsm_state_q, fsm_state_e, ResetSt)
             -1-                                                                                       
             ==>                                                                                       
             ==>                                                                                       
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
585          `PRIM_FLOP_SPARSE_FSM(u_state_regs, lc_state_d, lc_state_q, lc_state_e, LcStScrap)
             -1-                                                                                  
             ==>                                                                                  
             ==>                                                                                  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
586          `PRIM_FLOP_SPARSE_FSM(u_cnt_regs, lc_cnt_d, lc_cnt_q, lc_cnt_e, LcCnt24)
             -1-                                                                        
             ==>                                                                        
             ==>                                                                        
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
589            if (!rst_ni) begin
               -1-  
590              lc_state_valid_q <= 1'b0;
                 ==>
591            end else begin
592              lc_state_valid_q <= lc_state_valid_d;
                 ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
684            if (lc_tx_test_true_strict(test_tokens_valid[0])) begin
               -1-  
685              hashed_tokens_lower[TestUnlockTokenIdx] = test_unlock_token_lower;
                 ==>
686            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
687            if (lc_tx_test_true_strict(test_tokens_valid[1])) begin
               -1-  
688              hashed_tokens_upper[TestUnlockTokenIdx] = test_unlock_token_upper;
                 ==>
689            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
691            if (lc_tx_test_true_strict(test_tokens_valid[2])) begin
               -1-  
692              hashed_tokens_lower[TestExitTokenIdx] = test_exit_token_lower;
                 ==>
693            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
694            if (lc_tx_test_true_strict(test_tokens_valid[3])) begin
               -1-  
695              hashed_tokens_upper[TestExitTokenIdx] = test_exit_token_upper;
                 ==>
696            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
698            if (lc_tx_test_true_strict(rma_token_valid[0])) begin
               -1-  
699              hashed_tokens_lower[RmaTokenIdx] = rma_token_lower;
                 ==>
700            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
701            if (lc_tx_test_true_strict(rma_token_valid[1])) begin
               -1-  
702              hashed_tokens_upper[RmaTokenIdx] = rma_token_upper;
                 ==>
703            end
               MISSING_ELSE
               ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T3,T4,T5 | 
| 0 | 
Covered | 
T17,T52,T53 | 
882          `ASSERT_FPV_LINEAR_FSM(SecCmCFILinear_A, fsm_state_q, fsm_state_e)
             -1-                                                                  
             ==>                                                                  
             ==>                                                                  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
608              if(!rst_ni) begin
                 -1-  
609                strap_en_override_q <= '0;
                   ==>
610                volatile_raw_unlock_success_q <= prim_mubi_pkg::MuBi8False;
611              end else begin
612                strap_en_override_q <= {strap_en_override_q[NumStrapDelayRegs-2:0],
                   ==>
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_lc_ctrl_fsm
Assertion Details
ClkBypStaysOnOnceAsserted_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
3192570 | 
0 | 
71 | 
| T1 | 
1578 | 
1342 | 
0 | 
1 | 
| T2 | 
905 | 
0 | 
0 | 
0 | 
| T3 | 
3817 | 
320 | 
0 | 
0 | 
| T4 | 
5102 | 
0 | 
0 | 
0 | 
| T5 | 
6928 | 
0 | 
0 | 
0 | 
| T6 | 
9137 | 
6217 | 
0 | 
1 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T8 | 
0 | 
16525 | 
0 | 
1 | 
| T9 | 
0 | 
0 | 
0 | 
1 | 
| T10 | 
25330 | 
0 | 
0 | 
0 | 
| T11 | 
20632 | 
4763 | 
0 | 
1 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T18 | 
0 | 
9321 | 
0 | 
0 | 
| T19 | 
0 | 
34430 | 
0 | 
0 | 
| T24 | 
0 | 
0 | 
0 | 
1 | 
| T31 | 
0 | 
1054 | 
0 | 
1 | 
| T36 | 
0 | 
2516 | 
0 | 
0 | 
| T69 | 
0 | 
0 | 
0 | 
1 | 
| T72 | 
0 | 
3387 | 
0 | 
0 | 
| T73 | 
0 | 
0 | 
0 | 
1 | 
| T74 | 
0 | 
0 | 
0 | 
1 | 
EscStaysOnOnceAsserted_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
11718090 | 
0 | 
9 | 
| T4 | 
5102 | 
1477 | 
0 | 
0 | 
| T5 | 
6928 | 
0 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T10 | 
25330 | 
4877 | 
0 | 
0 | 
| T11 | 
20632 | 
0 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
6718 | 
1903 | 
0 | 
0 | 
| T14 | 
0 | 
11342 | 
0 | 
0 | 
| T15 | 
0 | 
10459 | 
0 | 
0 | 
| T16 | 
0 | 
661 | 
0 | 
0 | 
| T17 | 
0 | 
3604 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
0 | 
| T23 | 
619 | 
0 | 
0 | 
0 | 
| T38 | 
0 | 
2123 | 
0 | 
0 | 
| T39 | 
0 | 
995 | 
0 | 
0 | 
| T44 | 
0 | 
15036 | 
0 | 
0 | 
| T45 | 
0 | 
0 | 
0 | 
1 | 
| T75 | 
0 | 
0 | 
0 | 
1 | 
| T76 | 
0 | 
0 | 
0 | 
1 | 
| T77 | 
0 | 
0 | 
0 | 
1 | 
| T78 | 
0 | 
0 | 
0 | 
1 | 
| T79 | 
0 | 
0 | 
0 | 
1 | 
| T80 | 
0 | 
0 | 
0 | 
1 | 
| T81 | 
0 | 
0 | 
0 | 
1 | 
| T82 | 
0 | 
0 | 
0 | 
1 | 
FlashRmaStaysOnOnceAsserted_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
386492 | 
0 | 
10 | 
| T5 | 
6928 | 
175 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T10 | 
25330 | 
0 | 
0 | 
0 | 
| T11 | 
20632 | 
58 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
6718 | 
0 | 
0 | 
0 | 
| T14 | 
22855 | 
555 | 
0 | 
0 | 
| T15 | 
0 | 
1691 | 
0 | 
0 | 
| T17 | 
0 | 
547 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
0 | 
| T23 | 
619 | 
0 | 
0 | 
0 | 
| T35 | 
0 | 
480 | 
0 | 
0 | 
| T38 | 
0 | 
1043 | 
0 | 
0 | 
| T39 | 
0 | 
321 | 
0 | 
0 | 
| T44 | 
0 | 
594 | 
0 | 
0 | 
| T70 | 
0 | 
0 | 
0 | 
1 | 
| T72 | 
0 | 
35 | 
0 | 
0 | 
| T83 | 
0 | 
0 | 
0 | 
1 | 
| T84 | 
0 | 
0 | 
0 | 
1 | 
| T85 | 
0 | 
0 | 
0 | 
1 | 
| T86 | 
0 | 
0 | 
0 | 
1 | 
| T87 | 
0 | 
0 | 
0 | 
1 | 
| T88 | 
0 | 
0 | 
0 | 
1 | 
| T89 | 
0 | 
0 | 
0 | 
1 | 
| T90 | 
0 | 
0 | 
0 | 
1 | 
| T91 | 
0 | 
0 | 
0 | 
1 | 
FsmStateKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
51201573 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
LcCntKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
51201573 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
LcStateKnown_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
51201573 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
NoClkBypInProdStates_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
7108066 | 
0 | 
0 | 
| T2 | 
905 | 
811 | 
0 | 
0 | 
| T3 | 
3817 | 
220 | 
0 | 
0 | 
| T4 | 
5102 | 
323 | 
0 | 
0 | 
| T5 | 
6928 | 
6714 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
12109 | 
0 | 
0 | 
| T10 | 
25330 | 
5046 | 
0 | 
0 | 
| T11 | 
20632 | 
7701 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
0 | 
1257 | 
0 | 
0 | 
| T14 | 
0 | 
2982 | 
0 | 
0 | 
| T15 | 
0 | 
5493 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
0 | 
SecCmCFILinear_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
262165 | 
0 | 
2059 | 
| T3 | 
3817 | 
143 | 
0 | 
11 | 
| T4 | 
5102 | 
72 | 
0 | 
1 | 
| T5 | 
6928 | 
11 | 
0 | 
11 | 
| T6 | 
9137 | 
0 | 
0 | 
1 | 
| T7 | 
12200 | 
0 | 
0 | 
1 | 
| T10 | 
25330 | 
84 | 
0 | 
1 | 
| T11 | 
20632 | 
44 | 
0 | 
11 | 
| T12 | 
942 | 
0 | 
0 | 
1 | 
| T13 | 
6718 | 
94 | 
0 | 
1 | 
| T14 | 
0 | 
396 | 
0 | 
0 | 
| T15 | 
0 | 
111 | 
0 | 
0 | 
| T16 | 
0 | 
30 | 
0 | 
0 | 
| T17 | 
0 | 
385 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
11 | 
SecCmCFITerminal0_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
8380010 | 
0 | 
0 | 
| T1 | 
1578 | 
945 | 
0 | 
0 | 
| T2 | 
905 | 
0 | 
0 | 
0 | 
| T3 | 
3817 | 
703 | 
0 | 
0 | 
| T4 | 
5102 | 
731 | 
0 | 
0 | 
| T5 | 
6928 | 
1429 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T10 | 
25330 | 
5870 | 
0 | 
0 | 
| T11 | 
20632 | 
996 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
0 | 
1770 | 
0 | 
0 | 
| T14 | 
0 | 
6 | 
0 | 
0 | 
| T15 | 
0 | 
15291 | 
0 | 
0 | 
| T22 | 
0 | 
756 | 
0 | 
0 | 
SecCmCFITerminal1_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
60894 | 
0 | 
0 | 
| T8 | 
17141 | 
0 | 
0 | 
0 | 
| T18 | 
61993 | 
0 | 
0 | 
0 | 
| T19 | 
105875 | 
0 | 
0 | 
0 | 
| T20 | 
37814 | 
0 | 
0 | 
0 | 
| T39 | 
18457 | 
0 | 
0 | 
0 | 
| T43 | 
5798 | 
0 | 
0 | 
0 | 
| T44 | 
30968 | 
4 | 
0 | 
0 | 
| T45 | 
1652 | 
1562 | 
0 | 
0 | 
| T46 | 
0 | 
1 | 
0 | 
0 | 
| T60 | 
15037 | 
0 | 
0 | 
0 | 
| T63 | 
0 | 
8 | 
0 | 
0 | 
| T64 | 
0 | 
4 | 
0 | 
0 | 
| T67 | 
0 | 
59 | 
0 | 
0 | 
| T70 | 
0 | 
10 | 
0 | 
0 | 
| T72 | 
27673 | 
0 | 
0 | 
0 | 
| T92 | 
0 | 
477 | 
0 | 
0 | 
| T93 | 
0 | 
427 | 
0 | 
0 | 
| T94 | 
0 | 
585 | 
0 | 
0 | 
SecCmCFITerminal2_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
4645372 | 
0 | 
0 | 
| T4 | 
5102 | 
1489 | 
0 | 
0 | 
| T5 | 
6928 | 
0 | 
0 | 
0 | 
| T6 | 
9137 | 
0 | 
0 | 
0 | 
| T7 | 
12200 | 
0 | 
0 | 
0 | 
| T10 | 
25330 | 
4891 | 
0 | 
0 | 
| T11 | 
20632 | 
0 | 
0 | 
0 | 
| T12 | 
942 | 
0 | 
0 | 
0 | 
| T13 | 
6718 | 
1212 | 
0 | 
0 | 
| T14 | 
0 | 
11401 | 
0 | 
0 | 
| T15 | 
0 | 
5348 | 
0 | 
0 | 
| T16 | 
0 | 
666 | 
0 | 
0 | 
| T17 | 
0 | 
2682 | 
0 | 
0 | 
| T22 | 
1051 | 
0 | 
0 | 
0 | 
| T23 | 
619 | 
0 | 
0 | 
0 | 
| T38 | 
0 | 
2139 | 
0 | 
0 | 
| T39 | 
0 | 
1003 | 
0 | 
0 | 
| T44 | 
0 | 
15112 | 
0 | 
0 | 
SecCmCFITerminal3_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
54490906 | 
7025350 | 
0 | 
0 | 
| T13 | 
6718 | 
694 | 
0 | 
0 | 
| T14 | 
22855 | 
0 | 
0 | 
0 | 
| T15 | 
41510 | 
5115 | 
0 | 
0 | 
| T16 | 
2099 | 
0 | 
0 | 
0 | 
| T17 | 
18111 | 
944 | 
0 | 
0 | 
| T21 | 
0 | 
9614 | 
0 | 
0 | 
| T23 | 
619 | 
0 | 
0 | 
0 | 
| T35 | 
33457 | 
0 | 
0 | 
0 | 
| T37 | 
25701 | 
0 | 
0 | 
0 | 
| T38 | 
56642 | 
0 | 
0 | 
0 | 
| T43 | 
0 | 
754 | 
0 | 
0 | 
| T46 | 
0 | 
4536 | 
0 | 
0 | 
| T52 | 
0 | 
2503 | 
0 | 
0 | 
| T60 | 
0 | 
3171 | 
0 | 
0 | 
| T95 | 
0 | 
9151 | 
0 | 
0 | 
| T96 | 
0 | 
915 | 
0 | 
0 | 
| T97 | 
1402 | 
0 | 
0 | 
0 | 
u_cnt_regs_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
49480781 | 
46501357 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
u_fsm_state_regs_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
52777257 | 
49610468 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 | 
u_state_regs_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
51079967 | 
48100041 | 
0 | 
0 | 
| T1 | 
1578 | 
1486 | 
0 | 
0 | 
| T2 | 
905 | 
832 | 
0 | 
0 | 
| T3 | 
3817 | 
2637 | 
0 | 
0 | 
| T4 | 
5102 | 
4096 | 
0 | 
0 | 
| T5 | 
6928 | 
6750 | 
0 | 
0 | 
| T6 | 
9137 | 
9064 | 
0 | 
0 | 
| T7 | 
12200 | 
12124 | 
0 | 
0 | 
| T10 | 
25330 | 
24283 | 
0 | 
0 | 
| T11 | 
20632 | 
20303 | 
0 | 
0 | 
| T12 | 
942 | 
852 | 
0 | 
0 |