This gives particularly pathological results on IO buffers, like:
connect \D_OUT_0 \user_led_0_user_led_0__o
Since subfragment signals are name-prefixed because this works well
for signals propagated upwards across hierarchy, this is never
desirable for instances.
sub_ports = OrderedDict()
for port, value in sub_port_map.items():
- for signal in value._rhs_signals():
- compiler_state.resolve_curr(signal, prefix=sub_name)
+ if not isinstance(subfragment, ir.Instance):
+ for signal in value._rhs_signals():
+ compiler_state.resolve_curr(signal, prefix=sub_name)
sub_ports[port] = rhs_compiler(value)
module.cell(sub_type, name=sub_name, ports=sub_ports, params=sub_params,