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



Module Instance : tb.dut.u_edn_core.u_edn_main_sm

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.14 100.00 94.44 98.65 97.62 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
98.16 100.00 94.44 98.65 97.73 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.31 100.00 91.03 98.23 100.00 u_edn_core


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
u_state_regs 100.00 100.00 100.00 100.00


Since this is the module's only instance, the coverage report is the same as for the module.
Line Coverage for Module : edn_main_sm
Line No.TotalCoveredPercent
TOTAL108108100.00
ALWAYS4233100.00
CONT_ASSIGN4411100.00
ALWAYS47104104100.00

41 42 3/3 `PRIM_FLOP_SPARSE_FSM(u_state_regs, state_d, state_q, state_e, Idle) Tests: T1 T2 T3  | T1 T2 T3  | T1 T2 T3 
PRIM_FLOP_SPARSE_FSM(u_state_regs, state_d, state_q, state_e, Idle): 42.1 `ifdef SIMULATION 42.2 prim_sparse_fsm_flop #( 42.3 .StateEnumT(state_e), 42.4 .Width($bits(state_e)), 42.5 .ResetValue($bits(state_e)'(Idle)), 42.6 .EnableAlertTriggerSVA(1), 42.7 .CustomForceName("state_q") 42.8 ) u_state_regs ( 42.9 .clk_i ( clk_i ), 42.10 .rst_ni ( rst_ni ), 42.11 .state_i ( state_d ), 42.12 .state_o ( ) 42.13 ); 42.14 always_ff @(posedge clk_i or negedge rst_ni) begin 42.15 1/1 if (!rst_ni) begin Tests: T1 T2 T3  42.16 1/1 state_q <= Idle; Tests: T1 T2 T3  42.17 end else begin 42.18 1/1 state_q <= state_d; Tests: T1 T2 T3  42.19 end 42.20 end 42.21 u_state_regs_A: assert property (@(posedge clk_i) disable iff ((!rst_ni) !== '0) (state_q === u_state_regs.state_o)) 42.22 else begin 42.23 `ifdef UVM 42.24 uvm_pkg::uvm_report_error("ASSERT FAILED", "u_state_regs_A", uvm_pkg::UVM_NONE, 42.25 "../src/lowrisc_ip_edn_0.1/rtl/edn_main_sm.sv", 42, "", 1); 42.26 `else 42.27 $error("%0t: (%0s:%0d) [%m] [ASSERT FAILED] %0s", $time, `__FILE__, `__LINE__, 42.28 `PRIM_STRINGIFY(u_state_regs_A)); 42.29 `endif 42.30 end 42.31 `else 42.32 prim_sparse_fsm_flop #( 42.33 .StateEnumT(state_e), 42.34 .Width($bits(state_e)), 42.35 .ResetValue($bits(state_e)'(Idle)), 42.36 .EnableAlertTriggerSVA(1) 42.37 ) u_state_regs ( 42.38 .clk_i ( `PRIM_FLOP_CLK ), 42.39 .rst_ni ( `PRIM_FLOP_RST ), 42.40 .state_i ( state_d ), 42.41 .state_o ( state_q ) 42.42 ); 42.43 `endif43 44 1/1 assign main_sm_state_o = state_q; Tests: T1 T2 T3  45 46 always_comb begin 47 1/1 state_d = state_q; Tests: T1 T2 T3  48 1/1 boot_wr_ins_cmd_o = 1'b0; Tests: T1 T2 T3  49 1/1 boot_send_ins_cmd_o = 1'b0; Tests: T1 T2 T3  50 1/1 boot_wr_gen_cmd_o = 1'b0; Tests: T1 T2 T3  51 1/1 boot_wr_uni_cmd_o = 1'b0; Tests: T1 T2 T3  52 1/1 accept_sw_cmds_pulse_o = 1'b0; Tests: T1 T2 T3  53 1/1 auto_req_mode_busy_o = 1'b0; Tests: T1 T2 T3  54 1/1 capt_gencmd_fifo_cnt_o = 1'b0; Tests: T1 T2 T3  55 1/1 send_gencmd_o = 1'b0; Tests: T1 T2 T3  56 1/1 capt_rescmd_fifo_cnt_o = 1'b0; Tests: T1 T2 T3  57 1/1 send_rescmd_o = 1'b0; Tests: T1 T2 T3  58 1/1 main_sm_done_pulse_o = 1'b0; Tests: T1 T2 T3  59 1/1 main_sm_err_o = 1'b0; Tests: T1 T2 T3  60 1/1 reject_csrng_entropy_o = 1'b0; Tests: T1 T2 T3  61 1/1 sw_cmd_mode_o = 1'b0; Tests: T1 T2 T3  62 1/1 unique case (state_q) Tests: T1 T2 T3  63 Idle: begin 64 1/1 if (boot_req_mode_i && edn_enable_i) begin Tests: T1 T2 T3  65 1/1 state_d = BootLoadIns; Tests: T3 T22 T23  66 1/1 end else if (auto_req_mode_i && edn_enable_i) begin Tests: T1 T2 T3  67 1/1 accept_sw_cmds_pulse_o = 1'b1; Tests: T5 T9 T10  68 1/1 sw_cmd_mode_o = 1'b1; Tests: T5 T9 T10  69 1/1 state_d = AutoLoadIns; Tests: T5 T9 T10  70 1/1 end else if (edn_enable_i) begin Tests: T1 T2 T3  71 1/1 main_sm_done_pulse_o = 1'b1; Tests: T1 T2 T3  72 1/1 accept_sw_cmds_pulse_o = 1'b1; Tests: T1 T2 T3  73 1/1 sw_cmd_mode_o = 1'b1; Tests: T1 T2 T3  74 1/1 state_d = SWPortMode; Tests: T1 T2 T3  75 end MISSING_ELSE 76 end 77 BootLoadIns: begin 78 1/1 boot_wr_ins_cmd_o = 1'b1; Tests: T3 T22 T23  79 1/1 boot_send_ins_cmd_o = 1'b1; Tests: T3 T22 T23  80 1/1 state_d = BootInsAckWait; Tests: T3 T22 T23  81 end 82 BootInsAckWait: begin 83 1/1 boot_send_ins_cmd_o = 1'b1; Tests: T3 T22 T23  84 1/1 if (csrng_cmd_ack_i) begin Tests: T3 T22 T23  85 1/1 state_d = BootLoadGen; Tests: T3 T22 T23  86 end MISSING_ELSE 87 end 88 BootLoadGen: begin 89 1/1 boot_wr_gen_cmd_o = 1'b1; Tests: T3 T22 T23  90 1/1 state_d = BootGenAckWait; Tests: T3 T22 T23  91 end 92 BootGenAckWait: begin 93 1/1 if (csrng_cmd_ack_i) begin Tests: T3 T22 T23  94 1/1 state_d = BootPulse; Tests: T3 T22 T23  95 end MISSING_ELSE 96 end 97 BootPulse: begin 98 1/1 state_d = BootDone; Tests: T3 T22 T23  99 end 100 BootDone: begin 101 1/1 if (!boot_req_mode_i) begin Tests: T3 T22 T23  102 1/1 state_d = BootLoadUni; Tests: T3 T23 T28  103 end MISSING_ELSE 104 end 105 BootLoadUni: begin 106 1/1 boot_wr_uni_cmd_o = 1'b1; Tests: T3 T23 T28  107 1/1 state_d = BootUniAckWait; Tests: T3 T23 T28  108 end 109 BootUniAckWait: begin 110 1/1 if (csrng_cmd_ack_i) begin Tests: T3 T23 T28  111 1/1 main_sm_done_pulse_o = 1'b1; Tests: T3 T123 T115  112 1/1 state_d = Idle; Tests: T3 T123 T115  113 end MISSING_ELSE 114 end 115 //----------------------------------- 116 AutoLoadIns: begin 117 1/1 sw_cmd_mode_o = 1'b1; Tests: T5 T9 T10  118 1/1 if (sw_cmd_req_load_i) begin Tests: T5 T9 T10  119 1/1 state_d = AutoFirstAckWait; Tests: T5 T9 T7  120 end MISSING_ELSE 121 end 122 AutoFirstAckWait: begin 123 1/1 sw_cmd_mode_o = 1'b1; Tests: T5 T9 T7  124 1/1 if (csrng_cmd_ack_i) begin Tests: T5 T9 T7  125 1/1 state_d = AutoDispatch; Tests: T5 T9 T7  126 end MISSING_ELSE 127 end 128 AutoAckWait: begin 129 1/1 auto_req_mode_busy_o = 1'b1; Tests: T5 T9 T7  130 1/1 if (csrng_cmd_ack_i) begin Tests: T5 T9 T7  131 1/1 state_d = AutoDispatch; Tests: T5 T9 T7  132 end MISSING_ELSE 133 end 134 AutoDispatch: begin 135 1/1 auto_req_mode_busy_o = 1'b1; Tests: T5 T9 T7  136 1/1 if (!auto_req_mode_i) begin Tests: T5 T9 T7  137 1/1 main_sm_done_pulse_o = 1'b1; Tests: T18 T117 T11  138 1/1 state_d = Idle; Tests: T18 T117 T11  139 end else begin 140 1/1 if (max_reqs_cnt_zero_i) begin Tests: T5 T9 T7  141 1/1 state_d = AutoCaptReseedCnt; Tests: T5 T9 T7  142 end else begin 143 1/1 state_d = AutoCaptGenCnt; Tests: T5 T9 T7  144 end 145 end 146 end 147 AutoCaptGenCnt: begin 148 1/1 auto_req_mode_busy_o = 1'b1; Tests: T5 T9 T7  149 1/1 capt_gencmd_fifo_cnt_o = 1'b1; Tests: T5 T9 T7  150 1/1 state_d = AutoSendGenCmd; Tests: T5 T9 T7  151 end 152 AutoSendGenCmd: begin 153 1/1 auto_req_mode_busy_o = 1'b1; Tests: T5 T9 T7  154 1/1 send_gencmd_o = 1'b1; Tests: T5 T9 T7  155 1/1 if (cmd_sent_i) begin Tests: T5 T9 T7  156 1/1 state_d = AutoAckWait; Tests: T5 T9 T7  157 end MISSING_ELSE 158 end 159 AutoCaptReseedCnt: begin 160 1/1 auto_req_mode_busy_o = 1'b1; Tests: T5 T9 T7  161 1/1 capt_rescmd_fifo_cnt_o = 1'b1; Tests: T5 T9 T7  162 1/1 state_d = AutoSendReseedCmd; Tests: T5 T9 T7  163 end 164 AutoSendReseedCmd: begin 165 1/1 auto_req_mode_busy_o = 1'b1; Tests: T5 T9 T7  166 1/1 send_rescmd_o = 1'b1; Tests: T5 T9 T7  167 1/1 if (cmd_sent_i) begin Tests: T5 T9 T7  168 1/1 state_d = AutoAckWait; Tests: T9 T49 T17  169 end MISSING_ELSE 170 end 171 SWPortMode: begin 172 1/1 sw_cmd_mode_o = 1'b1; Tests: T1 T2 T3  173 end 174 RejectCsrngEntropy: begin 175 1/1 reject_csrng_entropy_o = 1'b1; Tests: T23 T10 T28  176 end 177 Error: begin 178 1/1 main_sm_err_o = 1'b1; Tests: T4 T5 T30  179 end 180 default: begin 181 state_d = Error; 182 main_sm_err_o = 1'b1; 183 end 184 endcase 185 186 1/1 if (local_escalate_i || csrng_ack_err_i) begin Tests: T1 T2 T3  187 // Either move into RejectCsrngEntropy or Error but don't move out of Error as it's terminal. 188 1/1 state_d = local_escalate_i ? Error : Tests: T4 T5 T23  189 state_q == Error ? Error : RejectCsrngEntropy; 190 // Tie off outputs, except for main_sm_err_o, auto_req_mode_busy_o, boot_send_ins_cmd_o, 191 // sw_cmd_mode_o and reject_csrng_entropy_o. 192 1/1 boot_wr_ins_cmd_o = 1'b0; Tests: T4 T5 T23  193 1/1 boot_wr_gen_cmd_o = 1'b0; Tests: T4 T5 T23  194 1/1 boot_wr_uni_cmd_o = 1'b0; Tests: T4 T5 T23  195 1/1 accept_sw_cmds_pulse_o = 1'b0; Tests: T4 T5 T23  196 1/1 capt_gencmd_fifo_cnt_o = 1'b0; Tests: T4 T5 T23  197 1/1 send_gencmd_o = 1'b0; Tests: T4 T5 T23  198 1/1 capt_rescmd_fifo_cnt_o = 1'b0; Tests: T4 T5 T23  199 1/1 send_rescmd_o = 1'b0; Tests: T4 T5 T23  200 1/1 main_sm_done_pulse_o = 1'b0; Tests: T4 T5 T23  201 1/1 end else if (!edn_enable_i && state_q inside {BootLoadIns, BootInsAckWait, BootLoadGen, Tests: T1 T2 T3  202 BootGenAckWait, BootLoadUni, BootUniAckWait, 203 BootPulse, BootDone, 204 AutoLoadIns, AutoFirstAckWait, AutoAckWait, 205 AutoDispatch, AutoCaptGenCnt, AutoSendGenCmd, 206 AutoCaptReseedCnt, AutoSendReseedCmd, 207 SWPortMode, RejectCsrngEntropy 208 }) begin 209 // Only go to idle if the state is legal and not Idle or Error. 210 // Even when disabled, illegal states must result in a transition to Error. 211 1/1 state_d = Idle; Tests: T22 T5 T23  212 // Tie off outputs, except for main_sm_err_o. 213 1/1 boot_wr_ins_cmd_o = 1'b0; Tests: T22 T5 T23  214 1/1 boot_send_ins_cmd_o = 1'b0; Tests: T22 T5 T23  215 1/1 boot_wr_gen_cmd_o = 1'b0; Tests: T22 T5 T23  216 1/1 boot_wr_uni_cmd_o = 1'b0; Tests: T22 T5 T23  217 1/1 accept_sw_cmds_pulse_o = 1'b0; Tests: T22 T5 T23  218 1/1 auto_req_mode_busy_o = 1'b0; Tests: T22 T5 T23  219 1/1 capt_gencmd_fifo_cnt_o = 1'b0; Tests: T22 T5 T23  220 1/1 send_gencmd_o = 1'b0; Tests: T22 T5 T23  221 1/1 capt_rescmd_fifo_cnt_o = 1'b0; Tests: T22 T5 T23  222 1/1 send_rescmd_o = 1'b0; Tests: T22 T5 T23  223 1/1 sw_cmd_mode_o = 1'b0; Tests: T22 T5 T23  224 1/1 reject_csrng_entropy_o = 1'b0; Tests: T22 T5 T23  225 1/1 main_sm_done_pulse_o = 1'b1; Tests: T22 T5 T23  226 end MISSING_ELSE

