DownStream Techonolgies - Solutions for Post Processing PCB Designs

CAM350 Tech Tips


IPC Netlist Compare

An In-Depth View for Release 10

Netlist Compare is the only way to find opens and shorts in your Gerber database. It is likely 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. Thus DRC and other graphics checks cannot possibly find opens or shorts.

Netlist Compare is also useful when editing a board. Netlist compare can catch mistakes that alter the net. Just extract a netlist from the Gerber data, make it external with Analysis | Nets | Update External Nets from CAM Nets and then do your edits. Use Utilities>Netlist Extract to a new netlist after edits then run Analysis>Nets>Compare External Nets afterwards to make sure the net has not been altered.

The Navigation Pane in CAM350 v 10.0 adds the ability to easily locate and highlight extracted nets (sometimes called CAM nets) and external nets. This makes it much easier to locate the causes of shorts.


Some import and preparation problems can result in netlist extract problems, and thus alter the results of a netlist compare. Being aware of these issues can minimize false errors and lead to a more accurate check.

If you have control over the generation of the Gerber data, adjustments to the output settings in you CAD program can reduce or eliminate all preparation issues. Such settings vary depending on the CAD program. To discuss such matters, contact support.


IPC netlists (either IPC-D-356 or IPC-D-356a) 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 no 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 (the CAD system). If the CAD system does not export IPC netlists, you may be able to get around this problem by using ODB++ or one of CAM350’s direct CAD interfaces. The Direct CAD interfaces are found under File>Import>Cad Data. By importing intelligent data info CAM350 you can then export an IPC netlist. This is a common solution of PADS netlist compares.

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, review this document.

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.

Non-Gerber database compares

One can also use the compare process on other database formats as well. ODB++ 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 you use EDIT | CHANGE | EXPLODE | PARTS – Select ALL on all data after import and before running netlist extract. ODB++ data includes an external net as part of the database, which can be used normally in the compare process.

Other than the 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. For info on how to align layers, see help under Contents | CAM Editor, Edit>Layers>Align or the Align Tech Tip article.

Setup Layer Sets if Necessary

If data has Blind and Buried Drills or it uses MCM technology, use Tables>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.

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.

For more info on Layer Sets, see Help under the Contents | CAM Editor topic Tables > Layer Sets.

Draw 2 Flash

Run on top and bottom layers only. Netlists only include net points on the top and bottom of the board. 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, select Tables>Layers and change the Flash color for your top and bottom layers. Then look around on the layer and make sure your pads are the flash color.

If you have rotated pads or other unusual pads, Draw to Flash>Interactive (and Interactive any angle) 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

Select “Settings>View Options>View Imported Nets” to turn on External Net View. 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.

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 “Single Pin Nets” option when extracting your netlist. Here we can see an isolated topside net with a external net point on it.

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

The through hole 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. Using Settings | View Options | Details you can change the default X to another shape such as a target. You can also adjust the size of the displayed test points to aid visibility.

Align net to Data

The external net must line up with graphics, otherwise Netlist Compare will fail. View the external net to see if there is a problem. If it is not aligned, there are a few ways to fix this problem. All of them involve moving the graphic data to the external nets. You cannot move net data. In the figure below, the net is offset to the lower left.

Edit>Change>Origin has the best options to fix misaligned net problems. By changing the origin all the Gerber data moves accordingly. If there is a net point on the origin, find the pad that lines up with that and use Edit>Change>Origin>Space Origin to select it. In the origin should line up with one of the pads on the lower left corner.

If you made the netlist by importing CAD data into CAM350, use that imported database to find a point on the net and note the coordinates. Use the Datum Coordinate option under Edit>Change >Origin to select that point and type in the proper coordinates.

Lacking any other option, you could open the external netlist file in a text reader (such as notepad), and use it to find the coordinates for a point to use with Edit>Change>Origin>Datum Coordinate. Check your top silk and top layer and pick a part. Now use the search function of your text reader to look for the part name. When you find it, it will look like this (if your part was C7).

327$Net60     C7     -1     A01X+ 3325Y+  15500X 600Y 600      S1

