Get email delivery of the Cadence blog featured here
ECOs. Without them, the lives of designers would be so much easier! Imagine a world where the original requirements you were given never changed throughout the design. Unfortunately, such a world, as we know, does not exist.
How, then, can you track the progress of your layout through the iterative design flow that we work within? Your change management platform, where you can check files in and out, maintains the database revisions. It doesn’t provide a detailed picture of what was physically modified from revision 3 to 5. Fortunately, the Cadence® Allegro® Package Designer tool provides you a few important tools that allow you to dive deeper into changes.
Knowing why a change was made and how it impacted component placement, routing, metal density across layers, or even the amount of gold used in your bond wire pattern, is important. Let’s look at a few of the tools at your fingertips.
Let’s start by comparing the netlist and parts list between two designs. Logically speaking, if the component list is different, the two designs must therefore be different, also. This is a good, quick check to run to give you a baseline.
From the Reports menu, the Design Compare tool allows you to generate an XML file for each database and compare them through a simple, easy to use interface (below):
Here, you can filter to show just what is the same, what is different, or both. Don’t for a minute think that you are limited to just two designs, either! Using the File - Import menu, you can continue to load additional designs. Then, you can import multiple additional files to broaden the comparison.
Whether you are looking at the evolution of this design over time or comparing the parts list and netlist of two similar layouts (perhaps you offer your product in multiple configurations with different feature sets enabled), this interface will help you pinpoint the information that you seek.
This is not, however, a physical layout differencing engine. It only worries about the logical side of things. While important, and a useful baseline for discussion here, it is not our primary focus today.
Next up, as we dive into the physical layout differences, is the PCB Design Compare tool found under the Tools menu. To see this entry, you will need the Productivity Toolbox option license on top of your Allegro Package Designer. If you don’t see the menu item, check that you have the toolbox active.
Here, you will specify the two designs to be compared and how you want to do the comparison. While this can do a standard comparison of the netlist, placement locations, etc., our interest this time is with the graphical comparison.
This comparison uses the IPC 2581 standard for the comparison, checking for differences between the two layouts based on configured artwork films. This is extremely handy, since the films ensure what is being compared matches the structure and outputs you use during manufacturing output if your output format is Gerber. If your manufacturing format is GDS instead, you're not at a disadvantage. Leave the Use default film definitions check box selected and let the tool manage things for you based on the most common groupings.
I would strongly recommend keeping the option active to create a new database that contains the comparison output. This will ensure that nothing is kept in either of your base design databases. Of course, including all the conductor, pin, and via elements, is a wise idea!
The design comparison tool, it should be noted, does have a few limitations for package designs. Because it is based on the IPC 2581 definition, there are some objects which cannot be represented. If you have a die stack or bond wires, consider reading on for another option. BUT! If you are looking at a flip-chip package, this could be a good (and faster) flow for getting an accurate graphical comparison result. As the IPC format evolves and supports additional objects like these, the compare tool available from Cadence will continue to get ever more useful.
Our final tool can also be found under the Tools menu. It’s in the base product but is today still under the Unsupported Prototypes - Layer Compare menu. I’m talking about the Batch Layer Compare tool. As shown below, this allows you to run a comparison between the geometries of any two designs across whatever layers are of interest to you. Should you only be interested, for example, in the differences in the bond finger tiers, you can limit the comparison to just these objects.
To use the tool effectively, you’ll have to take the time to create an initial list of comparisons to make. This file can be saved out for reuse in the future, though, making the investment worthwhile.
For each set of layers to compare, you provide the layer(s) to be compared, any filters on the data, whether by object type, net name, or area of the design. You can have the tool ignore any different regions that are smaller than a given threshold to screen small changes that may not be of interest. The actions to perform let you customize the checks. Do you only care to know what is in revision 2 but not in revision 1? You can do that here!
Because this is an exhaustive comparison, it can take longer. Run this from the command line in batch mode if you desire to. This will leave you free to continue working on this or other designs. You still may find it more elegant to use the forms to create the control file of comparisons to make, though.
What you get back, in this case, is an updated master database with a set of results layers capturing all the collected differences. Where this flow differs most heavily from the first two is with its difference walker.
In the same menu, right under the Batch Layer Compare command, you’ll find the difference engine. Shown above, you can run through all the differences between the designs that were found. You’ll see the size and location of all the differences once you pick the compared layers. Clicking on any difference will zoom to the location for you to evaluate and understand. This is very similar to the DRC Browser tool everyone is familiar with. So, it shouldn't take you any time to get used to.
Take this to the next level by opening the comparison database in a second window. As you select a difference in the UI from the master, the second window will move in lock step, enabling you to see context in both designs easily. Should a change be acceptable, you can acknowledge the change. This is like waiving a DRC, for all our design community members who use that flow!
Not unlike the logical design compare, you can perform multiple batch layer compares against different revisions of the design. Each design will be listed in the compare database pulldown at the top of the form above. Move between them to see the changes as they occur over time. This allows anyone to see how changes were organically made across multiple ECOs of the design. Handy!
What tools do you use for comparing versions of your designs? Do you compare one layout to another, to understand the different routing strategies employed by your fellow team members so that you may learn and apply similar techniques in future designs?
However you work your magic, let our team know what we can do to help. If you need specific data points, the experts here are happy to help you extract it from your designs!