Cond Coverage for Module : edn_main_sm
TotalCoveredPercent
Conditions181794.44
Logical181794.44
Non-Logical00
Event00

 LINE       64
 EXPRESSION (boot_req_mode_i && edn_enable_i)
             -------1-------    ------2-----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT22,T62,T65
11CoveredT3,T22,T23

 LINE       66
 EXPRESSION (auto_req_mode_i && edn_enable_i)
             -------1-------    ------2-----
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT5,T9,T10
11CoveredT5,T9,T10

 LINE       186
 EXPRESSION (local_escalate_i || csrng_ack_err_i)
             --------1-------    -------2-------
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT23,T10,T28
10CoveredT4,T5,T30

 LINE       188
 EXPRESSION (local_escalate_i ? Error : ((state_q == Error) ? Error : RejectCsrngEntropy))
             --------1-------
-1-StatusTests
0CoveredT23,T10,T28
1CoveredT4,T5,T30

 LINE       188
 SUB-EXPRESSION ((state_q == Error) ? Error : RejectCsrngEntropy)
                 ---------1--------
-1-StatusTests
0CoveredT23,T10,T28
1Not Covered

 LINE       188
 SUB-EXPRESSION (state_q == Error)
                ---------1--------
-1-StatusTests
0CoveredT4,T5,T23
1CoveredT4,T5,T30

 LINE       201
 EXPRESSION 
 Number  Term
      1  ((!edn_enable_i)) && 
      2  (state_q inside {BootLoadIns, BootInsAckWait, BootLoadGen, BootGenAckWait, BootLoadUni, BootUniAckWait, BootPulse, BootDone, AutoLoadIns, AutoFirstAckWait, AutoAckWait, AutoDispatch, AutoCaptGenCnt, AutoSendGenCmd, AutoCaptReseedCnt, AutoSendReseedCmd, SWPortMode, RejectCsrngEntropy}))
