Get email delivery of the Cadence blog featured here
If you ever have the need to remove an area of your design, you may find it to be a more complex process than you would think.
Shapes in that area will, if you select them with show element, want to pick up the entire shape. That may extend well outside of the area you want to modify. Traces may snake in and out of the region. Do you delete the entire cline and recreate the rest? Do you delete by segment, mitigating some of the conductors you need to replace, but leaving you with oddly spaced connect points to stitch to? And what about your vias? Do they get deleted if they overlap the region at all? Only if they are completely inside of it? Or maybe if the center connect point is inside the boundary.
Simple problems become complex with the detailed patterns in today’s IC package layouts. Knowing your options for manipulating them, and picking the right tool for the task, may save you much time better directed to other tasks.
As we go through some examples, this will be our starting section of a design:
In it, we have the red shape and a bunch of curvy routing. It’s simple, but it’s a fun example with endpoints of segments and objects that don’t line up horizontally and vertically.
This is one command that every user of Allegro Package Designer knows: Edit - Delete. Using this, adjust your find filter to capture those items to be removed from the design, and start selecting. Use picks, windows, polygons, lassos, paths, or temp groups. Once the items are selected, a second pick in the canvas (make sure you’ve got the right stuff!) gets rid of them in a flash.
The perfect tool for broad-stroke clean-up and rework, delete has a central place in any toolset. Unfortunately, this only works if you want to remove the complete object and leave nothing behind. If there is any level of the hierarchy or relationships between elements that need preservation, this is probably not your best choice.
Even with segments enabled and a very thin selection window, where I near the inner corner of the bend, I lose long segments on the last few traces. More work needs to be redone – and more endpoints not near the others.
What, then, if you want to delete everything inside of a window area, but ONLY the parts of them inside of the window? Can you cut out a part of your power plane along with all the signal routing that weaves through it? You certainly can, with the Manufacture - Drafting - Delete by Rectangle tool.
A simple interface in the options tab provides only one option – do you want to remove the objects inside of the rectangle or outside? Maybe you want to preserve the escape routing under your die when switching to a different BGA package. Keep the routing under the die but rid yourself of anything beyond that. If you want to reuse the package for another set of dies with similar complexity, keep the BGA fanout instead.
To delete by rectangle, select objects to restrict the operation to (hint: there is no need to select cline segments; select the whole cline for faster gathering of the items). Then, when complete, the tool will ask that you digitize two points to define the rectangle area.
Using our starting design, I’ve selected just the clines and then deleted a rectangular area from the right-hand side. The underlying shape is now free to pour into the emptied zone, but each cline is trimmed back exactly to where it enters the region I picked.
To show flexibility when dealing with shapes, I made a second window selection with the shape and used that to cut an area out inside of my newly cline-free zone.
You don’t always want to delete an area. Or, at least, I don’t. Sometimes I just want to stop everyone at a given offset or boundary. Whether it’s 500 microns from the edge of my die or a 45-degree angle moving towards the corner of the design.
For these cases, Delete by Line (conveniently next to the Delete by Rectangle option in the menus…) is a welcome find. As with the rectangular deletion, you still select a set of objects. But, after doing that, you draw a line through them at whatever angle you want. The line in place, pick which side of the line you want to keep; everything on the other side will vanish in a magical puff of smoke.
Above, we see the routed traces selected and a line defined for the cut. All that is left is to pick above or below the line to guide the tool which side of the clines to keep. One pick and ta-da:
… and how do you do it? Do you use one of these commands, or something else? Did you write your own SKILL code customized to your needs?
For that matter, what prompts you to make these kinds of changes? There are some great uses for delete by rectangle, especially – creating a concise module sub-drawing for use in other layouts comes immediately to mind. Whatever the reason, there should be a command, tool, or API to do just what you need inside of Allegro Package Designer!