CAM350 Tech Tips
In Depth Look at IPC Netlist Compare
Netlist Compare is the only way to find opens and shorts in a board. DRC and other checks cannot find them. DRC measures data to make sure they are within a user defined range. So Netlist Compare is the only way to be sure that your Gerber data is electrically correct.
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 boards net has not been altered.
Depending on the quality of the data, you many have one or more issues that can 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, please refer to this advisory: http://www.downstreamtech.com/Support_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.
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
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
Align net to Data
The external net must line up with graphics, otherwise Netlist Compare will fail. By viewing the external net you can see if this 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 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.
Above: 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. Still taking a look at the data may allow you to find the problem.
Below: A good method of reducing the search area is to use 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: We have a section of a shorted net displayed. Info>Find>Net has been used to find 1 of the 2 external nets. Net points for that net are highlighted in white (just as the net is). We can see the upper Oval pad has a point on the “found” 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.
Above: 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.
Above: 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.
Tracking Down Shorts
Tracking down shorts 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.
Typically, shorts come in groups. When this happens, pick the error that involves the shorted possible net to investigate. A net that does not short to a power or ground plane is the best.
You will need to open the external netlist in a text editor. This will allow you to find the shortest. 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.
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.
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.