Closed leonardt closed 4 years ago
Related to https://github.com/rdaly525/coreir/issues/935, I think the Verilog backend needs to keep track of used symbols and generate fresh ones to avoid this name clobbering in general. For example, if we have an instance foo
, we'll generate an input port wire foo_I
if needed, but there could be an instance foo_I
so we need to check for conflicting names first. This is a temporary workaround to unblock downstream users, I'll work on the more general solution to avoid this name clobbering next.
This fixes an issue where the insertion of mantle wires for slice inlinining was clobbering port names. Normally this isn't a problem when using --inline since the clobbered name is removed, but it's a problem for old code that doesn't use inline (e.g. garnet). This adds compatability for those flows.
Here's an example error we were getting