Get email delivery of the Cadence blog featured here
It’s my last blog post of 2019. A fantastic year is ending, so I want to take a quick opportunity to go over some of the lesser-known commands available to you for cleaning up and optimizing your routing for manufacturing.
Allegro Package Designer and SiP offer many commands in this space. Whether it is Custom Smooth or the suite of tools under the Glossing umbrella, they are known (and probably used by) all of you. What about the others, though? Have you kicked the tires of the Spread Clines command? Widened clines with the Via-Via Line Fattening weight gain program? Straightened your vias with Align Vias? There’s even the Resize/Respace Diff Pairs prototype command waiting for its turn in the spotlight.
Let me give you the 30,000-foot view of these different commands. If we’re lucky, you’ll see a place for them in your next design to save time. All of them are under the main Route menu if you look:
I’m going to go in the order shown above. Which gives Spread Clines the honor of being first. This command does what the name suggests. It spreads clines to be evenly spaced apart. It is designed to optimize the routing through channels, where a channel is defined as the space between a pair of vias/pins/fingers.
Thus, the tool takes a set of clines routed between a pair of BGA balls that hug one of the two balls and instead move them to be optimally positioned in the middle between the two balls based on the required cline-cline and cline-pad spacing requirements.
You are not limited to channels with two traces going through them, nor are you limited to horizontal or vertical oriented channels. You can, as shown in the options above, decide whether the clines are allowed to have vertices added to them, even whether or not to consider spacing to voids in the reference plane shapes above or below the routing layer.
After selecting the channel-defining elements, you’ll even be shown the impact area and allowed to fine-tune it, seeing where the center of the channel is, etc.
Not some kind of bizarre reverse weight loss program, this command will look for shorter clines that connect between two vias that are less than a maximum distance apart and attempt to widen the cline if there is ample room. A larger cline can offer better manufacturing yields with tolerance, not to mention improved signal integrity characteristics.
The user interface is simple. It offers you only the ability to specify the maximum separation between the vias and whether you want to process the entire design or just certain, selected traces. For your first experience with the tool, you might want to run it in selective mode, process the active window region, and see what happens. That’s a great way to see just what it does!
Beyond this, the only other option you’ll notice on the command is the ability to automatically waive line width and impedance DRCs which may result. If your max line width constraint, for instance, is there for guiding the routing engines and other tools, while you are now widening because there’s available space, you may wish to allow these without changing the max line width for when you’re running other commands.
If you’re like me, this one probably goes in the “yep, I need to do that on all my designs” bucket. Doing just what the name suggests, this tool will make sure that your vias are all nicely lined up. Whether you’re trying to take a set of vias you routed by hand and get them all to change layers at a consistent X or Y value, or you just want to space them out in a nice, even distribution across the available delta between the outer two pads, you’re aligning.
This is nearly identical to the text justification options in your favorite word processor. There, you’ll find left, right, center, and full justify options. Here, the options are the same (with “full justify” replaced with “evenly spaced”), as are the results.
Shown below, the options are there for you to pick between vertical alignment or horizontal. And, if these are not vias to stitch between two ground planes, determine whether you want the routing connections to the vias to be stretched (most likely, you do!).
The exact time when you run the align vias command might vary from designer to designer. It will depend highly on how you do your routing, and with which tools. If you place vias initially in a pattern and then route to them, for instance, make sure they are all aligned before you start routing. This will ensure consistently-sized routing channels, making your interactive and auto-routing tasks easier.
Not to be left out, this unsupported prototype command is equally exciting. This tool only operates on differential pair objects, though you can preselect them in the main canvas before launching the command or pick them after. Once you’ve picked the elements, you’ll see the below form:
You’ll see the current width and gap on each of the layers the net is on. Reconfigure them. The Copy button will allow you to replicate the settings from one layer to the others if you’ve got consistent values on all the layers (save some typing!).
After entering your values, the OK button will adjust things. This command is extremely useful for tweaking the diff pair key routing values across the entire length of the diff pair. Much simpler than using something like the slide command, it involves vastly fewer clicks. The general path of the pair will remain unchanged.
That brings us to the close (for my blog posts, here) of 2019. I hope you’ve enjoyed the journey and maybe even learned a few things. Come back next year when I’ll start with new year’s resolutions of helping fix common design errors while we continue to look at all the fantastic new features in 17.4.
Happy New Year!