@@ -252,10 +252,6 @@ def map_statements(self, fragment, new_fragment):
252252 for domain , statements in fragment .statements .items ():
253253 new_fragment .add_statements (domain , statements )
254254
255- def map_drivers (self , fragment , new_fragment ):
256- for domain , signal in fragment .iter_drivers ():
257- new_fragment .add_driver (signal , domain )
258-
259255 def map_memory_ports (self , fragment , new_fragment ):
260256 if hasattr (self , "on_value" ):
261257 for port in new_fragment ._read_ports :
@@ -322,7 +318,6 @@ def on_fragment(self, fragment):
322318 self .map_subfragments (fragment , new_fragment )
323319 self .map_domains (fragment , new_fragment )
324320 self .map_statements (fragment , new_fragment )
325- self .map_drivers (fragment , new_fragment )
326321 return new_fragment
327322
328323 def __call__ (self , value , * , src_loc_at = 0 ):
@@ -518,13 +513,6 @@ def map_statements(self, fragment, new_fragment):
518513 map (self .on_statement , statements )
519514 )
520515
521- def map_drivers (self , fragment , new_fragment ):
522- for domain , signals in fragment .drivers .items ():
523- if domain in self .domain_map :
524- domain = self .domain_map [domain ]
525- for signal in signals :
526- new_fragment .add_driver (self .on_value (signal ), domain )
527-
528516 def map_memory_ports (self , fragment , new_fragment ):
529517 super ().map_memory_ports (fragment , new_fragment )
530518 for port in new_fragment ._read_ports :
@@ -560,10 +548,6 @@ def _resolve(self, domain, context):
560548 self ._warn_on_propagation_up (domain , context .src_loc )
561549 return self .domains [domain ]
562550
563- def map_drivers (self , fragment , new_fragment ):
564- for domain , signal in fragment .iter_drivers ():
565- new_fragment .add_driver (self .on_value (signal ), domain )
566-
567551 def replace_value_src_loc (self , value , new_value ):
568552 return not isinstance (value , (ClockSignal , ResetSignal ))
569553
@@ -605,9 +589,12 @@ def __init__(self, controls):
605589
606590 def on_fragment (self , fragment ):
607591 new_fragment = super ().on_fragment (fragment )
608- for domain , signals in fragment .drivers .items ():
592+ for domain , statements in fragment .statements .items ():
609593 if domain == "comb" or domain not in self .controls :
610594 continue
595+ signals = SignalSet ()
596+ for stmt in statements :
597+ signals |= stmt ._lhs_signals ()
611598 self ._insert_control (new_fragment , domain , signals )
612599 return new_fragment
613600
0 commit comments