Updated for CAM350 v 14.0
Netlist Compare is the only way to find opens and shorts in your Gerber database. It is the most important pre-fabrication check one can do in CAM350.
The Netlist Compare process extracts a netlist from your graphic data and compares it against a netlist from an external source. Without the external netlist there is no way for CAM350 to understand that the graphic data may not match what was intended. DRC and other checks cannot find opens or shorts.
Command Sequences in this article are valid for Cam350 version 14 and later. The first command in the sequence is always the ribbon. So Home | Align Layer refers to the Align Layer button found on the Home ribbon. Tools | Explode | Net refers to the net option under the Explode button found on the Tools ribbon.
Preparation
Some import and preparation problems cause netlist extract problems and produce false errors in netlist compare. Being aware of these issues will lead to a more accurate check.
If you have control over the generation of the Gerber data, adjustments to the output settings in your CAD program can reduce or eliminate all preparation issues. Such settings vary depending on the CAD program. To discuss such matters, contact support.
We do have some articles for Cadence Allegro and Mentor Pads Gerber export settings that can be found here.
- <link to Allegro export tech tip>
- <link to PADS export tech tip>
Files
IPC-356 or IPC-356A netlists are preferable for netlist compare. Using a CAD netlist that is reference designator based is problematic as the netlist you extract from your Gerber data is not referenced designator based. Thus they cannot be compared without using CAM350 to build parts. Building parts is very time consuming.
It is better to get an IPC netlist from the Gerber data source. Most modern CAD programs can do this as IPC netlist are an industry standard. If the CAD system does not export IPC netlists, you may be able to get around this problem by using IPC-2581, ODB++ or other formats as long as they include net information. By importing such “intelligent” data info CAM350 you can then export an IPC netlist.
Understanding the IPC format is important to netlist compare, especially if you find errors. Parts of this article will refer to IPC data and assumes some familiarity. To learn how to read an IPC netlist, see the document
http://www.downstreamtech.com/cam-advisories/IPCD356_Simplified.pdf
As for the Gerber Files, the only thing that is important is that the data be imported properly. Errors as part of either the import dialog, or those visible on screen after import must be dealt with accordingly. Misaligned data, undefined apertures and other import problems will result in a bad netlist extract and thus a bad netlist compare.
While you can import the external netlist as part of your compare process. It is recommended you do so before the compare is done in order to find problems that can result in bad netlist compare results.
Non-Gerber database compares
One can also use the compare process on other database formats as well. ODB++, IPC-2581 and CAD formats could be used. The problem with such data is that there is no requirement in the format that the graphical data match the CAM netlist. Thus it is important that a netlist be extracted and an external netlist be used for the compare process. The process is still concerned with checking the validity of the graphics, so following the normal process is important.
As the existence of parts can modify netlist extract results, it is critical that (with top and bottom layers displayed) you use Tools | Explode | Parts – Select All on all data after import and before running netlist extract. IPC-2581 and ODB++ data includes an external net as part of the database, which can be used normally in the compare process.
Other than the Tools | Explode | Parts step, the process with Non-Gerber Databases is exactly the same as it is with Gerber data.
The Importance of NC (drill) Data
Drill data is critical for a good Netlist Extract. CAM350 uses it to determine how the layers connect. When no drill data is present, CAM350 will create though vias at any location with coincident top and bottom pads. This is not ideal as CAM350 is essentially guessing.
Align Gerber data
If data is not aligned, you cannot extract a good netlist. This is true for all electrical layers and drill data. Use Home | Align Layer to correct alignment problems.
Setup Layer Sets if Necessary
If data has Blind and Buried Drills or it uses MCM technology, use “Home | Panes | Layer Sets” to define how the data stacks up.
For Blind and Buried, the thru drill layer is assumed. Do not define it other than to select it in the “thru drill” box in the lower left corner of the dialog. Be sure to define ALL layers in the layer set otherwise. If the blind drill connects layer 2 through 4 you must include layers 2, 3 and 4 in the layer set. Cam350 will not assume and middle layers are included in the layer set.
For MCM Layer Sets, stack them up in order with an insulator layer between each conductive layer. With no insulator layer between layers, the connection is broken.
Draw To Flash
Run Tools | Draw to Flash on top and bottom layers only if necessary. For best results on netlist extract, pads must be flashed. While Trace and polygon drawn pads will typically pass a netlist compare, they can lead to false errors in some situations.
To see if you have drawn pads, set the colors for draw and flash differently on your top and bottom layers. You can do this using Home | Panes | Layers among other places. Then look at your top and bottom layer to make sure your pads are the flash color.
If you have rotated pads or other unusual pads, Tools | Draw to Flash | Interactive is the best way to flash them. In some cases, such as with round boards, you might end up with many drawn pads at various rotations. Flashing all of them may take a while. In such cases an alternative would be to copy the drill layer to the top and bottom layers. This will create a flashed pad at each via, which is enough to extract a good netlist.
View the external net
Assuming you elected to import your external netlist prior to the compare step, you can select View | External Nets to turn on External Net View.
You can adjust how external nets are displayed using File | Options | Editors | CAM Editor. Adjust settings to match your preferences. Avoid using colors also used on your electrical layers, and adjust size of test points so that they do not over clutter your view of the data.
Viewing the external net is very helpful in preparation as you can use it to make sure the net data aligns with the Gerber data. If an external net point misses the pad it is supposed to be on, then the Compare will not work. It is not important that the point be centered on the pad though. Such minor misalignment is not a problem in most cases. But it can be fixed using Tools | Snap set to “snap drills to pads”.
Another thing to note when viewing the external net is if there are net points on isolated pads. If there are, make sure that you use the “Assign single point nets to unconnected pads” option when extracting your netlist. Here we can see an isolated topside net with an external net point on it.
Most CAD systems are very consistent on the matter of single pin nets. So if you have a CAD source that includes single pin net info, then it will probably do so for all netlists it generates.
You can change display color of imported nets by clicking on Details. Net points are displayed as follows.
Top side point
Bottom side point
Through hole (recommended)
The through hole symbol “X” can be confusing when dealing with dense boards. After all it looks exactly the same as a top and bottom side test point at the same location.
Align net to Data
The external net must line up with graphics, otherwise Netlist Compare will fail. By viewing the external net, we can see if there is a problem. If it is not aligned, you need to move the graphical data to the netlist. You cannot move external net data. In the figure below, the net is offset to the lower left.
If you have some marker or other artwork that is supposed to be at the origin (such as the corner of a the board, or a fiducial). Design | Origins | Space can set that item as the origin.
External net stays with the origin, so when you move it, you move the net. Once complete your data should be lined up.
If there is no net point at origin then you can just use Home | Move to fix the problem. First identify a pad and the net point it should line up to. This can be difficult on big boards, but by looking to thru holes or pads at the edge, one can recognize the pattern and find a pad/net point pair that should line up.
Next be sure all layers are on. Set object snap on and grid snap off. “Edit | Move” then click select all. Next carefully click on the pad to set it as the source point. Be sure the center of the pad is inside the object snap selection box when you click. Note: you can adjust the size of the selection box using PgUp/PgDn buttons on the keyboard.
Now with all data selected, grabbed by the pad you selected as the source point, click on the net point the data should line up with. Be sure the net point’s center is in the object snap selection box.
Once data is aligned you can turn off View imported net if you wish.
If a mistake is made, you can use “Edit | Undo” or just repeat the process until it is correct.
Netlist Compare
Home | External Nets allows you to setup a netlist compare. This can also be done as part of a Stream that you can setup using Analyze | Streams Editor. Features in either tool are the same. We will focus on the ribbon mostly as you get a bit more info in the interface that what Streams provide.
If using streams you can find the same options as described below under the constraints section. In fact the Home | External Nets has a “save to stream” feature you can use to take you selected settings and make them a Stream.
First checkbox is for “Compare against External IPC-D-356 Netlist File”. This can be unchecked if you have already imported your external net as recommended. The file name can be left blank as well.
Next checkbox is for “Extract CAM netlist from design interconnect”. This will extract a net from your artwork. This should be checked.
Below are 4 more check boxes. These should only be enabled if there is need for them. Otherwise they should all be unchecked as per the default.
“Assign nets to draws or fills detached from pads” should not be used normally. Using this option will extract a net on any trace or polygon on an electrical layer. This can result in extra nets as text and borders and other artwork are drawn with traces and polygons. If you have flashed pads there is no need. If your pads are not flashed, then you should run draw to flash on the data instead.
“Assign single poin nets to connected pads” should be used if your external netlist has single point nets. To check for this, look at your isolated pads on the top or bottom layer and see if there is an external net point on them. Option to view external nets is under View | External nets as mentioned above.
“Assign negative plane as a single net (no split planes)” should not be used. If you planes are not split, then we artwork should show that. Having Cam350 check that fact using your artwork is really the whole point of netlist compare. The option does speed up the compare process slightly, but the minor gain in speed is not worth the risk.
“Ignore plated milled objects for net assignments” is also something that should not normally be used. If something is plated, that is a net, so it should be included.
For existing nets, you should ideally choose “Purge Existing Net Definitions”. If for some reason you want to keep existing net name you could use the checkbox. But having the external net names and the extracted net names be the same is confusing when tracking down errors. Cam350 assigns numeric net names ($Net0, $Net1 etc) so you can easily tell which are the external net names and which are not.
Drill Advisory should say “data is ok” and it should have selected the correct drill layer as the through hole drill. If not, correct it. Note that given multiple drills and no other instruction, Cam350 will just choose the first drill layer as though.
Final section is “When Comparing External Netlist to Cam350 Netlist”. This section has some options netlist compare. “Ignore Extra External Nets in external netlist” and “Ignore Nets in Cam netlist Missing from External Netlist” prevent errors of their type from being reported. This is helpful with data that ends up reporting a large number of false errors of these types. Occasionally you will get less than ideal data for the compare process.
Another feature “External Netlist has a No Connect Net names as:” which lets you set a net name as a “no connect” net and rules for it. “No connect” nets are nets defined in the netlist as a net but do not connect to each other or anything else. They are usually named “N/C”, “$NONE” or something like that. Treated as a normal net it will flag a large number of opens.
If have a No Connect Net then specify it and check the option “Ignore Opens for No Connect Net”. Using this option you can tell Cam350 to ignore opens on this net. It will still check for other errors such as shorts on the net.
If you did not use “Assign single point nets to unconnected pads” for the netlist extract, then you should check the option “Ignore extra external No connect nets” here as well.
When you select the run now button, the pull down menu has a few more options. “On entire design space” does just that. But if you have text or other items that are outside the board and wish to have Netlist compare ignore then, use the “Run one-up boarder” option (if you have one defined) or the “in a selected area” to select an area. Use “Utilities | Draw to One up Boarder” to set this up. This is another feature not available in Manual Netlist Compare
The error explorer pane will displays any errors. These errors can be saved as part of the CAM350 database for later review.
Understanding the Results
A number of different error types can be reported. These are the common ones to get when doing an IPC based netlist compare. More are described in help under the Netlist Compare topic.
Usually if there are any errors, there are many errors. Often all or most of the errors have the same cause. So if you are finding one error does not make sense to you, check another error. Try to focus on small errors and small nets. If there is a short between GND and a smaller net, focus on the smaller net.
Open: Extracted net does not connect all points as defined in the associated external net. In the display one net will be highlighted in grey and the other in white. Opens between layers are often caused by missing drill data, so make sure you check the thru drill layer.
To the Left: An Open is displayed. One net highlighted in white, the other in Grey. The external net has these items connecting, but the Gerber data has no connection. In this case, there is an obvious problem of a missing segment in the trace.
To the right: A Short is displayed. 2 or more points in the external net are shorted together in the extracted Net. Finding shorts can be difficult. More on this type of problem in the “Finding Shorts” section
No Copper: The external net has a point, where there is no copper (graphic data on a net). If you see copper data there, query it. It will not have any net data on it. To fix false no copper errors you need to figure out why there is no net on the graphic data. Typically such a problem results from unflashed pads or missing drill data. Using standard netlist extract settings you will get a net on any pad that shorts to something else. So if you only have trace data, no netlist will normally be extracted.
To the Left: A typical No Copper error. There is an external net point (pictured in blue), but no graphic data there on the top side.
Missing External Net for CAM Net: CAM350 has a net in a location where the external netlist has none. Such errors are caused by misaligned net data. It can also be caused by using the “allow single Point CAM nets” option on netlist extract when the external netlist does not contain any such nets. This kind of error can be suppressed as an option in Netlist Compare in Streams.
To the Left: A Missing External Net for CAM Net error is displayed. The highlighted pad is the pad with the CAM net. There are no external Net points visible there. There are no Traces running into the pad, nor any drill. If the pad to the left has the same type of error, then this is probably a case where the external net does not list single point nets.
Re-extract the net using the proper settings.
Extra External Net at Pt: A point on drawn data, with no net, is the location for an external net. Typically you will get this kind of error if your external net contains single pin nets, but the netlist extracted did not have that option checked. You will also get this error if you run netlist compare without extracting a netlist. This kind of error can be suppressed as an option in Netlist Compare in Streams.
To the Left: a topside pad with no net, but with an extra external net at that point. This kind of error could be suppressed in Streams, or you could re-extract the netlist using the “Single Point Nets” option.
Finding Shorts
Finding a short is the hardest part of netlist verification. Unfortunately CAM350 cannot show exactly where a short appears. So you will need to search for it. When CAM350 displays a short, it highlights the short area, which is the entirety of all the shorted nets. When looking around for it does not work, you can use this system to help out.
When a short is difficult to find, it is a good idea to limit the amount of data you are looking at. While the Error Explorer is helpful, it sometimes shows too much information on a short. So take some notes on the shorting net names and close the browser.
Shorts come in groups. When this happens, pick the error that involves the smallest net to investigate. A net that does not short to a power or ground plane is the best as it limits the amount of data to look at. Of course if the error does involve ground or power then perhaps there are also some smaller nets in the short that are not either of those. Focus on the small nets. Typically finding one short will help explain all other shorts as well. So even if you get 500 shorts, just try to understand one of them.
Below is how this short looks in the error explorer. We can see 2 external net names. Using HOME | PANES | EXTERNAL NETS we can highlight and zoom to these 2 external nets.
You can find the smallest net just by making a list and checking each net on it using Home | Panes | External nets. If you leave external net view off, only the net selected in the NAV pane is displayed. Zoom in on some of the points to view the Pads at those locations on the top or bottom layer. Follow the Traces and see if they lead to PADS that have no net data displayed (and thus on a different external net).
To the Left: Using the Panes | External Nets you can set an alternate color to an external net you are investigating. Here $Net11 has been set to yellow. Other nets still use the default color.
To the Left: External $Net11 is shown in yellow while the other nets are in default blue. Using this one could follow the yellow net points until you find the problem
More methods for tracking shorts are described later in this article.
Don’t Forget the Drill Data
Drill hits make shorts between layers. Missing Drill hits make an open between layers. Extra drill hits make shorts. So as you look the net over, leave the drill layer on and see if there is a hit that creates a though hole that is not mentioned in the external net.
Finding Shorts with Text Editor – aka Validate your external netlist
In some cases, you might have a netlist that is wrong and perfectly good Gerber data. So if you are selecting external net data and it seems to make no sense, take a look at the netist in a text editor.
When you have major shorts that you cannot figure out using the graphic interface, you can use a text editor to look directly at the external netlist. Also false errors can be caused by bad external netlist data. So checking the external net is a good idea when normal methods fail. Also with extremely large shorts, having a text list of all the points on the net to work from is helpful.
You can view the external netlist in a text editor. This will allow you to find the shortest net as well. Once you have a nice short net, make note of the coordinates and the points on that net.
317$Net53 VIA D 280PA00X+ 12500Y+ 4000 S0
327$Net53 U1 -4 M A01X+ 12250Y+ 5750X 240Y 900 S2
327$Net53 U2 -4 A01X+ 12250Y+ 12250X 240Y 900 S2
317$Net53 J1 -9 MD 280PA00X+ 12500Y+ 4000X 550Y S0
Above is a sample net short net. It only has 4 points on it. This is ideal for finding a problem. Even if this net shorts to ground, all you have to do is analyze these 4 points and see how to get from them to the ground layer.
The 4 points above in order are
1 – a through-hole (A00 is through-hole) at 1.25x.4, size is not listed.
2 – a topside (topside is A01) pad at 1.225 x .575, a pad 24×90 mils in size.
3 – a topside pad at 1.225×1.225, also 24×90
4 – a through-hole at 1.25x.4, a 55 mil round.
Use the info in the netlist to zoom to the coordinates one by one and look around. Use the Coordinate Bar “View | Coordinate Bar” for zooming. If a point is a though hole, check it on each layer. Make sure the though hole as a drill hit on the drill layer. Try to find something connecting the net to a point that is not described in the netlist.
Another way to look at them is to go back to the NAV pane, and highlight the net you are looking at. Point to the displayed net points one by one and figure out which one it is only your list before looking around for problems.
Technical Support
When all else fails. The Downstream Technologies Tech support department is ready to help you understand the netlist compare process and any errors you may have encountered. You can contact Technical Support for help.
Support: support@downstreamTech.com
Support Hotline: 408-971-2241