Get email delivery of the Cadence blog featured here
Some items are useless on multiple levels. The most common multi-class pairing is probably the package substrate outline and the route/component keep-in shapes. Since it’s unwise to route or place anything off the edge of the world, it is important that the keep-in shapes be no larger than the design’s outline.
When we copy objects (or move them), though, it is generally to a different XY location, rotation, or mirrored-geometry status. The above is the exception, not the rule, for standard replication practices. Hence, the standard copy-and-paste flow is geared towards making this 2-dimensional copying as quick and easy as possible.
Wherever the need arises for you to want to make copies on different layers or on different classes, the commands we’ll talk about today belong in your go-to bag of tricks!
The Edit - Change command is a simple, but still powerful, command. The UI, shown below, allows you to change a line/cline’s width, update the text block assigned to a text object, or even, yes, change the layer of an object.
That said, there are limits. You cannot, for instance, move a cline trace to a non-conductor layer. That would require its core object type to be changed from a cline, or routing path, to a line. Lines in the database are there as drawing elements only. They can never carry a signal or current; hence both their distinction and their limitations.
There are some similar reasons for why shapes cannot be moved to a different class in the database. A dynamic shape boundary is only allowed to exist on the boundary class. Even with static shapes on conductor layers, the change command will not allow you to migrate the outline to a different class as this would break the net ownership for the shape.
These form the primary difference between the change command and those below, Change, like the Edit - Move command, preserves the information about the original object. Therefore, its restriction on the behavioral changes that may be specified. Add to this that the change command allows you neither to move (in the XY plane) nor copy (leaving the original where it was); as many cases as the tool satisfies, there are additional that it is inapplicable to.
Moving one level further up in both ability and complexity, there is the Z-Copy command, also under the Edit menu. Here, you can still copy either lines/clines or shapes, but in this case, you ARE able to copy across to different classes.
Why the difference? The name says it all. With this command, you aren’t modifying the original object. That means that there is no ambiguity or potential loss of information. If you are copying between conductor layers, you can choose whether to create static or dynamic shapes, as well as whether to copy the net assignment to the new shape.
The final, but perhaps most useful options, are not the ones you might expect. If you want to copy ONLY the base shape outline without copying any void cutouts in it, you can do this. And, you can choose to expand or contract the result by a specified amount.
Where might you need these options? First, the void filtering will allow you to preserve the base shape but allow the new shape to be dynamically voided to objects on the target layer. This is critical if you are copying to or from conductor layers. Even copying the dynamic boundary of a shape that has manual voids defined in it, the manual holes may not be appropriate on the destination layer. Second, the expansion, is useful in nearly unlimited situations. Do you need to create a via keepout above a particular trace or poured shape (with a given gap between the vias and the reference item)? Z-copy can help you there. Are you trying to create a stadium-style cavity with non-vertical walls that surrounds multiple different die stacks? Again, your partner in crime may be Z-copy.
At the apex of the inter-class copying utilities is the Cross-Copy tool. While found in the Edit menu with its cousins, you will need access to the Allegro Productivity Toolbox add-on option license to take advantage of cross copying.
This is the first command where you can copy objects to a different class other than lines, clines, and shapes. Pins, vias, and figures are also up for grabs. If you are attempting to create a mask opening around a set of pins including shapes overlaying them, the cross copy is the tool you need. It includes the ability to merge the polygons together at the destination, removing any overlapping and redundant regions to keep the design smaller and easier to manipulate.
Some options carry forward from Z-Copy, like the option for whether to copy the shape’s voids and to expand or contract the result. Others, like the built-in ability to convert from a line to a shape, do not. Converting to shapes, going back to our keepout example with Z-Copy, is very useful if those keepout zones are relative to critical routing paths. Size things exactly how you need.
The last unique option? Delete the original object from the design. Did you create a via keepout when you meant to create a route keepout? Enable the option to delete the original objects to perform a movement, rather than a copy-and-change cycle. This saves you clicks, time, and energy versus running multiple commands in sequence to accomplish the same task!
When the time comes, which of these tools is the first pulled out of your bag of goodies? Does your preference lie with another command we didn’t mention? Or, did you take the time to write a customized use model with SKILL with the specific knowledge of what changes you make are? Whichever is the case, the Cadence team would love to hear it. That insight allows us to focus our development efforts to make the tool continually better for you!