@@ -289,6 +289,7 @@ def __init__(self, builder, netlist, module, name_map, empty_checker):
289
289
self .memories = {} # cell idx -> MemoryInfo
290
290
self .value_names = {} # value -> signal or port name
291
291
self .value_attrs = {} # value -> dict
292
+ self .value_src_loc = {} # value -> source location
292
293
self .sigport_wires = {} # signal or port name -> (wire, value)
293
294
self .driven_sigports = set () # set of signal or port name
294
295
self .nets = {} # net -> (wire name, bit idx)
@@ -372,6 +373,7 @@ def emit_signal_wires(self):
372
373
# the design is flattened) will do that anyway, so it doesn't matter.
373
374
attrs = self .value_attrs .setdefault (value , {})
374
375
attrs .update (signal .attrs )
376
+ self .value_src_loc [value ] = signal .src_loc
375
377
376
378
for repr in signal ._value_repr :
377
379
if repr .path == () and isinstance (repr .format , _repr .FormatEnum ):
@@ -399,7 +401,8 @@ def emit_port_wires(self):
399
401
signed = named_signals [name ].signed
400
402
wire = self .builder .wire (width = len (value ), signed = signed ,
401
403
port_id = port_id , port_kind = flow .value ,
402
- name = name , attrs = self .value_attrs .get (value , {}))
404
+ name = name , attrs = self .value_attrs .get (value , {}),
405
+ src = _src (self .value_src_loc .get (value )))
403
406
self .sigport_wires [name ] = (wire , value )
404
407
if flow == _nir .ModuleNetFlow .Output :
405
408
continue
0 commit comments