KB: Generate IPC-D-356A document and compare to extracted netlist

Altium Designer Altium Designer
Starting in version: 18 Up to Current

I am trying to export an IPC-356 file from the Altium CAM editor. I am receiving the following error Cannot Open File for Netlist Output!

Solution Details

If you don't already have one, create an Output job file (File new Output job file) then, (or if you already have one) update your output job file to include an IPCD 356A document by expanding the Fabrication section, then add a new Fabrication Output, Test Point Report, then pick a source, ([PCB Document]) and link it to your output container.  Configure the Test Point Report by right clicking it and choosing Configure, to get the Fabrication Testpoint Setup dialog where you un-check CSV and check IPC-D-356A checkboxes.  Here is a document on Testpoint setup for your review:
https://www.altium.com/documentation/altium-designer/workspacemanager-dlg-editname-formtestpoint-setup-ad


Testpoint.png
 
If you need to generate the IPC netlist from Altium Designer, you can find this in the File Fabrication Outputs Testpoint Report. Modify the options for this report and enable the IPC-356-A output.
 
The steps below explain how to import IPC-356 netlist information and compare to an extracted netlist:
 
The following procedure will generate a difference report between the extracted netlist from loaded Gerber data and an imported IPC-D-356A Netlist.
 
1. Create a new CAM document, if not already created using the Auto Load.
2. Load your Gerber files and NC Drill files (alternatively, use ODB++) into the CAM file (File Import)...
Note: You can verify the Layer assignment from Tables Layers.
3. Load your generated IPC-356 (from testpoint generation from the PcbDoc).
Note: if using an output job file, you can specify which files will be autoloaded from the Advanced options in the output container. (With Output Job File open Tools ► Container setup ► Advanced)
4. In the CAM document, import your N/C Drill files using: File Import Drill.
Note: An NC Drill files for each drill hole range needs to be loaded and configured. It will be necessary to ensure that the hole ranges are defined properly if you have blind and buried hole ranges using Tables Layer Sets
5. Import the IPC-356 Netlist using File Import Netlist.
6. Extract the netlist information from the loaded Gerber/NC Drill (not necessary if using ODB++) from Tools Netlist Extract.
Note: The extracted netlist is derived from the loaded Gerber data and NC Tool data.
7. Rename the nets so they match the imported IPC netlist information from Tools Netlist ReName Nets.
8. Finally, to compare the imported IPC-356 netlist with the extracted netlist, select Tools Netlist Compare.
 
Summary of generated report:
1. The "Different Nets" section -
This will be the section that you will most interested in.
This section shows one or more nodes in the nets in this section differ between the imported netlist & the netlist generated from the Gerbers/ODB++.
 
The way the comparator works is as follows:
- CAMtastic checks the generated nets and checks if the flashes on the 2 netlist layers are touching or not.
- If a match is found then it checks that the net name is the same. If not, then a difference between the netlists was found.
- The difference line that is created will use the flash on the netlist layer(s) for reporting (Location, Net Name, Side (Top, Bottom), RefDes if any (the Reference field). E.g.:
 
ID# Net Name Reference Side Location(X:Y)
1 GND U1-1 Top 2000:2000
 
Where :
ID# - is just a counter of all violations
Net Name - the net name if found in the PCB imported netlist
Reference - RefDes of the pad in PCB if existing in the PCB imported netlist
Side - Top / Bottom - taken from the PCB imported netlist as well
Location - the position of the feature in the PCB imported netlist
 
Note: In some cases the CAMtastic generated netlist could be incomplete & the Different Nets violations should be checked thoroughly. Especially if nested split planes have been used.
 
2. "Missing Nets" section -
This section can get filled with a lot of noise.
All of the nets here are nets that exist in the PCB imported netlist but not in CAMtastic's generated one. Most of these are generated because the CAMtastic's nets do not include the single nets & no net objects. Additionally, CAMtastic's generated net didn't pick certain nets for some reason or another.
For this reason, you can safely overlook the single & no net nets but the others are most likely issues with CAMtastic's extracted netlist.

 
Was this article helpful?