Get email delivery of the Cadence blog featured here
Let’s talk about wire bonding today! More specifically, the unique labels assigned to every bond finger in your design and how these are important for documentation and your bonding engineer.
Bond finger labels are like physical pin numbers on your die or BGA component. They give the fingers a unique identifier which can then be referenced in many areas of the design. You’ll see them in some netlists and reports. They will often be present in the documentation outputs for your design.
With your bond shell, however, the pattern will see dozens of iterations until you are satisfied it is fully optimized. You may move from two tiers to one. Die pins may swap, meaning the connected fingers will swap. For high current signals, there may be multiple fingers tied together to form a single, large pad to accommodate the extra wire connect points.
The Allegro® Package Designer provides you with convenient tools to manage the labels for your fingers whether you have a complex, fully manual pattern or a multi-die stack that needs to follow a regimented pattern of labels across all tiers in a clockwise ordering!
The first stop in our journey will be manual finger labels. These are created with the Manufacture – Documentation – Bond Finger Text. This command, while older, provides you with maximum flexibility for assigning labels to fingers.
Here, you can specify the sorting order (though you can pick individual fingers one at a time if you want complete control – the finger label will increment with each new finger being picked), choosing to go in a radial direction, ideal for rotating around an entire bond shell, or horizontal/vertical.
The tool will warn you if a finger label is already in use, preventing you from duplicating labels on two fingers in the design. That’s a no-no for most flows. You want the numbers to be unique, just as you want physical pin numbers to be unique on your BGA.
If you’re using this command for custom numbering, it is generally recommended to plan out your numbering pattern first. If you have multiple dies or die stacks with complex bond shells, it can be easy to lose track of your progress. It is also advisable to wait until you have finished and validated your bonding layout. If you move fingers around, you may find you need to redo your label pattern. And that will be tiresome.
For most designers, full manual numbering is best saved for bonding patterns that have irregular placement of fingers. This might be to match wire lengths, to achieve specific SI requirements, or because all your devices are two-pins and rotating clockwise around them makes no sense. Which brings us to the better option, if you can use it…
Open the wire bond settings command, as shown below, in your design and you’ll find the finger labeling configuration option.
If the Label Bond Fingers option is not selected, fingers will not automatically get assigned/updated as the bond tiers change. And, when they are enabled, you can add the displayed text labels (The Display Pin Text command) any time you like. The text labels are kept up to date if the finger’s label assignment changes, making it easy to see the numbers as you’re working. Turn this option on and open the form.
In the label configuration dialog (below), you have many of the same options as the manual numbering tool – with the obvious exception of full custom numbering. However, you gain an important capability (beyond the dynamic updates): sequencing your die stacks.
As mentioned before, duplicate labels in a layout are generally undesirable. How do you account for this, then? The Start At field, above, you might notice is not just a string field. It’s a pull-down as well. You can use this to pick another die stack in the design. Do this, and the current die stack will begin numbering after the last number in the previous die stack.
If die stack one uses BF1…99, then die stack two will start at BF100. Should you add another finger to the first stack’s pattern, then die stack two will automatically bump up to start at BF101, and so on. You can chain any number of die stacks in the design together in this way. It’s a very convenient way to ensure completely unique numbers in the sequence – without having to change the prefix or reserve sets of numbers for different stacks.
There may come a time in the design cycle when you no longer want the labels to automatically update as you make changes. Most likely, this will be after you perform an ECO. If this happens, you may turn off the dynamic label updates.
Once they are disabled, fingers will keep their existing assigned labels. This means, if you add a new finger between BF5 and BF6 in the pattern, it will initially have no assigned number. Using the manual labeling command, assign a new label. One suggestion would be to use a numbering pattern based on ECO. Our new finger might be BF_ECO1_1.
This is an easy way to self-document the changes to the bond finger pattern across the design iterations, but it is by no means a requirement. If you want the fingers to blend their numbers into the pattern, leave dynamic labels enabled. Otherwise, pick any naming convention that works best for you!