Operating behind the scenes of your ECAD software and PCB layout editor is an important dataset that defines the connections between components. This dataset, typically stored in a single file, is known as a netlist. Different CAD systems have different netlist formats, but they play an important function in PCB design software: defining connectivity between components.
All netlists are defined at the circuit level and are constructed by CAD tools from circuit diagrams in schematic sheets. A schematic editor will create netlists as you place components and draw circuits, either automatically or with a manual compiler tool. The netlist can then be used in other CAD systems, such as in a SPICE simulation program or a PCB editor. According to an old document from Agilent, early microwave CAD tools and simulators also used their own netlists to perform linear microwave circuit analysis with S-parameters.
No matter how a netlist is used, it will contain a set of human-readable data that follows a specific format. Technically, the entire set of circuits could be reconstructed graphically from a netlist as long as schematic symbols are available, although this is typically done when converting file formats between CAD systems.
Because all netlists define electrical connections between components, they are created from circuit drawing tools or schematic capture programs. Schematic netlists used in PCB design software, whether in Altium Designer or another PCB CAD tool, are then used to define the connectivity between component pads in a PCB layout.
Because netlists start in the schematic, they resemble the types of schematics (flat vs. hierarchical) you might see used in PCB projects in ECAD software.
Each of these could be supplied in a vendor-specific format. For example, the SPICE netlist data format used by LTSpice is different from the data format used by PSpice. The same goes for schematic netlists produced by PCB design or schematic capture software. There are also vendor-neutral formats that can be used inside or outside of ECAD software.
Although a netlist has a specific usage in electronics ECAD programs, CAM software, and EDA software, there is no single file format that is used for netlists. While the data is normally in a human-readable format, the data structure used in netlist files is not standardized across all CAD vendors.
Although the range of netlist formats varies, there are vendor-neutral file formats that can be used to examine connectivity in a design. Some of the most prominent vendor-neutral formats include:
Once a netlist has been created at a logical level, it can be used in a PCB editor, simulation program, and CAM software.
Your CAD program can use the textual information in a netlist to determine equivalent connections between pads in a PCB layout. When two pads are assigned to the same net, a PCB editor will use that connection in its design rules to check for opens/shorts, highlight net connectivity, and construct airwires to aid PCB routing.
The PCB layout will contain coordinates and rotation defining component locations and orientation, and the component data will include relative pad locations for each pin appearing in a component’s schematic symbol. Because a netlist defines the connections between each pad in the symbol that same connection data between pads can be used to draw airwires between pads in a PCB editor. This is the basic principle ECAD software uses to display airwires between unconnected nets.
Simulation programs, specifically SPICE simulation engines and specialized circuit simulators (e.g., SiMetrix), will use the circuit connections defined in a netlist to build electrical simulations. The simulator does not necessarily distinguish between different types of components or types of signals (analog vs. digital) when using a netlist to build and run a simulation. Instead, the information in the netlist refers to components, and the simulation model or subcircuit attached to those components is used to execute numerical calculations for a simulation.
Netlists are also used in areas outside of schematic capture and PCB layout, and they may be one of the required file exports from your PCB design software. There are two important areas where netlists are also used:
In FPGA development, the Verilog/VHDL format can express much more than simply connections between nodes in circuits. In PCB manufacturing, their usage is also much further from electronics design, focusing more on verifying connectivity in tooling as it is expressed logically in design files.
Take the netlist verification shown below as an example. A CAM software package is being used to check that the connections inferred from a Gerber export match the connections defined logically in the netlist. In this case, there is a short between two differently-named nets; this might not violate the PCB design rules due to some rule being waved or overridden, but this type of mistake can be caught in CAM software.
CAM software can use a netlist output to verify that logical connections defined in a netlist match the actual connections in the fabrication data (Gerbers, ODB++) that will be used to produce a PCB. ODB++ exports will include a netlist that is required for this verification and for automated testing (such as with flying probes). When Gerbers are being used, an IPC-D-356 netlist, WireList, or other format can be used to verify connections in the fabrication files.
When you want a high-efficiency ECAD software package that automatically synchronizes your PCB layout and schematics, use the complete set of CAD utilities in Altium Designer®. When you’ve finished your design, and you want to release files to your manufacturer, the Altium 365™ platform makes it easy to collaborate and share your projects.
We have only scratched the surface of what’s possible with Altium Designer on Altium 365. Start your free trial of Altium Designer + Altium 365 today.