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



Module Instance : tb.dut.u_edn_core.u_edn_main_sm

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
97.33 100.00 94.44 94.59 97.62 100.00


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

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

 LINE       186
 EXPRESSION (local_escalate_i || csrng_ack_err_i)
             --------1-------    -------2-------
-1--2-StatusTests
00CoveredT1,T2,T3
01CoveredT9,T30,T31
10CoveredT6,T16,T7

 LINE       188
 EXPRESSION (local_escalate_i ? Error : ((state_q == Error) ? Error : RejectCsrngEntropy))
             --------1-------
-1-StatusTests
0CoveredT9,T30,T31
1CoveredT6,T16,T7

 LINE       188
 SUB-EXPRESSION ((state_q == Error) ? Error : RejectCsrngEntropy)
                 ---------1--------
-1-StatusTests
0CoveredT9,T30,T31
1Not Covered

 LINE       188
 SUB-EXPRESSION (state_q == Error)
                ---------1--------
-1-StatusTests
0CoveredT6,T16,T9
1CoveredT6,T16,T7

 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
11CoveredT5,T26,T6

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

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


transitionsLine No.CoveredTests
AutoAckWait->AutoDispatch 131 Covered T6,T10,T20
AutoAckWait->Error 188 Covered T137
AutoAckWait->Idle 211 Covered T20,T23,T53
AutoAckWait->RejectCsrngEntropy 188 Covered T9,T138,T139
AutoCaptGenCnt->AutoSendGenCmd 150 Covered T6,T9,T10
AutoCaptGenCnt->Error 188 Covered T140
AutoCaptGenCnt->Idle 211 Covered T49,T141,T142
AutoCaptGenCnt->RejectCsrngEntropy 188 Covered T143,T144,T145
AutoCaptReseedCnt->AutoSendReseedCmd 162 Covered T10,T20,T23
AutoCaptReseedCnt->Error 188 Covered T6,T59,T146
AutoCaptReseedCnt->Idle 211 Covered T53,T147,T148
AutoCaptReseedCnt->RejectCsrngEntropy 188 Covered T31,T131,T149
AutoDispatch->AutoCaptGenCnt 143 Covered T6,T9,T10
AutoDispatch->AutoCaptReseedCnt 141 Covered T6,T10,T20
AutoDispatch->Error 188 Covered T150,T151,T152
AutoDispatch->Idle 138 Covered T10,T23,T46
AutoDispatch->RejectCsrngEntropy 188 Covered T153,T154,T155
AutoFirstAckWait->AutoDispatch 125 Covered T6,T9,T10
AutoFirstAckWait->Error 188 Not Covered
AutoFirstAckWait->Idle 211 Covered T21,T156,T157
AutoFirstAckWait->RejectCsrngEntropy 188 Covered T158,T159,T160
AutoLoadIns->AutoFirstAckWait 119 Covered T6,T9,T10
AutoLoadIns->Error 188 Covered T7,T123,T161
AutoLoadIns->Idle 211 Covered T6,T9,T7
AutoLoadIns->RejectCsrngEntropy 188 Covered T94,T162,T163
AutoSendGenCmd->AutoAckWait 156 Covered T6,T9,T10
AutoSendGenCmd->Error 188 Covered T8,T133,T52
AutoSendGenCmd->Idle 211 Covered T60,T164,T165
AutoSendGenCmd->RejectCsrngEntropy 188 Covered T57,T166,T167
AutoSendReseedCmd->AutoAckWait 168 Covered T10,T20,T23
AutoSendReseedCmd->Error 188 Covered T134,T168,T169
AutoSendReseedCmd->Idle 211 Covered T170,T171,T172
AutoSendReseedCmd->RejectCsrngEntropy 188 Covered T173,T174,T175
BootDone->BootLoadUni 102 Covered T62,T64,T126
BootDone->Error 188 Covered T69
BootDone->Idle 211 Covered T41,T43,T93
BootDone->RejectCsrngEntropy 188 Covered T81,T176,T47
BootGenAckWait->BootPulse 94 Covered T26,T16,T29
BootGenAckWait->Error 188 Covered T177,T178,T179
BootGenAckWait->Idle 211 Covered T180,T181,T182
BootGenAckWait->RejectCsrngEntropy 188 Covered T30,T45,T132
BootInsAckWait->BootLoadGen 85 Covered T26,T16,T30
BootInsAckWait->Error 188 Covered T16,T67,T183
BootInsAckWait->Idle 211 Covered T16,T44,T125
BootInsAckWait->RejectCsrngEntropy 188 Covered T96,T87,T184
BootLoadGen->BootGenAckWait 90 Covered T26,T16,T30
BootLoadGen->Error 188 Not Covered
BootLoadGen->Idle 211 Covered T29,T50,T90
BootLoadGen->RejectCsrngEntropy 188 Covered T83,T185,T186
BootLoadIns->BootInsAckWait 80 Covered T26,T16,T30
BootLoadIns->Error 188 Covered T180,T187,T188
BootLoadIns->Idle 211 Covered T189,T190
BootLoadIns->RejectCsrngEntropy 188 Covered T191,T192,T193
BootLoadUni->BootUniAckWait 107 Covered T62,T64,T126
BootLoadUni->Error 188 Covered T194
BootLoadUni->Idle 211 Not Covered
BootLoadUni->RejectCsrngEntropy 188 Covered T195,T196
BootPulse->BootDone 98 Covered T26,T16,T29
BootPulse->Error 188 Not Covered
BootPulse->Idle 211 Covered T26,T197,T92
BootPulse->RejectCsrngEntropy 188 Covered T76,T198,T199
BootUniAckWait->Error 188 Covered T200,T201,T202
BootUniAckWait->Idle 112 Covered T62,T126,T132
BootUniAckWait->RejectCsrngEntropy 188 Covered T64,T130,T203
Idle->AutoLoadIns 69 Covered T6,T9,T10
Idle->BootLoadIns 65 Covered T26,T16,T30
Idle->Error 188 Covered T15,T17,T18
Idle->RejectCsrngEntropy 188 Covered T9,T30,T31
Idle->SWPortMode 74 Covered T1,T2,T3
RejectCsrngEntropy->Error 188 Covered T63,T204,T205
RejectCsrngEntropy->Idle 211 Covered T9,T30,T31
SWPortMode->Error 188 Covered T14,T15,T17
SWPortMode->Idle 211 Covered T4,T5,T19
SWPortMode->RejectCsrngEntropy 188 Covered T63,T57,T64



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 T26,T16,T30
Idle 0 1 - - - - - - - - - - - - Covered T6,T9,T10
Idle 0 0 1 - - - - - - - - - - - Covered T1,T2,T3
Idle 0 0 0 - - - - - - - - - - - Covered T1,T2,T3
BootLoadIns - - - - - - - - - - - - - - Covered T26,T16,T30
BootInsAckWait - - - 1 - - - - - - - - - - Covered T26,T16,T30
BootInsAckWait - - - 0 - - - - - - - - - - Covered T26,T16,T30
BootLoadGen - - - - - - - - - - - - - - Covered T26,T16,T30
BootGenAckWait - - - - 1 - - - - - - - - - Covered T26,T16,T30
BootGenAckWait - - - - 0 - - - - - - - - - Covered T26,T16,T30
BootPulse - - - - - - - - - - - - - - Covered T26,T16,T29
BootDone - - - - - 1 - - - - - - - - Covered T62,T64,T126
BootDone - - - - - 0 - - - - - - - - Covered T26,T16,T29
BootLoadUni - - - - - - - - - - - - - - Covered T62,T64,T126
BootUniAckWait - - - - - - 1 - - - - - - - Covered T62,T64,T126
BootUniAckWait - - - - - - 0 - - - - - - - Covered T62,T64,T126
AutoLoadIns - - - - - - - 1 - - - - - - Covered T6,T9,T10
AutoLoadIns - - - - - - - 0 - - - - - - Covered T6,T9,T10
AutoFirstAckWait - - - - - - - - 1 - - - - - Covered T6,T9,T10
AutoFirstAckWait - - - - - - - - 0 - - - - - Covered T6,T9,T10
AutoAckWait - - - - - - - - - 1 - - - - Covered T6,T9,T10
AutoAckWait - - - - - - - - - 0 - - - - Covered T6,T9,T10
AutoDispatch - - - - - - - - - - 1 - - - Covered T10,T46,T101
AutoDispatch - - - - - - - - - - 0 1 - - Covered T6,T10,T20
AutoDispatch - - - - - - - - - - 0 0 - - Covered T6,T9,T10
AutoCaptGenCnt - - - - - - - - - - - - - - Covered T6,T9,T10
AutoSendGenCmd - - - - - - - - - - - - 1 - Covered T6,T9,T10
AutoSendGenCmd - - - - - - - - - - - - 0 - Covered T9,T10,T20
AutoCaptReseedCnt - - - - - - - - - - - - - - Covered T6,T10,T20
AutoSendReseedCmd - - - - - - - - - - - - - 1 Covered T10,T20,T23
AutoSendReseedCmd - - - - - - - - - - - - - 0 Covered T10,T20,T23
SWPortMode - - - - - - - - - - - - - - Covered T1,T2,T3
RejectCsrngEntropy - - - - - - - - - - - - - - Covered T9,T30,T31
Error - - - - - - - - - - - - - - Covered T6,T16,T7
default - - - - - - - - - - - - - - Covered T15,T17,T18


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 T6,T16,T7
1 0 1 - Not Covered
1 0 0 - Covered T9,T30,T31
0 - - 1 Covered T5,T26,T6
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 11812791 140698 0 0
FpvSecCmErrorStEscalate_A 11812791 141734 0 0
u_state_regs_A 11777349 11599553 0 0


