pcb-rnd knowledge pool


Terminology: netlist, import schematics

netlist by Tibor 'Igor2' Palinkas on 2020-11-16

Tags: howto, netlist, import, schematics

node source



Abstract: This node explains the terms "netlist", "import netlist", "import schematics" and how the schematics-to-PCB workflow works.



Forward annotation

Sending a netlist only between the schematics and the PCB layout tool is not enough, some metadata is also required from the schematics, such as footprint names.

This is how it works in most EDA tools:

Most netlist format lacks footprint info (mostly because SPICE and other simulators did not need it). In pcb-rnd, we prefer the tEDAx netlist format, which does have the netlist and footprint information (and some more). Recent versions of gschem and lepton both have support for tEDAx. From other schematics editors pcb-rnd imports using the custom layout targeted netlist format the given schematics editor invented.

How forward annotation works

The terms are somewhat confusing. When we say "import schematics", we really mean "import netlist+metadata". We can't call it just "import netlist" because that term is traditionally used for the pure netlist imports which is a list of nets and pin connections, without any footprint info.

"Import schematics", with some simplification, that really means "import netlist and footprint and some other metadata derived/exported from schematics". The derivation is done by the schematics software, as that's the one that can read the schematics. For gschem that's gnetlist, for lepton-eda that's lepton-netlist. For eeschema (kicad), tinycad, ltspice, that's some clicking on the GUI for a "netlist" export.

This is how a forward annotation works under the hood:

1. The schematics editor or an utility of the schematics editor (e.g. gnetlist or lepton-netlist) is ran to produce a netlist file (or more likely a netlist+metadata file, like a "tEDAx netlist")

2. pcb-rnd loads this file and upgrades the existing board file's netlist, loads missing/new footprints, removes footprints from the board that got removed from the schematics, updates attributes, etc.

This is automated by the import schematics feature.