Get email delivery of the Cadence blog featured here
When you send the initial version of your design for manufacturing, it’s a huge sense of accomplishment. Things are complete. All constraints have been met. When the part comes off the manufacturing line, it works. That is something to be proud of!
That first version is probably not the only iteration. A new version of the die comes out, areas may be found that can be optimized to improve performance or reduce power consumption. Any of these means a new version of your package substrate is needed to incorporate changes – while still maintaining compatibility with the same BGA ball pattern for the PCB.
Making these changes, the frequent goal is to minimize changes to the substrate. Any change may need to be revalidated through all DRCs plus signal or thermal analysis. Changes need to be formally documented and signed-off. If you can change a resistor to a new version without changing anything else on the layer beyond the landing pads and the trace segments routed to them, that is far simpler than updating the entire layer!
The complexity of this in any layout tool stems from the length of time between versions. Between the release used for the original and the one being used for this one, changes have been made. Bugs have been fixed, enhancements have been implemented, new design rule checks have been defined. How, then, do you preserve original design choices and geometries in the context of the latest and greatest software?
Beyond a doubt, the most common area for undesired changes occurring in design comes from the management of your filled dynamic shapes. These shapes are all over your design, and they are being continually optimized with new options and bug fixes. These updates are important for your unreleased designs. BUT, for existing designs that you are revving, incorporating the changes, while good, may require significant investment for which the benefits don’t outweigh the costs.
The ideal solution for this is to convert your dynamic shapes into static. Static shapes never change unless you, the designer, tell them to. If you’re changing a single pin location, then, you can select the shape near the pin and update the void outline ONLY to this pin.
Change Shape Type from dynamic to static is available from the Shape menu, shown above. The void around the pin may incorporate all those fixes we talked about. But, the void needed to change already, so, the area has already been impacted. You will prevent updates to the rest of the shape outline.
Within the Allegro design flow, tear drops covering the intersection between clines and pads are recalculated as the connections update. Like the dynamic shape fill, this is important during the initial design work but can complicate things when you’re making an ECO type change.
If you rip up that same resistor and place it back down, even if the physical symbol itself remains unchanged, the fillets will delete and regenerate during the replacement of the component. This allows the tool to apply any bug fixes and updates that will make those teardrop shapes better for manufacturing.
To prevent this from happening, you can mark the fillets as fixed. Normally, you don’t want to do this until you’ve completed and manufactured the first version. This means that fixing the fillets is separate from the regular fix command. Enable it by turning it on in the user preferences editor and restarting the tool.
After you restart the tool, the fix and unfix teardrops command will be in the Teardrop / Tapered Trace folder of the Route top-level menu:
At this point in the flow, if you are trying to prevent any teardrops from changing, then run Fix Teardrop, and select Fix All from the right-click menu to lock down all the fillets. You can, now, also turn off dynamic fillet generation to speed up editing in the tool.
Symbol instances, normally, can have their geometry element children modified from the original definition outlines. This allows you to oversize a DFA bound, for instance, if you want to have additional clearance to surrounding elements.
At this stage of your design, it is doubtful you want to make any instance-based edits (We won’t rule out the need to refresh the symbols from the library if you need to switch to another vendor for a discrete element or similar). To ensure you don’t accidentally remove, or modify, any of these elements, add the LOCKED property to the symbols through the Edit - Properties interface.
In this case, you can just select all the symbols in the design and apply the property to them.
This one is a last resort, but the option is there if you need it. Should you want to prevent ANYONE from making changes to the design that you don’t know about or approve, lock the design from edits. Using a password, you can keep anyone from being able to save the design out. This will allow you to restrict the users who may make changes to a subset of the team, meaning any change can be documented and approved by the necessary senior team members.
If you have a version control system to manage your design revisions, you could also lock edits there. But, the locking inside of the database can give you the confidence of knowing who edits the data between the first revision and any future iterations.