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



Module Instance : tb.dut.u_edn_core.u_edn_main_sm

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
97.60 100.00 94.44 95.95 97.62 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
97.62 100.00 94.44 95.95 97.73 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
97.28 100.00 90.88 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: T20 T21 T4  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: T9 T10 T6  68 1/1 sw_cmd_mode_o = 1'b1; Tests: T9 T10 T6  69 1/1 state_d = AutoLoadIns; Tests: T9 T10 T6  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: T20 T21 T4  79 1/1 boot_send_ins_cmd_o = 1'b1; Tests: T20 T21 T4  80 1/1 state_d = BootInsAckWait; Tests: T20 T21 T4  81 end 82 BootInsAckWait: begin 83 1/1 boot_send_ins_cmd_o = 1'b1; Tests: T20 T21 T4  84 1/1 if (csrng_cmd_ack_i) begin Tests: T20 T21 T4  85 1/1 state_d = BootLoadGen; Tests: T20 T21 T4  86 end MISSING_ELSE 87 end 88 BootLoadGen: begin 89 1/1 boot_wr_gen_cmd_o = 1'b1; Tests: T20 T21 T4  90 1/1 state_d = BootGenAckWait; Tests: T20 T21 T4  91 end 92 BootGenAckWait: begin 93 1/1 if (csrng_cmd_ack_i) begin Tests: T20 T21 T4  94 1/1 state_d = BootPulse; Tests: T20 T21 T4  95 end MISSING_ELSE 96 end 97 BootPulse: begin 98 1/1 state_d = BootDone; Tests: T20 T21 T4  99 end 100 BootDone: begin 101 1/1 if (!boot_req_mode_i) begin Tests: T20 T21 T4  102 1/1 state_d = BootLoadUni; Tests: T20 T26 T40  103 end MISSING_ELSE 104 end 105 BootLoadUni: begin 106 1/1 boot_wr_uni_cmd_o = 1'b1; Tests: T20 T26 T40  107 1/1 state_d = BootUniAckWait; Tests: T20 T26 T40  108 end 109 BootUniAckWait: begin 110 1/1 if (csrng_cmd_ack_i) begin Tests: T20 T26 T40  111 1/1 main_sm_done_pulse_o = 1'b1; Tests: T20 T26 T40  112 1/1 state_d = Idle; Tests: T20 T26 T40  113 end MISSING_ELSE 114 end 115 //----------------------------------- 116 AutoLoadIns: begin 117 1/1 sw_cmd_mode_o = 1'b1; Tests: T9 T10 T6  118 1/1 if (sw_cmd_req_load_i) begin Tests: T9 T10 T6  119 1/1 state_d = AutoFirstAckWait; Tests: T9 T10 T6  120 end MISSING_ELSE 121 end 122 AutoFirstAckWait: begin 123 1/1 sw_cmd_mode_o = 1'b1; Tests: T9 T10 T6  124 1/1 if (csrng_cmd_ack_i) begin Tests: T9 T10 T6  125 1/1 state_d = AutoDispatch; Tests: T9 T10 T6  126 end MISSING_ELSE 127 end 128 AutoAckWait: begin 129 1/1 auto_req_mode_busy_o = 1'b1; Tests: T9 T10 T14  130 1/1 if (csrng_cmd_ack_i) begin Tests: T9 T10 T14  131 1/1 state_d = AutoDispatch; Tests: T9 T10 T14  132 end MISSING_ELSE 133 end 134 AutoDispatch: begin 135 1/1 auto_req_mode_busy_o = 1'b1; Tests: T9 T10 T6  136 1/1 if (!auto_req_mode_i) begin Tests: T9 T10 T6  137 1/1 main_sm_done_pulse_o = 1'b1; Tests: T18 T38 T111  138 1/1 state_d = Idle; Tests: T18 T38 T111  139 end else begin 140 1/1 if (max_reqs_cnt_zero_i) begin Tests: T9 T10 T6  141 1/1 state_d = AutoCaptReseedCnt; Tests: T9 T10 T18  142 end else begin 143 1/1 state_d = AutoCaptGenCnt; Tests: T9 T10 T6  144 end 145 end 146 end 147 AutoCaptGenCnt: begin 148 1/1 auto_req_mode_busy_o = 1'b1; Tests: T9 T10 T6  149 1/1 capt_gencmd_fifo_cnt_o = 1'b1; Tests: T9 T10 T6  150 1/1 state_d = AutoSendGenCmd; Tests: T9 T10 T6  151 end 152 AutoSendGenCmd: begin 153 1/1 auto_req_mode_busy_o = 1'b1; Tests: T9 T10 T14  154 1/1 send_gencmd_o = 1'b1; Tests: T9 T10 T14  155 1/1 if (cmd_sent_i) begin Tests: T9 T10 T14  156 1/1 state_d = AutoAckWait; Tests: T9 T10 T14  157 end MISSING_ELSE 158 end 159 AutoCaptReseedCnt: begin 160 1/1 auto_req_mode_busy_o = 1'b1; Tests: T9 T10 T18  161 1/1 capt_rescmd_fifo_cnt_o = 1'b1; Tests: T9 T10 T18  162 1/1 state_d = AutoSendReseedCmd; Tests: T9 T10 T18  163 end 164 AutoSendReseedCmd: begin 165 1/1 auto_req_mode_busy_o = 1'b1; Tests: T9 T10 T18  166 1/1 send_rescmd_o = 1'b1; Tests: T9 T10 T18  167 1/1 if (cmd_sent_i) begin Tests: T9 T10 T18  168 1/1 state_d = AutoAckWait; Tests: T9 T10 T18  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: T22 T14 T26  176 end 177 Error: begin 178 1/1 main_sm_err_o = 1'b1; Tests: T3 T4 T28  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: T3 T4 T22  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: T3 T4 T22  193 1/1 boot_wr_gen_cmd_o = 1'b0; Tests: T3 T4 T22  194 1/1 boot_wr_uni_cmd_o = 1'b0; Tests: T3 T4 T22  195 1/1 accept_sw_cmds_pulse_o = 1'b0; Tests: T3 T4 T22  196 1/1 capt_gencmd_fifo_cnt_o = 1'b0; Tests: T3 T4 T22  197 1/1 send_gencmd_o = 1'b0; Tests: T3 T4 T22  198 1/1 capt_rescmd_fifo_cnt_o = 1'b0; Tests: T3 T4 T22  199 1/1 send_rescmd_o = 1'b0; Tests: T3 T4 T22  200 1/1 main_sm_done_pulse_o = 1'b0; Tests: T3 T4 T22  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: T21 T4 T9  212 // Tie off outputs, except for main_sm_err_o. 213 1/1 boot_wr_ins_cmd_o = 1'b0; Tests: T21 T4 T9  214 1/1 boot_send_ins_cmd_o = 1'b0; Tests: T21 T4 T9  215 1/1 boot_wr_gen_cmd_o = 1'b0; Tests: T21 T4 T9  216 1/1 boot_wr_uni_cmd_o = 1'b0; Tests: T21 T4 T9  217 1/1 accept_sw_cmds_pulse_o = 1'b0; Tests: T21 T4 T9  218 1/1 auto_req_mode_busy_o = 1'b0; Tests: T21 T4 T9  219 1/1 capt_gencmd_fifo_cnt_o = 1'b0; Tests: T21 T4 T9  220 1/1 send_gencmd_o = 1'b0; Tests: T21 T4 T9  221 1/1 capt_rescmd_fifo_cnt_o = 1'b0; Tests: T21 T4 T9  222 1/1 send_rescmd_o = 1'b0; Tests: T21 T4 T9  223 1/1 sw_cmd_mode_o = 1'b0; Tests: T21 T4 T9  224 1/1 reject_csrng_entropy_o = 1'b0; Tests: T21 T4 T9  225 1/1 main_sm_done_pulse_o = 1'b1; Tests: T21 T4 T9  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
10CoveredT21,T4,T22
11CoveredT20,T21,T4

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

 LINE       186
 EXPRESSION (local_escalate_i || csrng_ack_err_i)
             --------1-------    -------2-------
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT22,T14,T26
10CoveredT3,T4,T28

 LINE       188
 EXPRESSION (local_escalate_i ? Error : ((state_q == Error) ? Error : RejectCsrngEntropy))
             --------1-------