-1--2-StatusTests
01CoveredT1,T2,T3
10CoveredT1,T2,T3
11CoveredT22,T5,T23

FSM Coverage for Module : edn_main_sm
Summary for FSM :: state_q
TotalCoveredPercent
States 20 20 100.00 (Not included in score)
Transitions 74 73 98.65
Sequences 0 0

State, Transition and Sequence Details for FSM :: state_q
statesLine No.CoveredTests
AutoAckWait 156 Covered T5,T9,T7
AutoCaptGenCnt 143 Covered T5,T9,T7
AutoCaptReseedCnt 141 Covered T5,T9,T7
AutoDispatch 125 Covered T5,T9,T7
AutoFirstAckWait 119 Covered T5,T9,T7
AutoLoadIns 69 Covered T5,T9,T10
AutoSendGenCmd 150 Covered T5,T9,T7
AutoSendReseedCmd 162 Covered T5,T9,T7
BootDone 98 Covered T3,T22,T23
BootGenAckWait 90 Covered T3,T22,T23
BootInsAckWait 80 Covered T3,T22,T23
BootLoadGen 85 Covered T3,T22,T23
BootLoadIns 65 Covered T3,T22,T23
BootLoadUni 102 Covered T3,T23,T28
BootPulse 94 Covered T3,T22,T23
BootUniAckWait 107 Covered T3,T23,T28
Error 188 Covered T4,T5,T30
Idle 112 Covered T1,T2,T3
RejectCsrngEntropy 188 Covered T23,T10,T28
SWPortMode 74 Covered T1,T2,T3


