Get email delivery of the Cadence blog featured here
When you need to edit to a component, even if that is the BGA footprint in need of a pin #1 padstack change for reference of adjustments to the entire bump layout of a flip-chip to feed routability changes back to the IC design team, there are three primary ways to achieve this in the Cadence IC Package layout family of tools.
Two of these flows derive their use models from the library-based flows most common to the PCB design space, where edits are made by a librarian expert and then “pushed” into the design layouts through refreshes from the library.
In fact, if you are a package substrate designer, only one of the flows is developed to meet your context-based, layout-driven requirements. Consider adopting this flow, with all its unique capabilities, for making your design work as quick as possible.
Today, we’ll review those three flows and highlight their pros (and cons). My goal is to convince you to leverage the tools only available to you as a package designer because they are the best tool in your toolbox.
The library DRA editor is the original symbol editing environment. Available from the first release of the tool, here you can do anything that can be done to a symbol. Whether starting from an empty design or the wizard to guide you (below) up to tweaking the package height min/max properties on the place-bound shapes to drive interference checks; if it is possible to do, it can be done in the library editor.
That does not mean it is the easiest or most efficient solution, however. It is driven by the need for functional completeness. Part suppliers and librarians often develop automation for tasks such as turning spec sheets and part lists into symbol definitions.
For interactive manipulation, pins are managed largely through the Layout – Pins command as illustrated here. This command allows you to place pins either individually or as regular-pitch arrays. Creating regular connect pads or mechanical pins, selecting padstacks, and identifying a pin numbering sequence allow you to achieve the most common patterns quickly.
After the initial pattern has been instantiated, the post-creation editing can become more difficult; there is no defined numbering scheme for automatic renumbering of pins as they are added/deleted/moved, nor will the pins snap to a defined pitch based on placement location within the component.
The DRA environment has many great features. You can add the escape routing and via structures to the symbol that should be leveraged when the part is instantiated. Associative dimensioning objects can be created here, which will automatically copy to the layout when placed and maintain their values during the design process.
Upon completion of edits, your on-disk representations are design-independent PSM files that have references to padstacks, shape/flash symbols, etc. but do not directly incorporate those. This means that if you make edits to the library padstack, when this symbol’s next used in a layout, it will see those padstack updates without you needing to manually go through your library and refresh all the DRA elements.
The Cadence package layout tools afford you the luxury of performing certain instance-level edits to symbols in order to optimize the layout. You can modify the padstack definitions for specific pins, such as a reference pin 1, through the Tools -– Padstack – Modify Design Padstack command. The Edit -– Move command will permit you to reposition the reference designator and other text labels for better visibility relative to surrounding elements on the design canvas.
To prevent even these basic actions from being performed and changing the instance relative to the original definition, add the LOCKED property to the symbol at the layout level. Once done, if you accidentally try to delete a place-bound shape, move a pin number text label, or otherwise, you’ll be advised the symbol is locked and the action will be denied.
If, on the other hand, you want to extend the allowable edits to include moving and rotating of the pins themselves, the UNFIXED_PINS property is a convenient option for achieving this. Once added to a symbol instance, the Edit – Move command will permit you to move and spin the pins of the unlocked symbol. You cannot add or delete pins, however, as this would break the alignment mapping between the physical symbol and logical component interfaces (not to mention other instances of the same part, like a memory die, in the package!).
We advise that you keep the LOCKED property on your symbols and the UNFIXED_PINS off your symbols in order to keep them accurate representations of the physical manufactured parts, whether that is an off-the-shelf resistor or a co-design die component being worked on. The use of these properties requires caution and frequent double-checking of your substrate to ensure that no undesirable edits are made.
Additionally, should you ever refresh your symbols from a library, these instance-level edits will be lost. You’d be required to make them again. A better idea is to modify the symbols in the context of the package while concurrently updating the definition references to remain synchronized.
Your third and final option is exclusive to the Allegro® Package Designer and SiP Layout tools. The symbol edit application mode (SEAM here for short – that’s a mouthful!) has been in the tools for years, now. It replaced the older die and BGA editor commands with a more efficient, in-line model for editing that allows you to quickly switch between editing the symbol, tweaking the escape routing, and even modifying logic assignments – all in the name of minimizing routing layers and optimizing the package layout.
When you use SEAM for your edits, you are editing the symbol definition, equivalent to working on the DRA library object, but in the context of the package, where you can see ratsnest lines, escape routing, wire bonds, and cross-section information. All of this provides additional critical information for making the best edits, intelligently and quickly.
To move a pin in the symbol edit application mode, you would first activate this app mode, then proceed to right-click the pin and select the move action. The pin(s) attach to your cursor for repositioning.
However, you’ll notice a few additions here over the same action in the DRA editor:
The repositioned pins will snap to any specified pin pitch and spacing rules for the component
Physical pin numbers will automatically recalculate based on the modified pattern
Pin rotations will adjust (in automatic mode) if the side of the die the pins are on changes
Beyond this, and perhaps the key aspect, is that the definition itself is being edited. As a result, as soon as you have modified the pins, ALL instances of that definition see the updates immediately. There is no schism between instance and definition as you would see with the UNFIXED_PINS flow. Should you be modifying a memory die in a stack that has 8 instances of that die, every instance is immediately synchronized with the changes. SEAM also allows you to add and delete pins, updating the linked logical component instance and definitions alongside the physical symbol.
Keeping all symbols aligned ensures that all your parts are accurate reflections of what will be assembled on the physical substrate later. No surprises are in store for you! Did we mention that you can even renumber all your pins at the push of a button to any of more than a dozen sequencing algorithms? Or that you can add patterns of pins based on Microsoft® Excel® spreadsheet bump maps? You can!
You will find a host of tools designed specifically for package designer’s needs in the application mode beyond the basic editing tools. Thermal expansion compensation and optical shrink and scribe adjustments for dies allow the entire part to be adjusted, while you can add route keep-outs and constraint regions associated with the symbols as well. This allows those reference geometries to move about the design when you pick up the component to place it elsewhere. The options above are only those for the entire symbol, not for the pins or other child geometries!
SEAM isn’t all about editing, either. You can start a new component from scratch. Create an empty outline and start adding pins, shapes, and other elements. This is still done in the context of the layout, however, not in the isolation found in the DRA editor. Using this is often done for early prototyping and assessment of decisions before an initial version of the IC is even available. Should you be asked to do quote estimations, this is invaluable. If you have a co-design die XDA die abstract, you may read this into the design with the application mode and provide informed feedback to the IC design team very quickly.
We’ve shown you three ways to modify symbols today. From the comprehensive librarian-centric flow in the DRA library symbol editor to instance modification via the UNFIXED_PINS mechanism, to the combination of both from within the layout window with the symbol edit application mode.
I encourage you to try all three for yourself. Don’t take my word on it! But, I think if you do and we talk again in a few weeks, you’ll agree with me that the SEAM path is the yellow brick road to success.