The info above says that pin 1 of C7 is on the top tide (A01) of the board at .3325 x 1.55 inches. Use Edit>Change>Origin>Datum Coordinate and select pin 1 of C7. Type in the proper coordinates in mils (332.5:155). When you click OK the origin is moved so that the selected coordinate is at the coordinates you typed in, and the netlist should now line up with the Gerber data.

Using Streams Netlist Compare

Open the Streams Menu by selecting View>Streams RC. The Steams List dialog box appears on screen up and to the right. Use this dialog box to add a new stream (or select an existing one).

Setup the stream check using the “Stream – DFF Stream box” that appears at the bottom of the screen once you add or select a stream. Add a Netlist Compare check and then select the Details Tab. If you expand the Details Property in the Netlist Compare Check you can see a number of options.

One of these options is Import External Netlist. Rather than manually importing the netlist, you can set a pointer to it. When the Netlist Compare process starts, it will import the referenced net. You should also set the Netlist format using the pull down menu.

There are three options under Extract CAM Netlist. “Allow CAM nets without pads” is not an option that you should normally be using. Using this option will extract a net on any trace or polygon on an electrical layer. This will typically 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.

Allow Single point CAM nets should be used if your 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. To see the external net points, you will have to view the imported net (see above section Preparation).

Treat Net Planes as Single CAM net (no split in Pane) slightly speeds up the netlist extract process on older systems. Using this option is not recommended as if a single plane is split, it would make an open that would be missed if this option is used. The minor gain in speed is not worth the risk.

Final section is “Run Netlist Compare”. This section has 2 options only available in streams netlist compare. “Ignore Extra External Nets at CAM Points” and “Ignore Missing External Nets for CAM Nets” 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. For example, rotated pads from PADS are drawn with traces. On a round board with many rotated SMT pads, flashing all of them would be difficult.

Manual Netlist Compare described below does not have these options to ignore certain error types.

If you have text or other items that are outside the boarder and wish to have Netlist compare ignore then, use the “Run one-up boarder” option. Use “Utilities | Draw to One up Boarder” to set this up. This is another feature not available in Manual Netlist Compare.

To run Netlist Compare in Streams, select the Green arrow to the left on the checks tab.

The Results tab in Streams displays any errors. Each time you run it a new record is added to the results tab with a time and date. These errors can be saved as part of the CAM350 database for later review.

Manual Netlist compare

Unlike running the test in Streams, the external netlist must be imported manually first. This is found under Analysis>Nets>Import IPC.

You must also extract a net. Just as with the Streams netlist extract settings, if you have well prepared data, there is no need to use any of the options. The exception is you have single pin nets in your external net.

Netlist Compare can be run by selecting Analysis>Nets>Compare External Nets.

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.

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. Seeing an open is not difficult.

Below: An Open is displayed. One net highlighted in white, the other in Grey. The external net as 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.

Short: 2 or more points in the external net are shorted together in the extracted Net. Finding shorts can be difficult. The following are some tools that are helpful in locating such problems.

Below: Using the Navigation Pane, you can select an external net for display. In Settings | View options, uncheck “View External Nets”. This hides external net view. When you select an external net in the NAV Pane, that net is displayed (using the setting you have in Options). Select one of your shorting Nets

Below: Another method of selecting an external net. Info>Find>Net to find one of the 2 external nets. Towards the end of the Find>Net pull down you will find the external nets listed.

Below: Nav Bar has been used to find 1 of the 2 external nets involved in a short. Net points for that net are highlighted in white. We can see the upper Oval pad has a point on the selected net. The lower oval pad is not on that net. Thus it must be on a different net. Highlighting one of the 2 external nets allows you so find the area where the 2 nets merge. In this case the short occurs towards the bottom of this image.

More methods for tracking shorts are described later in this article.

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.

Below: 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.

Below: 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. If using streams, change the extra setting and run the Stream check again.

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.

Below: 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 Netlist Compare Browser bar 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. 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.

You can find the smallest net just by making a list and checking each net on it using the External Nets section in the Nav Pane. 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).

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

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 open 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.23x.4, size is not listed.

2 – a topside (topside is A01) pad at 1.225 x .575, a pad 24x90 mils in size.

3 – a topside pad at 1.225x1.225, also 24x90

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.