transitionsLine No.CoveredTests
AutoAckWait->AutoDispatch 131 Covered T5,T9,T7
AutoAckWait->Error 188 Covered T124
AutoAckWait->Idle 211 Covered T9,T49,T17
AutoAckWait->RejectCsrngEntropy 188 Covered T44,T116,T125
AutoCaptGenCnt->AutoSendGenCmd 150 Covered T5,T9,T7
AutoCaptGenCnt->Error 188 Covered T126,T127,T128
AutoCaptGenCnt->Idle 211 Covered T129,T130,T131
AutoCaptGenCnt->RejectCsrngEntropy 188 Covered T132,T133,T134
AutoCaptReseedCnt->AutoSendReseedCmd 162 Covered T5,T9,T7
AutoCaptReseedCnt->Error 188 Covered T135,T136,T137
AutoCaptReseedCnt->Idle 211 Covered T138,T139,T140
AutoCaptReseedCnt->RejectCsrngEntropy 188 Covered T141,T142,T143
AutoDispatch->AutoCaptGenCnt 143 Covered T5,T9,T7
AutoDispatch->AutoCaptReseedCnt 141 Covered T5,T9,T7
AutoDispatch->Error 188 Covered T144
AutoDispatch->Idle 138 Covered T43,T18,T117
AutoDispatch->RejectCsrngEntropy 188 Covered T145,T146,T147
AutoFirstAckWait->AutoDispatch 125 Covered T5,T9,T7
AutoFirstAckWait->Error 188 Covered T148,T149,T150
AutoFirstAckWait->Idle 211 Covered T9,T45,T73
AutoFirstAckWait->RejectCsrngEntropy 188 Covered T114,T151,T152
AutoLoadIns->AutoFirstAckWait 119 Covered T5,T9,T7
AutoLoadIns->Error 188 Covered T8,T153,T154
AutoLoadIns->Idle 211 Covered T5,T7,T49
AutoLoadIns->RejectCsrngEntropy 188 Covered T10,T155,T156
AutoSendGenCmd->AutoAckWait 156 Covered T5,T9,T7
AutoSendGenCmd->Error 188 Covered T119,T157
AutoSendGenCmd->Idle 211 Covered T20,T158,T159
AutoSendGenCmd->RejectCsrngEntropy 188 Covered T160,T118,T161
AutoSendReseedCmd->AutoAckWait 168 Covered T9,T49,T17
AutoSendReseedCmd->Error 188 Covered T5,T7,T162
AutoSendReseedCmd->Idle 211 Covered T163,T78,T164
AutoSendReseedCmd->RejectCsrngEntropy 188 Covered T165,T166,T167
BootDone->BootLoadUni 102 Covered T3,T23,T28
BootDone->Error 188 Covered T168,T169
BootDone->Idle 211 Covered T41,T170,T171
BootDone->RejectCsrngEntropy 188 Covered T88,T172,T173
BootGenAckWait->BootPulse 94 Covered T3,T22,T23
BootGenAckWait->Error 188 Covered T174,T175,T176
BootGenAckWait->Idle 211 Covered T22,T87,T50
BootGenAckWait->RejectCsrngEntropy 188 Covered T23,T56,T113
BootInsAckWait->BootLoadGen 85 Covered T3,T22,T23
BootInsAckWait->Error 188 Covered T177,T178,T179
BootInsAckWait->Idle 211 Covered T62,T65,T69
BootInsAckWait->RejectCsrngEntropy 188 Covered T28,T71,T90
BootLoadGen->BootGenAckWait 90 Covered T3,T22,T23
BootLoadGen->Error 188 Covered T69,T180,T181
BootLoadGen->Idle 211 Covered T51,T48,T94
BootLoadGen->RejectCsrngEntropy 188 Covered T182,T183,T184
BootLoadIns->BootInsAckWait 80 Covered T3,T22,T23
BootLoadIns->Error 188 Covered T185
BootLoadIns->Idle 211 Covered T93,T83
BootLoadIns->RejectCsrngEntropy 188 Covered T186,T187,T188
BootLoadUni->BootUniAckWait 107 Covered T3,T23,T28
BootLoadUni->Error 188 Covered T61,T189
BootLoadUni->Idle 211 Not Covered
BootLoadUni->RejectCsrngEntropy 188 Covered T190,T191,T192
BootPulse->BootDone 98 Covered T3,T22,T23
BootPulse->Error 188 Covered T193
BootPulse->Idle 211 Covered T194,T195
BootPulse->RejectCsrngEntropy 188 Covered T196,T197,T198
BootUniAckWait->Error 188 Covered T199
BootUniAckWait->Idle 112 Covered T3,T23,T28
BootUniAckWait->RejectCsrngEntropy 188 Covered T115,T200,T201
Idle->AutoLoadIns 69 Covered T5,T9,T10
Idle->BootLoadIns 65 Covered T3,T22,T23
Idle->Error 188 Covered T14,T15,T16
Idle->RejectCsrngEntropy 188 Covered T10,T44,T71
Idle->SWPortMode 74 Covered T1,T2,T3
RejectCsrngEntropy->Error 188 Covered T202,T203,T204
RejectCsrngEntropy->Idle 211 Covered T23,T10,T28
SWPortMode->Error 188 Covered T30,T14,T15
SWPortMode->Idle 211 Covered T6,T57,T10
SWPortMode->RejectCsrngEntropy 188 Covered T23,T28,T115