-1-StatusTests
0CoveredT22,T14,T26
1CoveredT3,T4,T28

 LINE       188
 SUB-EXPRESSION ((state_q == Error) ? Error : RejectCsrngEntropy)
                 ---------1--------
-1-StatusTests
0CoveredT22,T14,T26
1Not Covered

 LINE       188
 SUB-EXPRESSION (state_q == Error)
                ---------1--------
-1-StatusTests
0CoveredT3,T4,T22
1CoveredT3,T4,T28

 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
11CoveredT21,T4,T9

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

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


transitionsLine No.CoveredTests
AutoAckWait->AutoDispatch 131 Covered T9,T10,T18
AutoAckWait->Error 188 Covered T8,T144,T145
AutoAckWait->Idle 211 Covered T9,T10,T19
AutoAckWait->RejectCsrngEntropy 188 Covered T14,T58,T138
AutoCaptGenCnt->AutoSendGenCmd 150 Covered T9,T10,T14
AutoCaptGenCnt->Error 188 Covered T6,T146,T147
AutoCaptGenCnt->Idle 211 Covered T91,T100,T148
AutoCaptGenCnt->RejectCsrngEntropy 188 Covered T149,T150,T151
AutoCaptReseedCnt->AutoSendReseedCmd 162 Covered T9,T10,T18
AutoCaptReseedCnt->Error 188 Not Covered
AutoCaptReseedCnt->Idle 211 Covered T152,T153,T154
AutoCaptReseedCnt->RejectCsrngEntropy 188 Covered T155,T156,T157
AutoDispatch->AutoCaptGenCnt 143 Covered T9,T10,T6
AutoDispatch->AutoCaptReseedCnt 141 Covered T9,T10,T18
AutoDispatch->Error 188 Covered T158,T159
AutoDispatch->Idle 138 Covered T18,T38,T45
AutoDispatch->RejectCsrngEntropy 188 Covered T136,T160,T161
AutoFirstAckWait->AutoDispatch 125 Covered T9,T10,T6
AutoFirstAckWait->Error 188 Covered T162
AutoFirstAckWait->Idle 211 Covered T10,T53,T102
AutoFirstAckWait->RejectCsrngEntropy 188 Covered T163,T164,T165
AutoLoadIns->AutoFirstAckWait 119 Covered T9,T10,T6
AutoLoadIns->Error 188 Covered T166,T167,T168
AutoLoadIns->Idle 211 Covered T6,T14,T7
AutoLoadIns->RejectCsrngEntropy 188 Covered T139,T137,T169
AutoSendGenCmd->AutoAckWait 156 Covered T9,T10,T14
AutoSendGenCmd->Error 188 Covered T170,T171
AutoSendGenCmd->Idle 211 Covered T19,T172,T173
AutoSendGenCmd->RejectCsrngEntropy 188 Covered T174,T175,T176
AutoSendReseedCmd->AutoAckWait 168 Covered T9,T10,T18
AutoSendReseedCmd->Error 188 Covered T177,T178
AutoSendReseedCmd->Idle 211 Covered T9,T179,T180
AutoSendReseedCmd->RejectCsrngEntropy 188 Covered T181,T80,T95
BootDone->BootLoadUni 102 Covered T20,T26,T40
BootDone->Error 188 Covered T182,T183,T184
BootDone->Idle 211 Covered T39,T92,T185
BootDone->RejectCsrngEntropy 188 Covered T22,T84,T135
BootGenAckWait->BootPulse 94 Covered T20,T21,T4
BootGenAckWait->Error 188 Covered T186,T187
BootGenAckWait->Idle 211 Covered T47,T54,T120
BootGenAckWait->RejectCsrngEntropy 188 Covered T188,T189,T190
BootInsAckWait->BootLoadGen 85 Covered T20,T21,T4
BootInsAckWait->Error 188 Covered T191,T192,T193
BootInsAckWait->Idle 211 Covered T4,T41,T194
BootInsAckWait->RejectCsrngEntropy 188 Covered T142,T121,T195
BootLoadGen->BootGenAckWait 90 Covered T20,T21,T4
BootLoadGen->Error 188 Covered T196,T197
BootLoadGen->Idle 211 Covered T21,T98,T90
BootLoadGen->RejectCsrngEntropy 188 Covered T79,T198,T199
BootLoadIns->BootInsAckWait 80 Covered T20,T21,T4
BootLoadIns->Error 188 Covered T200,T201,T202
BootLoadIns->Idle 211 Covered T96,T203,T204
BootLoadIns->RejectCsrngEntropy 188 Covered T205,T206,T207
BootLoadUni->BootUniAckWait 107 Covered T20,T26,T40
BootLoadUni->Error 188 Covered T208,T209,T210
BootLoadUni->Idle 211 Not Covered
BootLoadUni->RejectCsrngEntropy 188 Covered T211,T212,T213
BootPulse->BootDone 98 Covered T20,T21,T4
BootPulse->Error 188 Not Covered
BootPulse->Idle 211 Covered T214,T215,T216
BootPulse->RejectCsrngEntropy 188 Covered T89,T217,T218
BootUniAckWait->Error 188 Covered T219,T220,T221
BootUniAckWait->Idle 112 Covered T20,T40,T135
BootUniAckWait->RejectCsrngEntropy 188 Covered T26,T42,T222
Idle->AutoLoadIns 69 Covered T9,T10,T6
Idle->BootLoadIns 65 Covered T20,T21,T4
Idle->Error 188 Covered T15,T16,T17
Idle->RejectCsrngEntropy 188 Covered T22,T26,T135
Idle->SWPortMode 74 Covered T1,T2,T3
RejectCsrngEntropy->Error 188 Covered T59,T65,T223
RejectCsrngEntropy->Idle 211 Covered T22,T14,T26
SWPortMode->Error 188 Covered T3,T28,T15
SWPortMode->Idle 211 Covered T22,T5,T60
SWPortMode->RejectCsrngEntropy 188 Covered T14,T84,T58



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 T20,T21,T4
Idle 0 1 - - - - - - - - - - - - Covered T9,T10,T6
Idle 0 0 1 - - - - - - - - - - - Covered T1,T2,T3
Idle 0 0 0 - - - - - - - - - - - Covered T1,T2,T3
BootLoadIns - - - - - - - - - - - - - - Covered T20,T21,T4
BootInsAckWait - - - 1 - - - - - - - - - - Covered T20,T21,T4
BootInsAckWait - - - 0 - - - - - - - - - - Covered T20,T21,T4
BootLoadGen - - - - - - - - - - - - - - Covered T20,T21,T4
BootGenAckWait - - - - 1 - - - - - - - - - Covered T20,T21,T4
BootGenAckWait - - - - 0 - - - - - - - - - Covered T20,T21,T4
BootPulse - - - - - - - - - - - - - - Covered T20,T21,T4
BootDone - - - - - 1 - - - - - - - - Covered T20,T26,T40
BootDone - - - - - 0 - - - - - - - - Covered T21,T4,T22
BootLoadUni - - - - - - - - - - - - - - Covered T20,T26,T40
BootUniAckWait - - - - - - 1 - - - - - - - Covered T20,T26,T40
BootUniAckWait - - - - - - 0 - - - - - - - Covered T20,T26,T40
AutoLoadIns - - - - - - - 1 - - - - - - Covered T9,T10,T6
AutoLoadIns - - - - - - - 0 - - - - - - Covered T9,T10,T6
AutoFirstAckWait - - - - - - - - 1 - - - - - Covered T9,T10,T6
AutoFirstAckWait - - - - - - - - 0 - - - - - Covered T9,T10,T6
AutoAckWait - - - - - - - - - 1 - - - - Covered T9,T10,T14
AutoAckWait - - - - - - - - - 0 - - - - Covered T9,T10,T14
AutoDispatch - - - - - - - - - - 1 - - - Covered T18,T38,T111
AutoDispatch - - - - - - - - - - 0 1 - - Covered T9,T10,T18
AutoDispatch - - - - - - - - - - 0 0 - - Covered T9,T10,T6
AutoCaptGenCnt - - - - - - - - - - - - - - Covered T9,T10,T6
AutoSendGenCmd - - - - - - - - - - - - 1 - Covered T9,T10,T14
AutoSendGenCmd - - - - - - - - - - - - 0 - Covered T9,T10,T18
AutoCaptReseedCnt - - - - - - - - - - - - - - Covered T9,T10,T18
AutoSendReseedCmd - - - - - - - - - - - - - 1 Covered T9,T10,T18
AutoSendReseedCmd - - - - - - - - - - - - - 0 Covered T9,T10,T18
SWPortMode - - - - - - - - - - - - - - Covered T1,T2,T3
RejectCsrngEntropy - - - - - - - - - - - - - - Covered T22,T14,T26
Error - - - - - - - - - - - - - - Covered T3,T4,T28
default - - - - - - - - - - - - - - Covered T4,T15,T68


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 T3,T4,T28
1 0 1 - Not Covered
1 0 0 - Covered T22,T14,T26
0 - - 1 Covered T21,T4,T9
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 9178401 152178 0 0
FpvSecCmErrorStEscalate_A 9178401 153223 0 0
u_state_regs_A 9137157 8959055 0 0


