@@ -581,17 +581,17 @@ def _pop_ctrl(self):
581581                data ["name" ], data ["init" ], data ["encoding" ], data ["decoding" ], data ["states" ], data ["ongoing" ]
582582            fsm_state_src_locs  =  data ["state_src_locs" ]
583583            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 )
585585                return 
586586            if  fsm_init  is  None :
587587                init  =  fsm_encoding [next (iter (fsm_states ))]
588588            else :
589589                init  =  fsm_encoding [fsm_init ]
590590            # The FSM is encoded such that the state with encoding 0 is always the init state. 
591591            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 )
595595
596596            for  name , sig  in  fsm_ongoing .items ():
597597                self ._top_comb_statements .append (
0 commit comments