I recently noticed that my layout shows a good portion of my previously routed component pins as disconnected. The source of this error appears to be a mismatch between the layout net names and the schematic net names. I haven’t figured out yet which tool created the mismatch, but I suspect that the schematic is not netlisting correctly, so when I import that netlist, instead of finding the connection from Pin A7 of U3 to pin B23 of U1, it sees only single pins at A7 and B23. It looks like the netlister is not following the hierarchy correctly (or it’s doing it differently), so the connection from one level up to the top level and into another hierarchical level produces different net names at both ends.
Backstory: I’ve been using the 5.0rc3 versions for a while, but thought it was doing something wrong with an export. I updated to what I hoped would be the 5.0.0 final release, but noticed it was actually the first version of 6.0rc1 (July 16 nightly). I used it for a few days and all appeared OK, until I noticed so many of my pins with no netnames on them. I’ve downgraded to the previous version I’d been using, but the error persists. If I netlist now and import that netlist into an older version of the layout that isn’t corrupted yet, it corrupts that layout.
I don’t see why 5.0rc3 would produce an incorrect netlist, but it sure looks like it does. Restoring old versions should help me figure things out some. I’d like to recover the work I’ve done in the 6.0rc1 version. Ideally, there would be some way to fix the corruption, but how can I recover the work? Is there a way to copy part of a layout from one file to another? Is there a surefire way to debug the error so I don’t have to?
Thanks for all of the advice, but this has turned out to be a stupid user error, and not corruption. One of my hierarchical symbols had moved a grid space in one direction so that all of the wires and buses that were connected to it were no longer connected. It was moved in the direction of the wires, so the wires ended one grid space within the symbol instead of at the edge. I should have noticed this, but I now know to look more carefully at the connections after updating a symbol. If I just move the symbol, all the wires/buses stretch/shrink with the movement, so this must have been the result of some change at the symbol which wasn’t so obvious at the schematic level.