ErrorStStable_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 9178401 152178 0 0
T3 865 358 0 0
T4 1780 1020 0 0
T5 7672 0 0 0
T6 0 1178 0 0
T7 0 220 0 0
T8 0 329 0 0
T9 1704 0 0 0
T15 0 10695 0 0
T20 4568 0 0 0
T21 1126 0 0 0
T22 2116 0 0 0
T23 1233 0 0 0
T24 990 0 0 0
T28 0 580 0 0
T43 1566 0 0 0
T68 0 437 0 0
T74 0 1069 0 0
T75 0 280 0 0

FpvSecCmErrorStEscalate_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 9178401 153223 0 0
T3 865 359 0 0
T4 1780 1021 0 0
T5 7672 0 0 0
T6 0 1179 0 0
T7 0 221 0 0
T8 0 330 0 0
T9 1704 0 0 0
T15 0 10825 0 0
T20 4568 0 0 0
T21 1126 0 0 0
T22 2116 0 0 0
T23 1233 0 0 0
T24 990 0 0 0
T28 0 581 0 0
T43 1566 0 0 0
T68 0 438 0 0
T74 0 1070 0 0
T75 0 281 0 0

u_state_regs_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 9137157 8959055 0 0
T1 1173 1087 0 0
T2 1350 1260 0 0
T3 753 576 0 0
T4 1660 1514 0 0
T5 7672 7169 0 0
T9 1704 1627 0 0
T20 4568 4481 0 0
T21 1126 1036 0 0
T22 2116 2018 0 0
T23 1233 1178 0 0

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