Get email delivery of the Cadence blog featured here
No, this isn’t a Hollywood movie. We’re talking about pieces of plane shapes with no connections to them, not an idyllic private oasis in the Caribbean (sorry). Removing shape islands is something you’ve always been able to do in the Allegro® layout environments, but the flow for achieving this has improved significantly in recent years.
Come with us, and we’ll compare what the flow used to be versus what it should be these days, and why moving on up has no downside in this case.
In the past, when only static shapes existed (and in the first releases with dynamic shapes), islands were normally deleted from the design only as one of the last steps when you were getting ready to go to manufacturing. Until then, they hung around, and if you established a connection to them, they were no longer an island.
To remove them, you ran the Delete Islands command from the Shapes menu:
This would scan your design and identify the islands currently present. Then, you could walk through them and sign off on the islands to be removed using the simple options tab controls:
Almost invariably, you’d delete all the islands. What happened when you did this for dynamic shapes, though, would be that a void would be added to the boundary layer outline for the shape owning the island area. The void would be the same shape as the island, forcing its deletion.
This is great if the design is complete and won’t see further modifications. However, as we all know, designs take on a life of their own. ECOs, updates, and new requirements drive changes. Unfortunately, some of those changes might result in the area that once was an island now being able to connect to the rest of the net. Because of the void in the boundary layer, this area would never fill in with the shape again unless you manually removed the island deletion void. The addition of these extra steps (not to mention the need to remember that this area HAD a deleted island marker) makes the flow more difficult than it truly needed to be.
Fast forward to the present day. With 17.2 and 17.4, while the command above still exists, we don’t recommend its usage. Instead, we recommend letting the dynamic shapes manage their own islands automatically for you. This can be done through the global shape parameters form:
When you activate this option, whenever your dynamic shapes update for changes made to design edits you make, it checks the status of each individual piece of the final poured shape. If a piece is identified as an island, it will be automatically suppressed.
The best part of this, though? If you then make a change later which provides connectivity to the shape in that region (basically, that piece would no longer BE an island), then the shape will appear again with no required action on your behalf.
Taking the burden off your shoulders to remember these steps, making sure that as much of the shape is poured as possible, frees you to focus on the critical aspects of routing, via placement, etc. in the design. Let the tool manage those aspects of the design you don’t need to think about to save that which none of us have enough of - time.
If you didn’t notice it in the last screenshot of the shape parameters, take a closer second look below:
If you are allowing the system to manage your islands (isolated shapes), it can further assist you by also managing antenna shapes. Antennas are shapes that have only a single connect into them. While the net may come in, it never goes back out again.
This is typically undesirable. Eliminating these shapes (and the via/cline/pin connecting to them) improves the SI/PI for your design. It potentially frees up routing channels for more important uses. Or, if we’re being honest, it might indicate that some connections for this net itself are missing and should be added.
The old-style delete islands command doesn’t handle antenna shapes at all. These are skipped, as they aren’t isolated – they have a connection. This gives you just one more added incentive to move to the new method for island management.
Which command do you use to make sure your design is the best it can be? Does one command work better for you than the other? Are there additional options and controls that would take work off your plate and get you home earlier for dinner with your family? Let us know how we can help you maximize your efficiency!