Generating Ipc D 356a Document And Compare To Extracted Netlist

What is IPC-D-356A?

IPC-D-356A is a standard format for describing printed circuit board (PCB) netlists. It was created by the Association Connecting Electronics Industries (IPC) to provide a consistent way to represent the connectivity information of a PCB design. The IPC-D-356A format specifies the syntax and structure for representing components, pins, nets, and other aspects of a PCB netlist in an ASCII text file.

The key features of the IPC-D-356A format include:

  • Each record is represented by a single line of text
  • Fields within a record are separated by delimiters (usually asterisks)
  • Different record types capture different aspects of the PCB design (e.g. part records, net records, etc.)
  • A header section provides metadata about the PCB design and the IPC-356 file itself

Using a standard format like IPC-D-356A allows PCB netlist information to be exchanged reliably between different EDA tools, manufacturers, and other stakeholders in the PCB design process. It enables interoperability and reduces the risk of errors when transferring design data.

Why Generate IPC-D-356A Documents?

There are several reasons why you might want to generate an IPC-D-356A representation of your PCB netlist:

  1. To exchange design data with a PCB manufacturer or assembly house that requires the IPC-D-356A format
  2. To import the netlist into another EDA tool that supports IPC-D-356A
  3. To perform design rule checks (DRC) or other analyses on the netlist using third-party tools
  4. To have a human-readable representation of the netlist for troubleshooting or review purposes

Most PCB design tools can export an IPC-D-356A file, but in some cases you may need to generate the file programmatically from other design data sources. This could be necessary if you are using a custom design flow or if you need to automate the generation of IPC-D-356A files for a large number of designs.

Generating IPC-D-356A Documents

To generate an IPC-D-356A document programmatically, you’ll need to have access to the netlist information for your PCB design. This information could come from a design database, a set of design files, or even a schematic capture tool.

Here’s a general process for generating an IPC-D-356A document:

  1. Extract the relevant netlist information from your design data source. This will typically include:
  2. A list of components and their reference designators
  3. A list of nets and the components/pins they connect
  4. A list of all pins on the board
  5. Create the header section of the IPC-356 file, which includes metadata like:
  6. The date and time the file was generated
  7. The name and version of the tool that generated the file
  8. The name and revision of the PCB design
  9. Any other relevant notes or comments
  10. Create the detail section of the IPC-356 file, which includes the actual netlist data:
  11. Create part records (P) for each component
  12. Create net records (N) for each net, listing the components and pins it connects
  13. Create pin records (J) for each pin on the board
  14. Write out the completed IPC-356 file as a text file with the appropriate extension (usually .net or .ipc)

Here’s an example of what a very simple IPC-D-356A file might look like:

P  CART,J1    
J  1,3,A
J  2,4,B    
J  3,NET1   
J  4,NET2  
N  NET1  
N  NET2   

This file describes a PCB with a single connector (J1) that has 4 pins. Pins 1 and 3 are connected to a net called “NET1”, while pins 2 and 4 are connected to a net called “NET2”.

Of course, a real-world IPC-356 file would be much more complex, with many more components, nets, and pins. But this example illustrates the basic structure and syntax of the format.

Comparing IPC-D-356A Documents to Extracted Netlists

Once you have generated an IPC-D-356A representation of your PCB netlist, you may want to compare it against a netlist extracted from the actual fabricated PCB. This comparison serves as a validation step to ensure that the physical board matches the original design intent.

The process of extracting a netlist from a physical PCB is known as “reverse engineering”. It typically involves using specialized equipment and software to probe the board and determine its connectivity. The resulting extracted netlist can then be saved in an IPC-D-356A format for comparison purposes.

To compare two IPC-D-356A netlists (one from the original design and one from the extracted physical board), you’ll need to use a netlist comparison tool. Many EDA suites include this capability, but there are also standalone tools available.