ErrorStStable_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 140698 0 0
T6 2264 1112 0 0
T7 1098 227 0 0
T8 0 390 0 0
T9 2258 0 0 0
T10 3605 0 0 0
T14 0 208 0 0
T15 0 9049 0 0
T16 1766 1070 0 0
T17 0 15035 0 0
T19 744 0 0 0
T27 1062 0 0 0
T29 741 0 0 0
T30 2491 0 0 0
T63 0 629 0 0
T70 1493 0 0 0
T111 0 598 0 0
T123 0 1110 0 0

FpvSecCmErrorStEscalate_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11812791 141734 0 0
T6 2264 1113 0 0
T7 1098 228 0 0
T8 0 391 0 0
T9 2258 0 0 0
T10 3605 0 0 0
T14 0 209 0 0
T15 0 9179 0 0
T16 1766 1071 0 0
T17 0 15295 0 0
T19 744 0 0 0
T27 1062 0 0 0
T29 741 0 0 0
T30 2491 0 0 0
T63 0 630 0 0
T70 1493 0 0 0
T111 0 599 0 0
T123 0 1111 0 0

u_state_regs_A
NameAttemptsReal SuccessesFailuresIncomplete
Total 11777349 11599553 0 0
T1 1609 1522 0 0
T2 1035 966 0 0
T3 3006 2912 0 0
T4 6105 5898 0 0
T5 1268 1095 0 0
T6 1983 1816 0 0
T9 2258 2172 0 0
T16 1645 1487 0 0
T25 1151 1069 0 0
T26 1057 963 0 0

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