@@ -581,17 +581,17 @@ def _pop_ctrl(self):
581
581
data ["name" ], data ["init" ], data ["encoding" ], data ["decoding" ], data ["states" ], data ["ongoing" ]
582
582
fsm_state_src_locs = data ["state_src_locs" ]
583
583
if not fsm_states :
584
- data ["signal" ] = Signal (0 , name = f"{ fsm_name } _state" , src_loc_at = 2 )
584
+ data ["signal" ] = Signal (0 , name = f"{ fsm_name } _state" , src_loc_at = 3 )
585
585
return
586
586
if fsm_init is None :
587
587
init = fsm_encoding [next (iter (fsm_states ))]
588
588
else :
589
589
init = fsm_encoding [fsm_init ]
590
590
# The FSM is encoded such that the state with encoding 0 is always the init state.
591
591
fsm_decoding .update ((n , s ) for s , n in fsm_encoding .items ())
592
- data ["signal" ] = fsm_signal = Signal (range ( len ( fsm_encoding )), init = init ,
593
- name = f"{ fsm_name } _state " , src_loc_at = 2 ,
594
- decoder = lambda n : f"{ fsm_decoding [ n ] } / { n } " )
592
+ data ["signal" ] = fsm_signal = Signal (
593
+ Enum ( f"{ fsm_name } State " , [( f" { fsm_decoding [ n ] } / { n } " , n ) for n in range ( len ( fsm_decoding ))]) ,
594
+ init = init , name = f"{ fsm_name } _state" , src_loc_at = 3 )
595
595
596
596
for name , sig in fsm_ongoing .items ():
597
597
self ._top_comb_statements .append (
0 commit comments