The comparison tool will read in the two IPC-356 files and attempt to match up the components, nets, and pins between them. It will flag any discrepancies, such as:

  • Components that are present in one netlist but not the other
  • Nets that connect different sets of pins in each netlist
  • Pins that are assigned to different nets in each netlist

Here’s an example of what a netlist comparison report might look like:

Component Pin Design Net Actual Net Status
U1 1 VCC VCC OK
U1 2 GND GND OK
U1 3 SIGNAL1 SIGNAL2 ERROR
U2 1 VCC VCC OK
U2 2 GND SIGNAL1 ERROR

In this example, the comparison has found two errors. Pin 3 of component U1 is supposed to be connected to a net called “SIGNAL1”, but in the actual board it is connected to “SIGNAL2”. And pin 2 of component U2 is supposed to be connected to “GND”, but in the actual board it is connected to “SIGNAL1”.

These discrepancies could indicate a problem with the board fabrication or assembly, or they could simply be due to errors in the netlist extraction process. In either case, they would need to be investigated and resolved before the board could be considered fully validated.

Best Practices for IPC-D-356A Generation and Comparison

To ensure the accuracy and reliability of your IPC-D-356A documents and netlist comparisons, consider the following best practices:

  1. Use a proven, reliable tool for generating your IPC-356 files from your design data. Ideally, use the same tool that you use for the rest of your design flow to maintain consistency.

  2. When extracting netlists from physical boards, use high-quality equipment and follow established procedures to minimize errors. Verify the accuracy of your extracted netlists by comparing them against known-good references when possible.

  3. Use automated netlist comparison tools rather than trying to compare netlists manually. Automated tools are much faster and less prone to human error.

  4. When discrepancies are found between design and actual netlists, investigate them promptly. Don’t assume that they are always due to manufacturing errors – there could be issues with your design data or netlist extraction process that need to be corrected.

  5. Maintain good version control and change tracking for your IPC-356 files, just as you would for any other design artifact. This will help you track down the source of any discrepancies that are found.

  6. Consider running netlist comparisons at multiple stages of the design process, not just at the end. Comparing the netlists from your schematic design, your PCB layout, and your fabricated board can help catch errors early and avoid costly rework.

By following these best practices and using reliable tools and processes, you can ensure that your IPC-D-356A documents accurately reflect your PCB design intent and that your manufactured boards match that intent.

Frequently Asked Questions

What is the difference between IPC-D-356A and other netlist formats like Mentor or Cadence?

IPC-D-356A is an open, vendor-neutral standard for representing PCB netlists. Other formats like Mentor’s “nelist” or Cadence’s “wirelist” are proprietary to those specific tools. Using IPC-D-356A allows for greater interoperability between different tools and manufacturers.

Can I use IPC-D-356A for designs with multiple PCBs or flex circuits?

Yes, IPC-D-356A can handle multi-board designs and flex circuits. The format includes provisions for specifying different board files and representing the interconnections between them.

What level of detail is included in an IPC-D-356A netlist?

An IPC-D-356A netlist typically includes information about components, pins, nets, and testpoints. It does not usually include physical layout information like component locations or trace widths. For that level of detail, you would need to use a format like ODB++ or IPC-2581.

How do I know if my PCB manufacturer can accept IPC-D-356A files?

Most major PCB manufacturers and assembly houses are familiar with IPC-D-356A and can work with files in this format. However, it’s always best to check with your specific vendor to confirm their file format requirements and preferences.

What are some common errors that can occur in IPC-D-356A netlist comparison?

Some common errors include:

  • Components that are present in one netlist but not the other, often due to incorrect bill of materials (BOM) data
  • Nets that are connected differently in the two netlists, which could indicate a wiring error or a problem with the netlist extraction
  • Incorrect pin assignments, where a component pin is assigned to the wrong net
  • Testpoint mismatches, where a testpoint is defined in one netlist but not the other

Careful review of the comparison report can help pinpoint the source of these errors and guide corrective action.

CATEGORIES:

Uncategorized

Tags:

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *

Latest Comments

No comments to show.