Branch Coverage for Module : edn_main_sm
Line No.TotalCoveredPercent
Branches 42 41 97.62
IF 42 2 2 100.00
CASE 62 35 35 100.00
IF 186 5 4 80.00


42 `PRIM_FLOP_SPARSE_FSM(u_state_regs, state_d, state_q, state_e, Idle) -1- ==> ==>

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


62 unique case (state_q) -1- 63 Idle: begin 64 if (boot_req_mode_i && edn_enable_i) begin -2- 65 state_d = BootLoadIns; ==> 66 end else if (auto_req_mode_i && edn_enable_i) begin -3- 67 accept_sw_cmds_pulse_o = 1'b1; ==> 68 sw_cmd_mode_o = 1'b1; 69 state_d = AutoLoadIns; 70 end else if (edn_enable_i) begin -4- 71 main_sm_done_pulse_o = 1'b1; ==> 72 accept_sw_cmds_pulse_o = 1'b1; 73 sw_cmd_mode_o = 1'b1; 74 state_d = SWPortMode; 75 end MISSING_ELSE ==> 76 end 77 BootLoadIns: begin 78 boot_wr_ins_cmd_o = 1'b1; ==> 79 boot_send_ins_cmd_o = 1'b1; 80 state_d = BootInsAckWait; 81 end 82 BootInsAckWait: begin 83 boot_send_ins_cmd_o = 1'b1; 84 if (csrng_cmd_ack_i) begin -5- 85 state_d = BootLoadGen; ==> 86 end MISSING_ELSE ==> 87 end 88 BootLoadGen: begin 89 boot_wr_gen_cmd_o = 1'b1; ==> 90 state_d = BootGenAckWait; 91 end 92 BootGenAckWait: begin 93 if (csrng_cmd_ack_i) begin -6- 94 state_d = BootPulse; ==> 95 end MISSING_ELSE ==> 96 end 97 BootPulse: begin 98 state_d = BootDone; ==> 99 end 100 BootDone: begin 101 if (!boot_req_mode_i) begin -7- 102 state_d = BootLoadUni; ==> 103 end MISSING_ELSE ==> 104 end 105 BootLoadUni: begin 106 boot_wr_uni_cmd_o = 1'b1; ==> 107 state_d = BootUniAckWait; 108 end 109 BootUniAckWait: begin 110 if (csrng_cmd_ack_i) begin -8- 111 main_sm_done_pulse_o = 1'b1; ==> 112 state_d = Idle; 113 end MISSING_ELSE ==> 114 end 115 //----------------------------------- 116 AutoLoadIns: begin 117 sw_cmd_mode_o = 1'b1; 118 if (sw_cmd_req_load_i) begin -9- 119 state_d = AutoFirstAckWait; ==> 120 end MISSING_ELSE ==> 121 end 122 AutoFirstAckWait: begin 123 sw_cmd_mode_o = 1'b1; 124 if (csrng_cmd_ack_i) begin -10- 125 state_d = AutoDispatch; ==> 126 end MISSING_ELSE ==> 127 end 128 AutoAckWait: begin 129 auto_req_mode_busy_o = 1'b1; 130 if (csrng_cmd_ack_i) begin -11- 131 state_d = AutoDispatch; ==> 132 end MISSING_ELSE ==> 133 end 134 AutoDispatch: begin 135 auto_req_mode_busy_o = 1'b1; 136 if (!auto_req_mode_i) begin -12- 137 main_sm_done_pulse_o = 1'b1; ==> 138 state_d = Idle; 139 end else begin 140 if (max_reqs_cnt_zero_i) begin -13- 141 state_d = AutoCaptReseedCnt; ==> 142 end else begin 143 state_d = AutoCaptGenCnt; ==> 144 end 145 end 146 end 147 AutoCaptGenCnt: begin 148 auto_req_mode_busy_o = 1'b1; ==> 149 capt_gencmd_fifo_cnt_o = 1'b1; 150 state_d = AutoSendGenCmd; 151 end 152 AutoSendGenCmd: begin 153 auto_req_mode_busy_o = 1'b1; 154 send_gencmd_o = 1'b1; 155 if (cmd_sent_i) begin -14- 156 state_d = AutoAckWait; ==> 157 end MISSING_ELSE ==> 158 end 159 AutoCaptReseedCnt: begin 160 auto_req_mode_busy_o = 1'b1; ==> 161 capt_rescmd_fifo_cnt_o = 1'b1; 162 state_d = AutoSendReseedCmd; 163 end 164 AutoSendReseedCmd: begin 165 auto_req_mode_busy_o = 1'b1; 166 send_rescmd_o = 1'b1; 167 if (cmd_sent_i) begin -15- 168 state_d = AutoAckWait; ==> 169 end MISSING_ELSE ==> 170 end 171 SWPortMode: begin 172 sw_cmd_mode_o = 1'b1; ==> 173 end 174 RejectCsrngEntropy: begin 175 reject_csrng_entropy_o = 1'b1; ==> 176 end 177 Error: begin 178 main_sm_err_o = 1'b1; ==> 179 end 180 default: begin 181 state_d = Error; ==>

Branches:
-1--2--3--4--5--6--7--8--9--10--11--12--13--14--15-StatusTests
Idle 1 - - - - - - - - - - - - - Covered T3,T22,T23
Idle 0 1 - - - - - - - - - - - - Covered T5,T9,T10
Idle 0 0 1 - - - - - - - - - - - Covered T1,T2,T3
Idle 0 0 0 - - - - - - - - - - - Covered T1,T2,T3
BootLoadIns - - - - - - - - - - - - - - Covered T3,T22,T23
BootInsAckWait - - - 1 - - - - - - - - - - Covered T3,T22,T23
BootInsAckWait - - - 0 - - - - - - - - - - Covered T3,T22,T23
BootLoadGen - - - - - - - - - - - - - - Covered T3,T22,T23
BootGenAckWait - - - - 1 - - - - - - - - - Covered T3,T22,T23
BootGenAckWait - - - - 0 - - - - - - - - - Covered T3,T22,T23
BootPulse - - - - - - - - - - - - - - Covered T3,T22,T23
BootDone - - - - - 1 - - - - - - - - Covered T3,T23,T28
BootDone - - - - - 0 - - - - - - - - Covered T22,T23,T62
BootLoadUni - - - - - - - - - - - - - - Covered T3,T23,T28
BootUniAckWait - - - - - - 1 - - - - - - - Covered T3,T123,T115
BootUniAckWait - - - - - - 0 - - - - - - - Covered T3,T23,T28
AutoLoadIns - - - - - - - 1 - - - - - - Covered T5,T9,T7
AutoLoadIns - - - - - - - 0 - - - - - - Covered T5,T9,T10
AutoFirstAckWait - - - - - - - - 1 - - - - - Covered T5,T9,T7
AutoFirstAckWait - - - - - - - - 0 - - - - - Covered T5,T9,T7
AutoAckWait - - - - - - - - - 1 - - - - Covered T5,T9,T7
AutoAckWait - - - - - - - - - 0 - - - - Covered T5,T9,T7
AutoDispatch - - - - - - - - - - 1 - - - Covered T18,T117,T11
AutoDispatch - - - - - - - - - - 0 1 - - Covered T5,T9,T7
AutoDispatch - - - - - - - - - - 0 0 - - Covered T5,T9,T7
AutoCaptGenCnt - - - - - - - - - - - - - - Covered T5,T9,T7
AutoSendGenCmd - - - - - - - - - - - - 1 - Covered T5,T9,T7
AutoSendGenCmd - - - - - - - - - - - - 0 - Covered T9,T7,T49
AutoCaptReseedCnt - - - - - - - - - - - - - - Covered T5,T9,T7
AutoSendReseedCmd - - - - - - - - - - - - - 1 Covered T9,T49,T17
AutoSendReseedCmd - - - - - - - - - - - - - 0 Covered T5,T9,T7
SWPortMode - - - - - - - - - - - - - - Covered T1,T2,T3
RejectCsrngEntropy - - - - - - - - - - - - - - Covered T23,T10,T28
Error - - - - - - - - - - - - - - Covered T4,T5,T30
default - - - - - - - - - - - - - - Covered T4,T14,T65


186 if (local_escalate_i || csrng_ack_err_i) begin -1- 187 // Either move into RejectCsrngEntropy or Error but don't move out of Error as it's terminal. 188 state_d = local_escalate_i ? Error : -2- ==> 189 state_q == Error ? Error : RejectCsrngEntropy; -3- ==> ==> 190 // Tie off outputs, except for main_sm_err_o, auto_req_mode_busy_o, boot_send_ins_cmd_o, 191 // sw_cmd_mode_o and reject_csrng_entropy_o. 192 boot_wr_ins_cmd_o = 1'b0; 193 boot_wr_gen_cmd_o = 1'b0; 194 boot_wr_uni_cmd_o = 1'b0; 195 accept_sw_cmds_pulse_o = 1'b0; 196 capt_gencmd_fifo_cnt_o = 1'b0; 197 send_gencmd_o = 1'b0; 198 capt_rescmd_fifo_cnt_o = 1'b0; 199 send_rescmd_o = 1'b0; 200 main_sm_done_pulse_o = 1'b0; 201 end else if (!edn_enable_i && state_q inside {BootLoadIns, BootInsAckWait, BootLoadGen, -4- 202 BootGenAckWait, BootLoadUni, BootUniAckWait, 203 BootPulse, BootDone, 204 AutoLoadIns, AutoFirstAckWait, AutoAckWait, 205 AutoDispatch, AutoCaptGenCnt, AutoSendGenCmd, 206 AutoCaptReseedCnt, AutoSendReseedCmd, 207 SWPortMode, RejectCsrngEntropy 208 }) begin 209 // Only go to idle if the state is legal and not Idle or Error. 210 // Even when disabled, illegal states must result in a transition to Error. 211 state_d = Idle; ==> 212 // Tie off outputs, except for main_sm_err_o. 213 boot_wr_ins_cmd_o = 1'b0; 214 boot_send_ins_cmd_o = 1'b0; 215 boot_wr_gen_cmd_o = 1'b0; 216 boot_wr_uni_cmd_o = 1'b0; 217 accept_sw_cmds_pulse_o = 1'b0; 218 auto_req_mode_busy_o = 1'b0; 219 capt_gencmd_fifo_cnt_o = 1'b0; 220 send_gencmd_o = 1'b0; 221 capt_rescmd_fifo_cnt_o = 1'b0; 222 send_rescmd_o = 1'b0; 223 sw_cmd_mode_o = 1'b0; 224 reject_csrng_entropy_o = 1'b0; 225 main_sm_done_pulse_o = 1'b1; 226 end MISSING_ELSE ==>

Branches:
-1--2--3--4-StatusTests
1 1 - - Covered T4,T5,T30
1 0 1 - Not Covered
1 0 0 - Covered T23,T10,T28
0 - - 1 Covered T22,T5,T23
0 - - 0 Covered T1,T2,T3


Assert Coverage for Module : edn_main_sm
TotalAttemptedPercentSucceeded/MatchedPercent
Assertions 3 3 100.00 3 100.00
Cover properties 0 0 0
Cover sequences 0 0 0
Total 3 3 100.00 3 100.00




Assertion Details

NameAttemptsReal SuccessesFailuresIncomplete
ErrorStStable_A 11370796 147952 0 0
FpvSecCmErrorStEscalate_A 11370796 148996 0 0
u_state_regs_A 11332408 11156343 0 0


ErrorStStable_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11370796 147952 0 0
T4 624 208 0 0
T5 941 392 0 0
T6 23340 0 0 0
T7 0 602 0 0
T9 2556 0 0 0
T14 0 7464 0 0
T15 0 10240 0 0
T16 0 7941 0 0
T22 1032 0 0 0
T23 2164 0 0 0
T24 879 0 0 0
T25 1927 0 0 0
T26 1926 0 0 0
T30 0 397 0 0
T39 3478 0 0 0
T59 0 1098 0 0
T65 0 208 0 0
T69 0 636 0 0

FpvSecCmErrorStEscalate_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11370796 148996 0 0
T4 624 209 0 0
T5 941 393 0 0
T6 23340 0 0 0
T7 0 603 0 0
T9 2556 0 0 0
T14 0 7594 0 0
T15 0 10370 0 0
T16 0 8071 0 0
T22 1032 0 0 0
T23 2164 0 0 0
T24 879 0 0 0
T25 1927 0 0 0
T26 1926 0 0 0
T30 0 398 0 0
T39 3478 0 0 0
T59 0 1099 0 0
T65 0 209 0 0
T69 0 637 0 0

u_state_regs_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11332408 11156343 0 0
T1 939 889 0 0
T2 1178 1122 0 0
T3 4104 4031 0 0
T4 512 338 0 0
T5 721 562 0 0
T9 2556 2475 0 0
T22 1032 957 0 0
T23 2164 2095 0 0
T24 879 800 0 0
T25 1927 1851 0 0

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